You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

17628 lines
424 KiB

7 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
7 years ago
7 years ago
7 years ago
7 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
7 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
add support for block pruning via ABCI Commit response (#4588) * Added BlockStore.DeleteBlock() * Added initial block pruner prototype * wip * Added BlockStore.PruneBlocks() * Added consensus setting for block pruning * Added BlockStore base * Error on replay if base does not have blocks * Handle missing blocks when sending VoteSetMaj23Message * Error message tweak * Properly update blockstore state * Error message fix again * blockchain: ignore peer missing blocks * Added FIXME * Added test for block replay with truncated history * Handle peer base in blockchain reactor * Improved replay error handling * Added tests for Store.PruneBlocks() * Fix non-RPC handling of truncated block history * Panic on missing block meta in needProofBlock() * Updated changelog * Handle truncated block history in RPC layer * Added info about earliest block in /status RPC * Reorder height and base in blockchain reactor messages * Updated changelog * Fix tests * Appease linter * Minor review fixes * Non-empty BlockStores should always have base > 0 * Update code to assume base > 0 invariant * Added blockstore tests for pruning to 0 * Make sure we don't prune below the current base * Added BlockStore.Size() * config: added retain_blocks recommendations * Update v1 blockchain reactor to handle blockstore base * Added state database pruning * Propagate errors on missing validator sets * Comment tweaks * Improved error message Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * use ABCI field ResponseCommit.retain_height instead of retain-blocks config option * remove State.RetainHeight, return value instead * fix minor issues * rename pruneHeights() to pruneBlocks() * noop to fix GitHub borkage Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
4 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
add support for block pruning via ABCI Commit response (#4588) * Added BlockStore.DeleteBlock() * Added initial block pruner prototype * wip * Added BlockStore.PruneBlocks() * Added consensus setting for block pruning * Added BlockStore base * Error on replay if base does not have blocks * Handle missing blocks when sending VoteSetMaj23Message * Error message tweak * Properly update blockstore state * Error message fix again * blockchain: ignore peer missing blocks * Added FIXME * Added test for block replay with truncated history * Handle peer base in blockchain reactor * Improved replay error handling * Added tests for Store.PruneBlocks() * Fix non-RPC handling of truncated block history * Panic on missing block meta in needProofBlock() * Updated changelog * Handle truncated block history in RPC layer * Added info about earliest block in /status RPC * Reorder height and base in blockchain reactor messages * Updated changelog * Fix tests * Appease linter * Minor review fixes * Non-empty BlockStores should always have base > 0 * Update code to assume base > 0 invariant * Added blockstore tests for pruning to 0 * Make sure we don't prune below the current base * Added BlockStore.Size() * config: added retain_blocks recommendations * Update v1 blockchain reactor to handle blockstore base * Added state database pruning * Propagate errors on missing validator sets * Comment tweaks * Improved error message Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * use ABCI field ResponseCommit.retain_height instead of retain-blocks config option * remove State.RetainHeight, return value instead * fix minor issues * rename pruneHeights() to pruneBlocks() * noop to fix GitHub borkage Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
4 years ago
add support for block pruning via ABCI Commit response (#4588) * Added BlockStore.DeleteBlock() * Added initial block pruner prototype * wip * Added BlockStore.PruneBlocks() * Added consensus setting for block pruning * Added BlockStore base * Error on replay if base does not have blocks * Handle missing blocks when sending VoteSetMaj23Message * Error message tweak * Properly update blockstore state * Error message fix again * blockchain: ignore peer missing blocks * Added FIXME * Added test for block replay with truncated history * Handle peer base in blockchain reactor * Improved replay error handling * Added tests for Store.PruneBlocks() * Fix non-RPC handling of truncated block history * Panic on missing block meta in needProofBlock() * Updated changelog * Handle truncated block history in RPC layer * Added info about earliest block in /status RPC * Reorder height and base in blockchain reactor messages * Updated changelog * Fix tests * Appease linter * Minor review fixes * Non-empty BlockStores should always have base > 0 * Update code to assume base > 0 invariant * Added blockstore tests for pruning to 0 * Make sure we don't prune below the current base * Added BlockStore.Size() * config: added retain_blocks recommendations * Update v1 blockchain reactor to handle blockstore base * Added state database pruning * Propagate errors on missing validator sets * Comment tweaks * Improved error message Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * use ABCI field ResponseCommit.retain_height instead of retain-blocks config option * remove State.RetainHeight, return value instead * fix minor issues * rename pruneHeights() to pruneBlocks() * noop to fix GitHub borkage Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
4 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
add support for block pruning via ABCI Commit response (#4588) * Added BlockStore.DeleteBlock() * Added initial block pruner prototype * wip * Added BlockStore.PruneBlocks() * Added consensus setting for block pruning * Added BlockStore base * Error on replay if base does not have blocks * Handle missing blocks when sending VoteSetMaj23Message * Error message tweak * Properly update blockstore state * Error message fix again * blockchain: ignore peer missing blocks * Added FIXME * Added test for block replay with truncated history * Handle peer base in blockchain reactor * Improved replay error handling * Added tests for Store.PruneBlocks() * Fix non-RPC handling of truncated block history * Panic on missing block meta in needProofBlock() * Updated changelog * Handle truncated block history in RPC layer * Added info about earliest block in /status RPC * Reorder height and base in blockchain reactor messages * Updated changelog * Fix tests * Appease linter * Minor review fixes * Non-empty BlockStores should always have base > 0 * Update code to assume base > 0 invariant * Added blockstore tests for pruning to 0 * Make sure we don't prune below the current base * Added BlockStore.Size() * config: added retain_blocks recommendations * Update v1 blockchain reactor to handle blockstore base * Added state database pruning * Propagate errors on missing validator sets * Comment tweaks * Improved error message Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * use ABCI field ResponseCommit.retain_height instead of retain-blocks config option * remove State.RetainHeight, return value instead * fix minor issues * rename pruneHeights() to pruneBlocks() * noop to fix GitHub borkage Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
4 years ago
add support for block pruning via ABCI Commit response (#4588) * Added BlockStore.DeleteBlock() * Added initial block pruner prototype * wip * Added BlockStore.PruneBlocks() * Added consensus setting for block pruning * Added BlockStore base * Error on replay if base does not have blocks * Handle missing blocks when sending VoteSetMaj23Message * Error message tweak * Properly update blockstore state * Error message fix again * blockchain: ignore peer missing blocks * Added FIXME * Added test for block replay with truncated history * Handle peer base in blockchain reactor * Improved replay error handling * Added tests for Store.PruneBlocks() * Fix non-RPC handling of truncated block history * Panic on missing block meta in needProofBlock() * Updated changelog * Handle truncated block history in RPC layer * Added info about earliest block in /status RPC * Reorder height and base in blockchain reactor messages * Updated changelog * Fix tests * Appease linter * Minor review fixes * Non-empty BlockStores should always have base > 0 * Update code to assume base > 0 invariant * Added blockstore tests for pruning to 0 * Make sure we don't prune below the current base * Added BlockStore.Size() * config: added retain_blocks recommendations * Update v1 blockchain reactor to handle blockstore base * Added state database pruning * Propagate errors on missing validator sets * Comment tweaks * Improved error message Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * use ABCI field ResponseCommit.retain_height instead of retain-blocks config option * remove State.RetainHeight, return value instead * fix minor issues * rename pruneHeights() to pruneBlocks() * noop to fix GitHub borkage Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
4 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
add support for block pruning via ABCI Commit response (#4588) * Added BlockStore.DeleteBlock() * Added initial block pruner prototype * wip * Added BlockStore.PruneBlocks() * Added consensus setting for block pruning * Added BlockStore base * Error on replay if base does not have blocks * Handle missing blocks when sending VoteSetMaj23Message * Error message tweak * Properly update blockstore state * Error message fix again * blockchain: ignore peer missing blocks * Added FIXME * Added test for block replay with truncated history * Handle peer base in blockchain reactor * Improved replay error handling * Added tests for Store.PruneBlocks() * Fix non-RPC handling of truncated block history * Panic on missing block meta in needProofBlock() * Updated changelog * Handle truncated block history in RPC layer * Added info about earliest block in /status RPC * Reorder height and base in blockchain reactor messages * Updated changelog * Fix tests * Appease linter * Minor review fixes * Non-empty BlockStores should always have base > 0 * Update code to assume base > 0 invariant * Added blockstore tests for pruning to 0 * Make sure we don't prune below the current base * Added BlockStore.Size() * config: added retain_blocks recommendations * Update v1 blockchain reactor to handle blockstore base * Added state database pruning * Propagate errors on missing validator sets * Comment tweaks * Improved error message Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * use ABCI field ResponseCommit.retain_height instead of retain-blocks config option * remove State.RetainHeight, return value instead * fix minor issues * rename pruneHeights() to pruneBlocks() * noop to fix GitHub borkage Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
4 years ago
add support for block pruning via ABCI Commit response (#4588) * Added BlockStore.DeleteBlock() * Added initial block pruner prototype * wip * Added BlockStore.PruneBlocks() * Added consensus setting for block pruning * Added BlockStore base * Error on replay if base does not have blocks * Handle missing blocks when sending VoteSetMaj23Message * Error message tweak * Properly update blockstore state * Error message fix again * blockchain: ignore peer missing blocks * Added FIXME * Added test for block replay with truncated history * Handle peer base in blockchain reactor * Improved replay error handling * Added tests for Store.PruneBlocks() * Fix non-RPC handling of truncated block history * Panic on missing block meta in needProofBlock() * Updated changelog * Handle truncated block history in RPC layer * Added info about earliest block in /status RPC * Reorder height and base in blockchain reactor messages * Updated changelog * Fix tests * Appease linter * Minor review fixes * Non-empty BlockStores should always have base > 0 * Update code to assume base > 0 invariant * Added blockstore tests for pruning to 0 * Make sure we don't prune below the current base * Added BlockStore.Size() * config: added retain_blocks recommendations * Update v1 blockchain reactor to handle blockstore base * Added state database pruning * Propagate errors on missing validator sets * Comment tweaks * Improved error message Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * use ABCI field ResponseCommit.retain_height instead of retain-blocks config option * remove State.RetainHeight, return value instead * fix minor issues * rename pruneHeights() to pruneBlocks() * noop to fix GitHub borkage Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
4 years ago
add support for block pruning via ABCI Commit response (#4588) * Added BlockStore.DeleteBlock() * Added initial block pruner prototype * wip * Added BlockStore.PruneBlocks() * Added consensus setting for block pruning * Added BlockStore base * Error on replay if base does not have blocks * Handle missing blocks when sending VoteSetMaj23Message * Error message tweak * Properly update blockstore state * Error message fix again * blockchain: ignore peer missing blocks * Added FIXME * Added test for block replay with truncated history * Handle peer base in blockchain reactor * Improved replay error handling * Added tests for Store.PruneBlocks() * Fix non-RPC handling of truncated block history * Panic on missing block meta in needProofBlock() * Updated changelog * Handle truncated block history in RPC layer * Added info about earliest block in /status RPC * Reorder height and base in blockchain reactor messages * Updated changelog * Fix tests * Appease linter * Minor review fixes * Non-empty BlockStores should always have base > 0 * Update code to assume base > 0 invariant * Added blockstore tests for pruning to 0 * Make sure we don't prune below the current base * Added BlockStore.Size() * config: added retain_blocks recommendations * Update v1 blockchain reactor to handle blockstore base * Added state database pruning * Propagate errors on missing validator sets * Comment tweaks * Improved error message Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * use ABCI field ResponseCommit.retain_height instead of retain-blocks config option * remove State.RetainHeight, return value instead * fix minor issues * rename pruneHeights() to pruneBlocks() * noop to fix GitHub borkage Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
4 years ago
add support for block pruning via ABCI Commit response (#4588) * Added BlockStore.DeleteBlock() * Added initial block pruner prototype * wip * Added BlockStore.PruneBlocks() * Added consensus setting for block pruning * Added BlockStore base * Error on replay if base does not have blocks * Handle missing blocks when sending VoteSetMaj23Message * Error message tweak * Properly update blockstore state * Error message fix again * blockchain: ignore peer missing blocks * Added FIXME * Added test for block replay with truncated history * Handle peer base in blockchain reactor * Improved replay error handling * Added tests for Store.PruneBlocks() * Fix non-RPC handling of truncated block history * Panic on missing block meta in needProofBlock() * Updated changelog * Handle truncated block history in RPC layer * Added info about earliest block in /status RPC * Reorder height and base in blockchain reactor messages * Updated changelog * Fix tests * Appease linter * Minor review fixes * Non-empty BlockStores should always have base > 0 * Update code to assume base > 0 invariant * Added blockstore tests for pruning to 0 * Make sure we don't prune below the current base * Added BlockStore.Size() * config: added retain_blocks recommendations * Update v1 blockchain reactor to handle blockstore base * Added state database pruning * Propagate errors on missing validator sets * Comment tweaks * Improved error message Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * use ABCI field ResponseCommit.retain_height instead of retain-blocks config option * remove State.RetainHeight, return value instead * fix minor issues * rename pruneHeights() to pruneBlocks() * noop to fix GitHub borkage Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
4 years ago
add support for block pruning via ABCI Commit response (#4588) * Added BlockStore.DeleteBlock() * Added initial block pruner prototype * wip * Added BlockStore.PruneBlocks() * Added consensus setting for block pruning * Added BlockStore base * Error on replay if base does not have blocks * Handle missing blocks when sending VoteSetMaj23Message * Error message tweak * Properly update blockstore state * Error message fix again * blockchain: ignore peer missing blocks * Added FIXME * Added test for block replay with truncated history * Handle peer base in blockchain reactor * Improved replay error handling * Added tests for Store.PruneBlocks() * Fix non-RPC handling of truncated block history * Panic on missing block meta in needProofBlock() * Updated changelog * Handle truncated block history in RPC layer * Added info about earliest block in /status RPC * Reorder height and base in blockchain reactor messages * Updated changelog * Fix tests * Appease linter * Minor review fixes * Non-empty BlockStores should always have base > 0 * Update code to assume base > 0 invariant * Added blockstore tests for pruning to 0 * Make sure we don't prune below the current base * Added BlockStore.Size() * config: added retain_blocks recommendations * Update v1 blockchain reactor to handle blockstore base * Added state database pruning * Propagate errors on missing validator sets * Comment tweaks * Improved error message Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com> * use ABCI field ResponseCommit.retain_height instead of retain-blocks config option * remove State.RetainHeight, return value instead * fix minor issues * rename pruneHeights() to pruneBlocks() * noop to fix GitHub borkage Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
4 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Synchronize FinalizeBlock with the updated specification (#7983) This change set implements the most recent version of `FinalizeBlock`. # What does this change actually contain? * This change set is rather large but fear not! The majority of the files touched and changes are renaming `ResponseDeliverTx` to `ExecTxResult`. This should be a pretty inoffensive change since they're effectively the same type but with a different name. * The `execBlockOnProxyApp` was totally removed since it served as just a wrapper around the logic that is now mostly encapsulated within `FinalizeBlock` * The `updateState` helper function has been made a public method on `State`. It was being exposed as a shim through the testing infrastructure, so this seemed innocuous. * Tests already existed to ensure that the application received the `ByzantineValidators` and the `ValidatorUpdates`, but one was fixed up to ensure that `LastCommitInfo` was being sent across. * Tests were removed from the `psql` indexer that seemed to search for an event in the indexer that was not being created. # Questions for reviewers * We store this [ABCIResponses](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/proto/tendermint/state/types.pb.go#L37) type in the data base as the block results. This type has changed since v0.35 to contain the `FinalizeBlock` response. I'm wondering if we need to do any shimming to keep the old data retrieveable? * Similarly, this change is exposed via the RPC through [ResultBlockResults](https://github.com/tendermint/tendermint/blob/5721a13ab1f4479f9807f449f0bf5c536b9a05f2/rpc/coretypes/responses.go#L69) changing. Should we somehow shim or notify for this change? closes: #7658
2 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
5 years ago
  1. // Code generated by protoc-gen-gogo. DO NOT EDIT.
  2. // source: tendermint/abci/types.proto
  3. package types
  4. import (
  5. context "context"
  6. fmt "fmt"
  7. _ "github.com/gogo/protobuf/gogoproto"
  8. proto "github.com/gogo/protobuf/proto"
  9. _ "github.com/gogo/protobuf/types"
  10. github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
  11. crypto "github.com/tendermint/tendermint/proto/tendermint/crypto"
  12. types1 "github.com/tendermint/tendermint/proto/tendermint/types"
  13. grpc "google.golang.org/grpc"
  14. codes "google.golang.org/grpc/codes"
  15. status "google.golang.org/grpc/status"
  16. io "io"
  17. math "math"
  18. math_bits "math/bits"
  19. time "time"
  20. )
  21. // Reference imports to suppress errors if they are not otherwise used.
  22. var _ = proto.Marshal
  23. var _ = fmt.Errorf
  24. var _ = math.Inf
  25. var _ = time.Kitchen
  26. // This is a compile-time assertion to ensure that this generated file
  27. // is compatible with the proto package it is being compiled against.
  28. // A compilation error at this line likely means your copy of the
  29. // proto package needs to be updated.
  30. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
  31. type CheckTxType int32
  32. const (
  33. CheckTxType_New CheckTxType = 0
  34. CheckTxType_Recheck CheckTxType = 1
  35. )
  36. var CheckTxType_name = map[int32]string{
  37. 0: "NEW",
  38. 1: "RECHECK",
  39. }
  40. var CheckTxType_value = map[string]int32{
  41. "NEW": 0,
  42. "RECHECK": 1,
  43. }
  44. func (x CheckTxType) String() string {
  45. return proto.EnumName(CheckTxType_name, int32(x))
  46. }
  47. func (CheckTxType) EnumDescriptor() ([]byte, []int) {
  48. return fileDescriptor_252557cfdd89a31a, []int{0}
  49. }
  50. type EvidenceType int32
  51. const (
  52. EvidenceType_UNKNOWN EvidenceType = 0
  53. EvidenceType_DUPLICATE_VOTE EvidenceType = 1
  54. EvidenceType_LIGHT_CLIENT_ATTACK EvidenceType = 2
  55. )
  56. var EvidenceType_name = map[int32]string{
  57. 0: "UNKNOWN",
  58. 1: "DUPLICATE_VOTE",
  59. 2: "LIGHT_CLIENT_ATTACK",
  60. }
  61. var EvidenceType_value = map[string]int32{
  62. "UNKNOWN": 0,
  63. "DUPLICATE_VOTE": 1,
  64. "LIGHT_CLIENT_ATTACK": 2,
  65. }
  66. func (x EvidenceType) String() string {
  67. return proto.EnumName(EvidenceType_name, int32(x))
  68. }
  69. func (EvidenceType) EnumDescriptor() ([]byte, []int) {
  70. return fileDescriptor_252557cfdd89a31a, []int{1}
  71. }
  72. type ResponseOfferSnapshot_Result int32
  73. const (
  74. ResponseOfferSnapshot_UNKNOWN ResponseOfferSnapshot_Result = 0
  75. ResponseOfferSnapshot_ACCEPT ResponseOfferSnapshot_Result = 1
  76. ResponseOfferSnapshot_ABORT ResponseOfferSnapshot_Result = 2
  77. ResponseOfferSnapshot_REJECT ResponseOfferSnapshot_Result = 3
  78. ResponseOfferSnapshot_REJECT_FORMAT ResponseOfferSnapshot_Result = 4
  79. ResponseOfferSnapshot_REJECT_SENDER ResponseOfferSnapshot_Result = 5
  80. )
  81. var ResponseOfferSnapshot_Result_name = map[int32]string{
  82. 0: "UNKNOWN",
  83. 1: "ACCEPT",
  84. 2: "ABORT",
  85. 3: "REJECT",
  86. 4: "REJECT_FORMAT",
  87. 5: "REJECT_SENDER",
  88. }
  89. var ResponseOfferSnapshot_Result_value = map[string]int32{
  90. "UNKNOWN": 0,
  91. "ACCEPT": 1,
  92. "ABORT": 2,
  93. "REJECT": 3,
  94. "REJECT_FORMAT": 4,
  95. "REJECT_SENDER": 5,
  96. }
  97. func (x ResponseOfferSnapshot_Result) String() string {
  98. return proto.EnumName(ResponseOfferSnapshot_Result_name, int32(x))
  99. }
  100. func (ResponseOfferSnapshot_Result) EnumDescriptor() ([]byte, []int) {
  101. return fileDescriptor_252557cfdd89a31a, []int{33, 0}
  102. }
  103. type ResponseApplySnapshotChunk_Result int32
  104. const (
  105. ResponseApplySnapshotChunk_UNKNOWN ResponseApplySnapshotChunk_Result = 0
  106. ResponseApplySnapshotChunk_ACCEPT ResponseApplySnapshotChunk_Result = 1
  107. ResponseApplySnapshotChunk_ABORT ResponseApplySnapshotChunk_Result = 2
  108. ResponseApplySnapshotChunk_RETRY ResponseApplySnapshotChunk_Result = 3
  109. ResponseApplySnapshotChunk_RETRY_SNAPSHOT ResponseApplySnapshotChunk_Result = 4
  110. ResponseApplySnapshotChunk_REJECT_SNAPSHOT ResponseApplySnapshotChunk_Result = 5
  111. )
  112. var ResponseApplySnapshotChunk_Result_name = map[int32]string{
  113. 0: "UNKNOWN",
  114. 1: "ACCEPT",
  115. 2: "ABORT",
  116. 3: "RETRY",
  117. 4: "RETRY_SNAPSHOT",
  118. 5: "REJECT_SNAPSHOT",
  119. }
  120. var ResponseApplySnapshotChunk_Result_value = map[string]int32{
  121. "UNKNOWN": 0,
  122. "ACCEPT": 1,
  123. "ABORT": 2,
  124. "RETRY": 3,
  125. "RETRY_SNAPSHOT": 4,
  126. "REJECT_SNAPSHOT": 5,
  127. }
  128. func (x ResponseApplySnapshotChunk_Result) String() string {
  129. return proto.EnumName(ResponseApplySnapshotChunk_Result_name, int32(x))
  130. }
  131. func (ResponseApplySnapshotChunk_Result) EnumDescriptor() ([]byte, []int) {
  132. return fileDescriptor_252557cfdd89a31a, []int{35, 0}
  133. }
  134. type ResponseVerifyVoteExtension_Result int32
  135. const (
  136. ResponseVerifyVoteExtension_UNKNOWN ResponseVerifyVoteExtension_Result = 0
  137. ResponseVerifyVoteExtension_ACCEPT ResponseVerifyVoteExtension_Result = 1
  138. ResponseVerifyVoteExtension_SLASH ResponseVerifyVoteExtension_Result = 2
  139. ResponseVerifyVoteExtension_REJECT ResponseVerifyVoteExtension_Result = 3
  140. )
  141. var ResponseVerifyVoteExtension_Result_name = map[int32]string{
  142. 0: "UNKNOWN",
  143. 1: "ACCEPT",
  144. 2: "SLASH",
  145. 3: "REJECT",
  146. }
  147. var ResponseVerifyVoteExtension_Result_value = map[string]int32{
  148. "UNKNOWN": 0,
  149. "ACCEPT": 1,
  150. "SLASH": 2,
  151. "REJECT": 3,
  152. }
  153. func (x ResponseVerifyVoteExtension_Result) String() string {
  154. return proto.EnumName(ResponseVerifyVoteExtension_Result_name, int32(x))
  155. }
  156. func (ResponseVerifyVoteExtension_Result) EnumDescriptor() ([]byte, []int) {
  157. return fileDescriptor_252557cfdd89a31a, []int{37, 0}
  158. }
  159. type Request struct {
  160. // Types that are valid to be assigned to Value:
  161. // *Request_Echo
  162. // *Request_Flush
  163. // *Request_Info
  164. // *Request_InitChain
  165. // *Request_Query
  166. // *Request_BeginBlock
  167. // *Request_CheckTx
  168. // *Request_DeliverTx
  169. // *Request_EndBlock
  170. // *Request_Commit
  171. // *Request_ListSnapshots
  172. // *Request_OfferSnapshot
  173. // *Request_LoadSnapshotChunk
  174. // *Request_ApplySnapshotChunk
  175. // *Request_PrepareProposal
  176. // *Request_ProcessProposal
  177. // *Request_ExtendVote
  178. // *Request_VerifyVoteExtension
  179. // *Request_FinalizeBlock
  180. Value isRequest_Value `protobuf_oneof:"value"`
  181. }
  182. func (m *Request) Reset() { *m = Request{} }
  183. func (m *Request) String() string { return proto.CompactTextString(m) }
  184. func (*Request) ProtoMessage() {}
  185. func (*Request) Descriptor() ([]byte, []int) {
  186. return fileDescriptor_252557cfdd89a31a, []int{0}
  187. }
  188. func (m *Request) XXX_Unmarshal(b []byte) error {
  189. return m.Unmarshal(b)
  190. }
  191. func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  192. if deterministic {
  193. return xxx_messageInfo_Request.Marshal(b, m, deterministic)
  194. } else {
  195. b = b[:cap(b)]
  196. n, err := m.MarshalToSizedBuffer(b)
  197. if err != nil {
  198. return nil, err
  199. }
  200. return b[:n], nil
  201. }
  202. }
  203. func (m *Request) XXX_Merge(src proto.Message) {
  204. xxx_messageInfo_Request.Merge(m, src)
  205. }
  206. func (m *Request) XXX_Size() int {
  207. return m.Size()
  208. }
  209. func (m *Request) XXX_DiscardUnknown() {
  210. xxx_messageInfo_Request.DiscardUnknown(m)
  211. }
  212. var xxx_messageInfo_Request proto.InternalMessageInfo
  213. type isRequest_Value interface {
  214. isRequest_Value()
  215. MarshalTo([]byte) (int, error)
  216. Size() int
  217. }
  218. type Request_Echo struct {
  219. Echo *RequestEcho `protobuf:"bytes,1,opt,name=echo,proto3,oneof" json:"echo,omitempty"`
  220. }
  221. type Request_Flush struct {
  222. Flush *RequestFlush `protobuf:"bytes,2,opt,name=flush,proto3,oneof" json:"flush,omitempty"`
  223. }
  224. type Request_Info struct {
  225. Info *RequestInfo `protobuf:"bytes,3,opt,name=info,proto3,oneof" json:"info,omitempty"`
  226. }
  227. type Request_InitChain struct {
  228. InitChain *RequestInitChain `protobuf:"bytes,4,opt,name=init_chain,json=initChain,proto3,oneof" json:"init_chain,omitempty"`
  229. }
  230. type Request_Query struct {
  231. Query *RequestQuery `protobuf:"bytes,5,opt,name=query,proto3,oneof" json:"query,omitempty"`
  232. }
  233. type Request_BeginBlock struct {
  234. BeginBlock *RequestBeginBlock `protobuf:"bytes,6,opt,name=begin_block,json=beginBlock,proto3,oneof" json:"begin_block,omitempty"`
  235. }
  236. type Request_CheckTx struct {
  237. CheckTx *RequestCheckTx `protobuf:"bytes,7,opt,name=check_tx,json=checkTx,proto3,oneof" json:"check_tx,omitempty"`
  238. }
  239. type Request_DeliverTx struct {
  240. DeliverTx *RequestDeliverTx `protobuf:"bytes,8,opt,name=deliver_tx,json=deliverTx,proto3,oneof" json:"deliver_tx,omitempty"`
  241. }
  242. type Request_EndBlock struct {
  243. EndBlock *RequestEndBlock `protobuf:"bytes,9,opt,name=end_block,json=endBlock,proto3,oneof" json:"end_block,omitempty"`
  244. }
  245. type Request_Commit struct {
  246. Commit *RequestCommit `protobuf:"bytes,10,opt,name=commit,proto3,oneof" json:"commit,omitempty"`
  247. }
  248. type Request_ListSnapshots struct {
  249. ListSnapshots *RequestListSnapshots `protobuf:"bytes,11,opt,name=list_snapshots,json=listSnapshots,proto3,oneof" json:"list_snapshots,omitempty"`
  250. }
  251. type Request_OfferSnapshot struct {
  252. OfferSnapshot *RequestOfferSnapshot `protobuf:"bytes,12,opt,name=offer_snapshot,json=offerSnapshot,proto3,oneof" json:"offer_snapshot,omitempty"`
  253. }
  254. type Request_LoadSnapshotChunk struct {
  255. LoadSnapshotChunk *RequestLoadSnapshotChunk `protobuf:"bytes,13,opt,name=load_snapshot_chunk,json=loadSnapshotChunk,proto3,oneof" json:"load_snapshot_chunk,omitempty"`
  256. }
  257. type Request_ApplySnapshotChunk struct {
  258. ApplySnapshotChunk *RequestApplySnapshotChunk `protobuf:"bytes,14,opt,name=apply_snapshot_chunk,json=applySnapshotChunk,proto3,oneof" json:"apply_snapshot_chunk,omitempty"`
  259. }
  260. type Request_PrepareProposal struct {
  261. PrepareProposal *RequestPrepareProposal `protobuf:"bytes,15,opt,name=prepare_proposal,json=prepareProposal,proto3,oneof" json:"prepare_proposal,omitempty"`
  262. }
  263. type Request_ProcessProposal struct {
  264. ProcessProposal *RequestProcessProposal `protobuf:"bytes,16,opt,name=process_proposal,json=processProposal,proto3,oneof" json:"process_proposal,omitempty"`
  265. }
  266. type Request_ExtendVote struct {
  267. ExtendVote *RequestExtendVote `protobuf:"bytes,17,opt,name=extend_vote,json=extendVote,proto3,oneof" json:"extend_vote,omitempty"`
  268. }
  269. type Request_VerifyVoteExtension struct {
  270. VerifyVoteExtension *RequestVerifyVoteExtension `protobuf:"bytes,18,opt,name=verify_vote_extension,json=verifyVoteExtension,proto3,oneof" json:"verify_vote_extension,omitempty"`
  271. }
  272. type Request_FinalizeBlock struct {
  273. FinalizeBlock *RequestFinalizeBlock `protobuf:"bytes,19,opt,name=finalize_block,json=finalizeBlock,proto3,oneof" json:"finalize_block,omitempty"`
  274. }
  275. func (*Request_Echo) isRequest_Value() {}
  276. func (*Request_Flush) isRequest_Value() {}
  277. func (*Request_Info) isRequest_Value() {}
  278. func (*Request_InitChain) isRequest_Value() {}
  279. func (*Request_Query) isRequest_Value() {}
  280. func (*Request_BeginBlock) isRequest_Value() {}
  281. func (*Request_CheckTx) isRequest_Value() {}
  282. func (*Request_DeliverTx) isRequest_Value() {}
  283. func (*Request_EndBlock) isRequest_Value() {}
  284. func (*Request_Commit) isRequest_Value() {}
  285. func (*Request_ListSnapshots) isRequest_Value() {}
  286. func (*Request_OfferSnapshot) isRequest_Value() {}
  287. func (*Request_LoadSnapshotChunk) isRequest_Value() {}
  288. func (*Request_ApplySnapshotChunk) isRequest_Value() {}
  289. func (*Request_PrepareProposal) isRequest_Value() {}
  290. func (*Request_ProcessProposal) isRequest_Value() {}
  291. func (*Request_ExtendVote) isRequest_Value() {}
  292. func (*Request_VerifyVoteExtension) isRequest_Value() {}
  293. func (*Request_FinalizeBlock) isRequest_Value() {}
  294. func (m *Request) GetValue() isRequest_Value {
  295. if m != nil {
  296. return m.Value
  297. }
  298. return nil
  299. }
  300. func (m *Request) GetEcho() *RequestEcho {
  301. if x, ok := m.GetValue().(*Request_Echo); ok {
  302. return x.Echo
  303. }
  304. return nil
  305. }
  306. func (m *Request) GetFlush() *RequestFlush {
  307. if x, ok := m.GetValue().(*Request_Flush); ok {
  308. return x.Flush
  309. }
  310. return nil
  311. }
  312. func (m *Request) GetInfo() *RequestInfo {
  313. if x, ok := m.GetValue().(*Request_Info); ok {
  314. return x.Info
  315. }
  316. return nil
  317. }
  318. func (m *Request) GetInitChain() *RequestInitChain {
  319. if x, ok := m.GetValue().(*Request_InitChain); ok {
  320. return x.InitChain
  321. }
  322. return nil
  323. }
  324. func (m *Request) GetQuery() *RequestQuery {
  325. if x, ok := m.GetValue().(*Request_Query); ok {
  326. return x.Query
  327. }
  328. return nil
  329. }
  330. // Deprecated: Do not use.
  331. func (m *Request) GetBeginBlock() *RequestBeginBlock {
  332. if x, ok := m.GetValue().(*Request_BeginBlock); ok {
  333. return x.BeginBlock
  334. }
  335. return nil
  336. }
  337. func (m *Request) GetCheckTx() *RequestCheckTx {
  338. if x, ok := m.GetValue().(*Request_CheckTx); ok {
  339. return x.CheckTx
  340. }
  341. return nil
  342. }
  343. // Deprecated: Do not use.
  344. func (m *Request) GetDeliverTx() *RequestDeliverTx {
  345. if x, ok := m.GetValue().(*Request_DeliverTx); ok {
  346. return x.DeliverTx
  347. }
  348. return nil
  349. }
  350. // Deprecated: Do not use.
  351. func (m *Request) GetEndBlock() *RequestEndBlock {
  352. if x, ok := m.GetValue().(*Request_EndBlock); ok {
  353. return x.EndBlock
  354. }
  355. return nil
  356. }
  357. func (m *Request) GetCommit() *RequestCommit {
  358. if x, ok := m.GetValue().(*Request_Commit); ok {
  359. return x.Commit
  360. }
  361. return nil
  362. }
  363. func (m *Request) GetListSnapshots() *RequestListSnapshots {
  364. if x, ok := m.GetValue().(*Request_ListSnapshots); ok {
  365. return x.ListSnapshots
  366. }
  367. return nil
  368. }
  369. func (m *Request) GetOfferSnapshot() *RequestOfferSnapshot {
  370. if x, ok := m.GetValue().(*Request_OfferSnapshot); ok {
  371. return x.OfferSnapshot
  372. }
  373. return nil
  374. }
  375. func (m *Request) GetLoadSnapshotChunk() *RequestLoadSnapshotChunk {
  376. if x, ok := m.GetValue().(*Request_LoadSnapshotChunk); ok {
  377. return x.LoadSnapshotChunk
  378. }
  379. return nil
  380. }
  381. func (m *Request) GetApplySnapshotChunk() *RequestApplySnapshotChunk {
  382. if x, ok := m.GetValue().(*Request_ApplySnapshotChunk); ok {
  383. return x.ApplySnapshotChunk
  384. }
  385. return nil
  386. }
  387. func (m *Request) GetPrepareProposal() *RequestPrepareProposal {
  388. if x, ok := m.GetValue().(*Request_PrepareProposal); ok {
  389. return x.PrepareProposal
  390. }
  391. return nil
  392. }
  393. func (m *Request) GetProcessProposal() *RequestProcessProposal {
  394. if x, ok := m.GetValue().(*Request_ProcessProposal); ok {
  395. return x.ProcessProposal
  396. }
  397. return nil
  398. }
  399. func (m *Request) GetExtendVote() *RequestExtendVote {
  400. if x, ok := m.GetValue().(*Request_ExtendVote); ok {
  401. return x.ExtendVote
  402. }
  403. return nil
  404. }
  405. func (m *Request) GetVerifyVoteExtension() *RequestVerifyVoteExtension {
  406. if x, ok := m.GetValue().(*Request_VerifyVoteExtension); ok {
  407. return x.VerifyVoteExtension
  408. }
  409. return nil
  410. }
  411. func (m *Request) GetFinalizeBlock() *RequestFinalizeBlock {
  412. if x, ok := m.GetValue().(*Request_FinalizeBlock); ok {
  413. return x.FinalizeBlock
  414. }
  415. return nil
  416. }
  417. // XXX_OneofWrappers is for the internal use of the proto package.
  418. func (*Request) XXX_OneofWrappers() []interface{} {
  419. return []interface{}{
  420. (*Request_Echo)(nil),
  421. (*Request_Flush)(nil),
  422. (*Request_Info)(nil),
  423. (*Request_InitChain)(nil),
  424. (*Request_Query)(nil),
  425. (*Request_BeginBlock)(nil),
  426. (*Request_CheckTx)(nil),
  427. (*Request_DeliverTx)(nil),
  428. (*Request_EndBlock)(nil),
  429. (*Request_Commit)(nil),
  430. (*Request_ListSnapshots)(nil),
  431. (*Request_OfferSnapshot)(nil),
  432. (*Request_LoadSnapshotChunk)(nil),
  433. (*Request_ApplySnapshotChunk)(nil),
  434. (*Request_PrepareProposal)(nil),
  435. (*Request_ProcessProposal)(nil),
  436. (*Request_ExtendVote)(nil),
  437. (*Request_VerifyVoteExtension)(nil),
  438. (*Request_FinalizeBlock)(nil),
  439. }
  440. }
  441. type RequestEcho struct {
  442. Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
  443. }
  444. func (m *RequestEcho) Reset() { *m = RequestEcho{} }
  445. func (m *RequestEcho) String() string { return proto.CompactTextString(m) }
  446. func (*RequestEcho) ProtoMessage() {}
  447. func (*RequestEcho) Descriptor() ([]byte, []int) {
  448. return fileDescriptor_252557cfdd89a31a, []int{1}
  449. }
  450. func (m *RequestEcho) XXX_Unmarshal(b []byte) error {
  451. return m.Unmarshal(b)
  452. }
  453. func (m *RequestEcho) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  454. if deterministic {
  455. return xxx_messageInfo_RequestEcho.Marshal(b, m, deterministic)
  456. } else {
  457. b = b[:cap(b)]
  458. n, err := m.MarshalToSizedBuffer(b)
  459. if err != nil {
  460. return nil, err
  461. }
  462. return b[:n], nil
  463. }
  464. }
  465. func (m *RequestEcho) XXX_Merge(src proto.Message) {
  466. xxx_messageInfo_RequestEcho.Merge(m, src)
  467. }
  468. func (m *RequestEcho) XXX_Size() int {
  469. return m.Size()
  470. }
  471. func (m *RequestEcho) XXX_DiscardUnknown() {
  472. xxx_messageInfo_RequestEcho.DiscardUnknown(m)
  473. }
  474. var xxx_messageInfo_RequestEcho proto.InternalMessageInfo
  475. func (m *RequestEcho) GetMessage() string {
  476. if m != nil {
  477. return m.Message
  478. }
  479. return ""
  480. }
  481. type RequestFlush struct {
  482. }
  483. func (m *RequestFlush) Reset() { *m = RequestFlush{} }
  484. func (m *RequestFlush) String() string { return proto.CompactTextString(m) }
  485. func (*RequestFlush) ProtoMessage() {}
  486. func (*RequestFlush) Descriptor() ([]byte, []int) {
  487. return fileDescriptor_252557cfdd89a31a, []int{2}
  488. }
  489. func (m *RequestFlush) XXX_Unmarshal(b []byte) error {
  490. return m.Unmarshal(b)
  491. }
  492. func (m *RequestFlush) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  493. if deterministic {
  494. return xxx_messageInfo_RequestFlush.Marshal(b, m, deterministic)
  495. } else {
  496. b = b[:cap(b)]
  497. n, err := m.MarshalToSizedBuffer(b)
  498. if err != nil {
  499. return nil, err
  500. }
  501. return b[:n], nil
  502. }
  503. }
  504. func (m *RequestFlush) XXX_Merge(src proto.Message) {
  505. xxx_messageInfo_RequestFlush.Merge(m, src)
  506. }
  507. func (m *RequestFlush) XXX_Size() int {
  508. return m.Size()
  509. }
  510. func (m *RequestFlush) XXX_DiscardUnknown() {
  511. xxx_messageInfo_RequestFlush.DiscardUnknown(m)
  512. }
  513. var xxx_messageInfo_RequestFlush proto.InternalMessageInfo
  514. type RequestInfo struct {
  515. Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
  516. BlockVersion uint64 `protobuf:"varint,2,opt,name=block_version,json=blockVersion,proto3" json:"block_version,omitempty"`
  517. P2PVersion uint64 `protobuf:"varint,3,opt,name=p2p_version,json=p2pVersion,proto3" json:"p2p_version,omitempty"`
  518. AbciVersion string `protobuf:"bytes,4,opt,name=abci_version,json=abciVersion,proto3" json:"abci_version,omitempty"`
  519. }
  520. func (m *RequestInfo) Reset() { *m = RequestInfo{} }
  521. func (m *RequestInfo) String() string { return proto.CompactTextString(m) }
  522. func (*RequestInfo) ProtoMessage() {}
  523. func (*RequestInfo) Descriptor() ([]byte, []int) {
  524. return fileDescriptor_252557cfdd89a31a, []int{3}
  525. }
  526. func (m *RequestInfo) XXX_Unmarshal(b []byte) error {
  527. return m.Unmarshal(b)
  528. }
  529. func (m *RequestInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  530. if deterministic {
  531. return xxx_messageInfo_RequestInfo.Marshal(b, m, deterministic)
  532. } else {
  533. b = b[:cap(b)]
  534. n, err := m.MarshalToSizedBuffer(b)
  535. if err != nil {
  536. return nil, err
  537. }
  538. return b[:n], nil
  539. }
  540. }
  541. func (m *RequestInfo) XXX_Merge(src proto.Message) {
  542. xxx_messageInfo_RequestInfo.Merge(m, src)
  543. }
  544. func (m *RequestInfo) XXX_Size() int {
  545. return m.Size()
  546. }
  547. func (m *RequestInfo) XXX_DiscardUnknown() {
  548. xxx_messageInfo_RequestInfo.DiscardUnknown(m)
  549. }
  550. var xxx_messageInfo_RequestInfo proto.InternalMessageInfo
  551. func (m *RequestInfo) GetVersion() string {
  552. if m != nil {
  553. return m.Version
  554. }
  555. return ""
  556. }
  557. func (m *RequestInfo) GetBlockVersion() uint64 {
  558. if m != nil {
  559. return m.BlockVersion
  560. }
  561. return 0
  562. }
  563. func (m *RequestInfo) GetP2PVersion() uint64 {
  564. if m != nil {
  565. return m.P2PVersion
  566. }
  567. return 0
  568. }
  569. func (m *RequestInfo) GetAbciVersion() string {
  570. if m != nil {
  571. return m.AbciVersion
  572. }
  573. return ""
  574. }
  575. type RequestInitChain struct {
  576. Time time.Time `protobuf:"bytes,1,opt,name=time,proto3,stdtime" json:"time"`
  577. ChainId string `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
  578. ConsensusParams *types1.ConsensusParams `protobuf:"bytes,3,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"`
  579. Validators []ValidatorUpdate `protobuf:"bytes,4,rep,name=validators,proto3" json:"validators"`
  580. AppStateBytes []byte `protobuf:"bytes,5,opt,name=app_state_bytes,json=appStateBytes,proto3" json:"app_state_bytes,omitempty"`
  581. InitialHeight int64 `protobuf:"varint,6,opt,name=initial_height,json=initialHeight,proto3" json:"initial_height,omitempty"`
  582. }
  583. func (m *RequestInitChain) Reset() { *m = RequestInitChain{} }
  584. func (m *RequestInitChain) String() string { return proto.CompactTextString(m) }
  585. func (*RequestInitChain) ProtoMessage() {}
  586. func (*RequestInitChain) Descriptor() ([]byte, []int) {
  587. return fileDescriptor_252557cfdd89a31a, []int{4}
  588. }
  589. func (m *RequestInitChain) XXX_Unmarshal(b []byte) error {
  590. return m.Unmarshal(b)
  591. }
  592. func (m *RequestInitChain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  593. if deterministic {
  594. return xxx_messageInfo_RequestInitChain.Marshal(b, m, deterministic)
  595. } else {
  596. b = b[:cap(b)]
  597. n, err := m.MarshalToSizedBuffer(b)
  598. if err != nil {
  599. return nil, err
  600. }
  601. return b[:n], nil
  602. }
  603. }
  604. func (m *RequestInitChain) XXX_Merge(src proto.Message) {
  605. xxx_messageInfo_RequestInitChain.Merge(m, src)
  606. }
  607. func (m *RequestInitChain) XXX_Size() int {
  608. return m.Size()
  609. }
  610. func (m *RequestInitChain) XXX_DiscardUnknown() {
  611. xxx_messageInfo_RequestInitChain.DiscardUnknown(m)
  612. }
  613. var xxx_messageInfo_RequestInitChain proto.InternalMessageInfo
  614. func (m *RequestInitChain) GetTime() time.Time {
  615. if m != nil {
  616. return m.Time
  617. }
  618. return time.Time{}
  619. }
  620. func (m *RequestInitChain) GetChainId() string {
  621. if m != nil {
  622. return m.ChainId
  623. }
  624. return ""
  625. }
  626. func (m *RequestInitChain) GetConsensusParams() *types1.ConsensusParams {
  627. if m != nil {
  628. return m.ConsensusParams
  629. }
  630. return nil
  631. }
  632. func (m *RequestInitChain) GetValidators() []ValidatorUpdate {
  633. if m != nil {
  634. return m.Validators
  635. }
  636. return nil
  637. }
  638. func (m *RequestInitChain) GetAppStateBytes() []byte {
  639. if m != nil {
  640. return m.AppStateBytes
  641. }
  642. return nil
  643. }
  644. func (m *RequestInitChain) GetInitialHeight() int64 {
  645. if m != nil {
  646. return m.InitialHeight
  647. }
  648. return 0
  649. }
  650. type RequestQuery struct {
  651. Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
  652. Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
  653. Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
  654. Prove bool `protobuf:"varint,4,opt,name=prove,proto3" json:"prove,omitempty"`
  655. }
  656. func (m *RequestQuery) Reset() { *m = RequestQuery{} }
  657. func (m *RequestQuery) String() string { return proto.CompactTextString(m) }
  658. func (*RequestQuery) ProtoMessage() {}
  659. func (*RequestQuery) Descriptor() ([]byte, []int) {
  660. return fileDescriptor_252557cfdd89a31a, []int{5}
  661. }
  662. func (m *RequestQuery) XXX_Unmarshal(b []byte) error {
  663. return m.Unmarshal(b)
  664. }
  665. func (m *RequestQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  666. if deterministic {
  667. return xxx_messageInfo_RequestQuery.Marshal(b, m, deterministic)
  668. } else {
  669. b = b[:cap(b)]
  670. n, err := m.MarshalToSizedBuffer(b)
  671. if err != nil {
  672. return nil, err
  673. }
  674. return b[:n], nil
  675. }
  676. }
  677. func (m *RequestQuery) XXX_Merge(src proto.Message) {
  678. xxx_messageInfo_RequestQuery.Merge(m, src)
  679. }
  680. func (m *RequestQuery) XXX_Size() int {
  681. return m.Size()
  682. }
  683. func (m *RequestQuery) XXX_DiscardUnknown() {
  684. xxx_messageInfo_RequestQuery.DiscardUnknown(m)
  685. }
  686. var xxx_messageInfo_RequestQuery proto.InternalMessageInfo
  687. func (m *RequestQuery) GetData() []byte {
  688. if m != nil {
  689. return m.Data
  690. }
  691. return nil
  692. }
  693. func (m *RequestQuery) GetPath() string {
  694. if m != nil {
  695. return m.Path
  696. }
  697. return ""
  698. }
  699. func (m *RequestQuery) GetHeight() int64 {
  700. if m != nil {
  701. return m.Height
  702. }
  703. return 0
  704. }
  705. func (m *RequestQuery) GetProve() bool {
  706. if m != nil {
  707. return m.Prove
  708. }
  709. return false
  710. }
  711. type RequestBeginBlock struct {
  712. Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
  713. Header types1.Header `protobuf:"bytes,2,opt,name=header,proto3" json:"header"`
  714. LastCommitInfo CommitInfo `protobuf:"bytes,3,opt,name=last_commit_info,json=lastCommitInfo,proto3" json:"last_commit_info"`
  715. ByzantineValidators []Evidence `protobuf:"bytes,4,rep,name=byzantine_validators,json=byzantineValidators,proto3" json:"byzantine_validators"`
  716. }
  717. func (m *RequestBeginBlock) Reset() { *m = RequestBeginBlock{} }
  718. func (m *RequestBeginBlock) String() string { return proto.CompactTextString(m) }
  719. func (*RequestBeginBlock) ProtoMessage() {}
  720. func (*RequestBeginBlock) Descriptor() ([]byte, []int) {
  721. return fileDescriptor_252557cfdd89a31a, []int{6}
  722. }
  723. func (m *RequestBeginBlock) XXX_Unmarshal(b []byte) error {
  724. return m.Unmarshal(b)
  725. }
  726. func (m *RequestBeginBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  727. if deterministic {
  728. return xxx_messageInfo_RequestBeginBlock.Marshal(b, m, deterministic)
  729. } else {
  730. b = b[:cap(b)]
  731. n, err := m.MarshalToSizedBuffer(b)
  732. if err != nil {
  733. return nil, err
  734. }
  735. return b[:n], nil
  736. }
  737. }
  738. func (m *RequestBeginBlock) XXX_Merge(src proto.Message) {
  739. xxx_messageInfo_RequestBeginBlock.Merge(m, src)
  740. }
  741. func (m *RequestBeginBlock) XXX_Size() int {
  742. return m.Size()
  743. }
  744. func (m *RequestBeginBlock) XXX_DiscardUnknown() {
  745. xxx_messageInfo_RequestBeginBlock.DiscardUnknown(m)
  746. }
  747. var xxx_messageInfo_RequestBeginBlock proto.InternalMessageInfo
  748. func (m *RequestBeginBlock) GetHash() []byte {
  749. if m != nil {
  750. return m.Hash
  751. }
  752. return nil
  753. }
  754. func (m *RequestBeginBlock) GetHeader() types1.Header {
  755. if m != nil {
  756. return m.Header
  757. }
  758. return types1.Header{}
  759. }
  760. func (m *RequestBeginBlock) GetLastCommitInfo() CommitInfo {
  761. if m != nil {
  762. return m.LastCommitInfo
  763. }
  764. return CommitInfo{}
  765. }
  766. func (m *RequestBeginBlock) GetByzantineValidators() []Evidence {
  767. if m != nil {
  768. return m.ByzantineValidators
  769. }
  770. return nil
  771. }
  772. type RequestCheckTx struct {
  773. Tx []byte `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"`
  774. Type CheckTxType `protobuf:"varint,2,opt,name=type,proto3,enum=tendermint.abci.CheckTxType" json:"type,omitempty"`
  775. }
  776. func (m *RequestCheckTx) Reset() { *m = RequestCheckTx{} }
  777. func (m *RequestCheckTx) String() string { return proto.CompactTextString(m) }
  778. func (*RequestCheckTx) ProtoMessage() {}
  779. func (*RequestCheckTx) Descriptor() ([]byte, []int) {
  780. return fileDescriptor_252557cfdd89a31a, []int{7}
  781. }
  782. func (m *RequestCheckTx) XXX_Unmarshal(b []byte) error {
  783. return m.Unmarshal(b)
  784. }
  785. func (m *RequestCheckTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  786. if deterministic {
  787. return xxx_messageInfo_RequestCheckTx.Marshal(b, m, deterministic)
  788. } else {
  789. b = b[:cap(b)]
  790. n, err := m.MarshalToSizedBuffer(b)
  791. if err != nil {
  792. return nil, err
  793. }
  794. return b[:n], nil
  795. }
  796. }
  797. func (m *RequestCheckTx) XXX_Merge(src proto.Message) {
  798. xxx_messageInfo_RequestCheckTx.Merge(m, src)
  799. }
  800. func (m *RequestCheckTx) XXX_Size() int {
  801. return m.Size()
  802. }
  803. func (m *RequestCheckTx) XXX_DiscardUnknown() {
  804. xxx_messageInfo_RequestCheckTx.DiscardUnknown(m)
  805. }
  806. var xxx_messageInfo_RequestCheckTx proto.InternalMessageInfo
  807. func (m *RequestCheckTx) GetTx() []byte {
  808. if m != nil {
  809. return m.Tx
  810. }
  811. return nil
  812. }
  813. func (m *RequestCheckTx) GetType() CheckTxType {
  814. if m != nil {
  815. return m.Type
  816. }
  817. return CheckTxType_New
  818. }
  819. type RequestDeliverTx struct {
  820. Tx []byte `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"`
  821. }
  822. func (m *RequestDeliverTx) Reset() { *m = RequestDeliverTx{} }
  823. func (m *RequestDeliverTx) String() string { return proto.CompactTextString(m) }
  824. func (*RequestDeliverTx) ProtoMessage() {}
  825. func (*RequestDeliverTx) Descriptor() ([]byte, []int) {
  826. return fileDescriptor_252557cfdd89a31a, []int{8}
  827. }
  828. func (m *RequestDeliverTx) XXX_Unmarshal(b []byte) error {
  829. return m.Unmarshal(b)
  830. }
  831. func (m *RequestDeliverTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  832. if deterministic {
  833. return xxx_messageInfo_RequestDeliverTx.Marshal(b, m, deterministic)
  834. } else {
  835. b = b[:cap(b)]
  836. n, err := m.MarshalToSizedBuffer(b)
  837. if err != nil {
  838. return nil, err
  839. }
  840. return b[:n], nil
  841. }
  842. }
  843. func (m *RequestDeliverTx) XXX_Merge(src proto.Message) {
  844. xxx_messageInfo_RequestDeliverTx.Merge(m, src)
  845. }
  846. func (m *RequestDeliverTx) XXX_Size() int {
  847. return m.Size()
  848. }
  849. func (m *RequestDeliverTx) XXX_DiscardUnknown() {
  850. xxx_messageInfo_RequestDeliverTx.DiscardUnknown(m)
  851. }
  852. var xxx_messageInfo_RequestDeliverTx proto.InternalMessageInfo
  853. func (m *RequestDeliverTx) GetTx() []byte {
  854. if m != nil {
  855. return m.Tx
  856. }
  857. return nil
  858. }
  859. type RequestEndBlock struct {
  860. Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
  861. }
  862. func (m *RequestEndBlock) Reset() { *m = RequestEndBlock{} }
  863. func (m *RequestEndBlock) String() string { return proto.CompactTextString(m) }
  864. func (*RequestEndBlock) ProtoMessage() {}
  865. func (*RequestEndBlock) Descriptor() ([]byte, []int) {
  866. return fileDescriptor_252557cfdd89a31a, []int{9}
  867. }
  868. func (m *RequestEndBlock) XXX_Unmarshal(b []byte) error {
  869. return m.Unmarshal(b)
  870. }
  871. func (m *RequestEndBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  872. if deterministic {
  873. return xxx_messageInfo_RequestEndBlock.Marshal(b, m, deterministic)
  874. } else {
  875. b = b[:cap(b)]
  876. n, err := m.MarshalToSizedBuffer(b)
  877. if err != nil {
  878. return nil, err
  879. }
  880. return b[:n], nil
  881. }
  882. }
  883. func (m *RequestEndBlock) XXX_Merge(src proto.Message) {
  884. xxx_messageInfo_RequestEndBlock.Merge(m, src)
  885. }
  886. func (m *RequestEndBlock) XXX_Size() int {
  887. return m.Size()
  888. }
  889. func (m *RequestEndBlock) XXX_DiscardUnknown() {
  890. xxx_messageInfo_RequestEndBlock.DiscardUnknown(m)
  891. }
  892. var xxx_messageInfo_RequestEndBlock proto.InternalMessageInfo
  893. func (m *RequestEndBlock) GetHeight() int64 {
  894. if m != nil {
  895. return m.Height
  896. }
  897. return 0
  898. }
  899. type RequestCommit struct {
  900. }
  901. func (m *RequestCommit) Reset() { *m = RequestCommit{} }
  902. func (m *RequestCommit) String() string { return proto.CompactTextString(m) }
  903. func (*RequestCommit) ProtoMessage() {}
  904. func (*RequestCommit) Descriptor() ([]byte, []int) {
  905. return fileDescriptor_252557cfdd89a31a, []int{10}
  906. }
  907. func (m *RequestCommit) XXX_Unmarshal(b []byte) error {
  908. return m.Unmarshal(b)
  909. }
  910. func (m *RequestCommit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  911. if deterministic {
  912. return xxx_messageInfo_RequestCommit.Marshal(b, m, deterministic)
  913. } else {
  914. b = b[:cap(b)]
  915. n, err := m.MarshalToSizedBuffer(b)
  916. if err != nil {
  917. return nil, err
  918. }
  919. return b[:n], nil
  920. }
  921. }
  922. func (m *RequestCommit) XXX_Merge(src proto.Message) {
  923. xxx_messageInfo_RequestCommit.Merge(m, src)
  924. }
  925. func (m *RequestCommit) XXX_Size() int {
  926. return m.Size()
  927. }
  928. func (m *RequestCommit) XXX_DiscardUnknown() {
  929. xxx_messageInfo_RequestCommit.DiscardUnknown(m)
  930. }
  931. var xxx_messageInfo_RequestCommit proto.InternalMessageInfo
  932. // lists available snapshots
  933. type RequestListSnapshots struct {
  934. }
  935. func (m *RequestListSnapshots) Reset() { *m = RequestListSnapshots{} }
  936. func (m *RequestListSnapshots) String() string { return proto.CompactTextString(m) }
  937. func (*RequestListSnapshots) ProtoMessage() {}
  938. func (*RequestListSnapshots) Descriptor() ([]byte, []int) {
  939. return fileDescriptor_252557cfdd89a31a, []int{11}
  940. }
  941. func (m *RequestListSnapshots) XXX_Unmarshal(b []byte) error {
  942. return m.Unmarshal(b)
  943. }
  944. func (m *RequestListSnapshots) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  945. if deterministic {
  946. return xxx_messageInfo_RequestListSnapshots.Marshal(b, m, deterministic)
  947. } else {
  948. b = b[:cap(b)]
  949. n, err := m.MarshalToSizedBuffer(b)
  950. if err != nil {
  951. return nil, err
  952. }
  953. return b[:n], nil
  954. }
  955. }
  956. func (m *RequestListSnapshots) XXX_Merge(src proto.Message) {
  957. xxx_messageInfo_RequestListSnapshots.Merge(m, src)
  958. }
  959. func (m *RequestListSnapshots) XXX_Size() int {
  960. return m.Size()
  961. }
  962. func (m *RequestListSnapshots) XXX_DiscardUnknown() {
  963. xxx_messageInfo_RequestListSnapshots.DiscardUnknown(m)
  964. }
  965. var xxx_messageInfo_RequestListSnapshots proto.InternalMessageInfo
  966. // offers a snapshot to the application
  967. type RequestOfferSnapshot struct {
  968. Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"`
  969. AppHash []byte `protobuf:"bytes,2,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"`
  970. }
  971. func (m *RequestOfferSnapshot) Reset() { *m = RequestOfferSnapshot{} }
  972. func (m *RequestOfferSnapshot) String() string { return proto.CompactTextString(m) }
  973. func (*RequestOfferSnapshot) ProtoMessage() {}
  974. func (*RequestOfferSnapshot) Descriptor() ([]byte, []int) {
  975. return fileDescriptor_252557cfdd89a31a, []int{12}
  976. }
  977. func (m *RequestOfferSnapshot) XXX_Unmarshal(b []byte) error {
  978. return m.Unmarshal(b)
  979. }
  980. func (m *RequestOfferSnapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  981. if deterministic {
  982. return xxx_messageInfo_RequestOfferSnapshot.Marshal(b, m, deterministic)
  983. } else {
  984. b = b[:cap(b)]
  985. n, err := m.MarshalToSizedBuffer(b)
  986. if err != nil {
  987. return nil, err
  988. }
  989. return b[:n], nil
  990. }
  991. }
  992. func (m *RequestOfferSnapshot) XXX_Merge(src proto.Message) {
  993. xxx_messageInfo_RequestOfferSnapshot.Merge(m, src)
  994. }
  995. func (m *RequestOfferSnapshot) XXX_Size() int {
  996. return m.Size()
  997. }
  998. func (m *RequestOfferSnapshot) XXX_DiscardUnknown() {
  999. xxx_messageInfo_RequestOfferSnapshot.DiscardUnknown(m)
  1000. }
  1001. var xxx_messageInfo_RequestOfferSnapshot proto.InternalMessageInfo
  1002. func (m *RequestOfferSnapshot) GetSnapshot() *Snapshot {
  1003. if m != nil {
  1004. return m.Snapshot
  1005. }
  1006. return nil
  1007. }
  1008. func (m *RequestOfferSnapshot) GetAppHash() []byte {
  1009. if m != nil {
  1010. return m.AppHash
  1011. }
  1012. return nil
  1013. }
  1014. // loads a snapshot chunk
  1015. type RequestLoadSnapshotChunk struct {
  1016. Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
  1017. Format uint32 `protobuf:"varint,2,opt,name=format,proto3" json:"format,omitempty"`
  1018. Chunk uint32 `protobuf:"varint,3,opt,name=chunk,proto3" json:"chunk,omitempty"`
  1019. }
  1020. func (m *RequestLoadSnapshotChunk) Reset() { *m = RequestLoadSnapshotChunk{} }
  1021. func (m *RequestLoadSnapshotChunk) String() string { return proto.CompactTextString(m) }
  1022. func (*RequestLoadSnapshotChunk) ProtoMessage() {}
  1023. func (*RequestLoadSnapshotChunk) Descriptor() ([]byte, []int) {
  1024. return fileDescriptor_252557cfdd89a31a, []int{13}
  1025. }
  1026. func (m *RequestLoadSnapshotChunk) XXX_Unmarshal(b []byte) error {
  1027. return m.Unmarshal(b)
  1028. }
  1029. func (m *RequestLoadSnapshotChunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1030. if deterministic {
  1031. return xxx_messageInfo_RequestLoadSnapshotChunk.Marshal(b, m, deterministic)
  1032. } else {
  1033. b = b[:cap(b)]
  1034. n, err := m.MarshalToSizedBuffer(b)
  1035. if err != nil {
  1036. return nil, err
  1037. }
  1038. return b[:n], nil
  1039. }
  1040. }
  1041. func (m *RequestLoadSnapshotChunk) XXX_Merge(src proto.Message) {
  1042. xxx_messageInfo_RequestLoadSnapshotChunk.Merge(m, src)
  1043. }
  1044. func (m *RequestLoadSnapshotChunk) XXX_Size() int {
  1045. return m.Size()
  1046. }
  1047. func (m *RequestLoadSnapshotChunk) XXX_DiscardUnknown() {
  1048. xxx_messageInfo_RequestLoadSnapshotChunk.DiscardUnknown(m)
  1049. }
  1050. var xxx_messageInfo_RequestLoadSnapshotChunk proto.InternalMessageInfo
  1051. func (m *RequestLoadSnapshotChunk) GetHeight() uint64 {
  1052. if m != nil {
  1053. return m.Height
  1054. }
  1055. return 0
  1056. }
  1057. func (m *RequestLoadSnapshotChunk) GetFormat() uint32 {
  1058. if m != nil {
  1059. return m.Format
  1060. }
  1061. return 0
  1062. }
  1063. func (m *RequestLoadSnapshotChunk) GetChunk() uint32 {
  1064. if m != nil {
  1065. return m.Chunk
  1066. }
  1067. return 0
  1068. }
  1069. // Applies a snapshot chunk
  1070. type RequestApplySnapshotChunk struct {
  1071. Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
  1072. Chunk []byte `protobuf:"bytes,2,opt,name=chunk,proto3" json:"chunk,omitempty"`
  1073. Sender string `protobuf:"bytes,3,opt,name=sender,proto3" json:"sender,omitempty"`
  1074. }
  1075. func (m *RequestApplySnapshotChunk) Reset() { *m = RequestApplySnapshotChunk{} }
  1076. func (m *RequestApplySnapshotChunk) String() string { return proto.CompactTextString(m) }
  1077. func (*RequestApplySnapshotChunk) ProtoMessage() {}
  1078. func (*RequestApplySnapshotChunk) Descriptor() ([]byte, []int) {
  1079. return fileDescriptor_252557cfdd89a31a, []int{14}
  1080. }
  1081. func (m *RequestApplySnapshotChunk) XXX_Unmarshal(b []byte) error {
  1082. return m.Unmarshal(b)
  1083. }
  1084. func (m *RequestApplySnapshotChunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1085. if deterministic {
  1086. return xxx_messageInfo_RequestApplySnapshotChunk.Marshal(b, m, deterministic)
  1087. } else {
  1088. b = b[:cap(b)]
  1089. n, err := m.MarshalToSizedBuffer(b)
  1090. if err != nil {
  1091. return nil, err
  1092. }
  1093. return b[:n], nil
  1094. }
  1095. }
  1096. func (m *RequestApplySnapshotChunk) XXX_Merge(src proto.Message) {
  1097. xxx_messageInfo_RequestApplySnapshotChunk.Merge(m, src)
  1098. }
  1099. func (m *RequestApplySnapshotChunk) XXX_Size() int {
  1100. return m.Size()
  1101. }
  1102. func (m *RequestApplySnapshotChunk) XXX_DiscardUnknown() {
  1103. xxx_messageInfo_RequestApplySnapshotChunk.DiscardUnknown(m)
  1104. }
  1105. var xxx_messageInfo_RequestApplySnapshotChunk proto.InternalMessageInfo
  1106. func (m *RequestApplySnapshotChunk) GetIndex() uint32 {
  1107. if m != nil {
  1108. return m.Index
  1109. }
  1110. return 0
  1111. }
  1112. func (m *RequestApplySnapshotChunk) GetChunk() []byte {
  1113. if m != nil {
  1114. return m.Chunk
  1115. }
  1116. return nil
  1117. }
  1118. func (m *RequestApplySnapshotChunk) GetSender() string {
  1119. if m != nil {
  1120. return m.Sender
  1121. }
  1122. return ""
  1123. }
  1124. // Extends a vote with application-side injection
  1125. type RequestExtendVote struct {
  1126. Vote *types1.Vote `protobuf:"bytes,1,opt,name=vote,proto3" json:"vote,omitempty"`
  1127. }
  1128. func (m *RequestExtendVote) Reset() { *m = RequestExtendVote{} }
  1129. func (m *RequestExtendVote) String() string { return proto.CompactTextString(m) }
  1130. func (*RequestExtendVote) ProtoMessage() {}
  1131. func (*RequestExtendVote) Descriptor() ([]byte, []int) {
  1132. return fileDescriptor_252557cfdd89a31a, []int{15}
  1133. }
  1134. func (m *RequestExtendVote) XXX_Unmarshal(b []byte) error {
  1135. return m.Unmarshal(b)
  1136. }
  1137. func (m *RequestExtendVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1138. if deterministic {
  1139. return xxx_messageInfo_RequestExtendVote.Marshal(b, m, deterministic)
  1140. } else {
  1141. b = b[:cap(b)]
  1142. n, err := m.MarshalToSizedBuffer(b)
  1143. if err != nil {
  1144. return nil, err
  1145. }
  1146. return b[:n], nil
  1147. }
  1148. }
  1149. func (m *RequestExtendVote) XXX_Merge(src proto.Message) {
  1150. xxx_messageInfo_RequestExtendVote.Merge(m, src)
  1151. }
  1152. func (m *RequestExtendVote) XXX_Size() int {
  1153. return m.Size()
  1154. }
  1155. func (m *RequestExtendVote) XXX_DiscardUnknown() {
  1156. xxx_messageInfo_RequestExtendVote.DiscardUnknown(m)
  1157. }
  1158. var xxx_messageInfo_RequestExtendVote proto.InternalMessageInfo
  1159. func (m *RequestExtendVote) GetVote() *types1.Vote {
  1160. if m != nil {
  1161. return m.Vote
  1162. }
  1163. return nil
  1164. }
  1165. // Verify the vote extension
  1166. type RequestVerifyVoteExtension struct {
  1167. Vote *types1.Vote `protobuf:"bytes,1,opt,name=vote,proto3" json:"vote,omitempty"`
  1168. }
  1169. func (m *RequestVerifyVoteExtension) Reset() { *m = RequestVerifyVoteExtension{} }
  1170. func (m *RequestVerifyVoteExtension) String() string { return proto.CompactTextString(m) }
  1171. func (*RequestVerifyVoteExtension) ProtoMessage() {}
  1172. func (*RequestVerifyVoteExtension) Descriptor() ([]byte, []int) {
  1173. return fileDescriptor_252557cfdd89a31a, []int{16}
  1174. }
  1175. func (m *RequestVerifyVoteExtension) XXX_Unmarshal(b []byte) error {
  1176. return m.Unmarshal(b)
  1177. }
  1178. func (m *RequestVerifyVoteExtension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1179. if deterministic {
  1180. return xxx_messageInfo_RequestVerifyVoteExtension.Marshal(b, m, deterministic)
  1181. } else {
  1182. b = b[:cap(b)]
  1183. n, err := m.MarshalToSizedBuffer(b)
  1184. if err != nil {
  1185. return nil, err
  1186. }
  1187. return b[:n], nil
  1188. }
  1189. }
  1190. func (m *RequestVerifyVoteExtension) XXX_Merge(src proto.Message) {
  1191. xxx_messageInfo_RequestVerifyVoteExtension.Merge(m, src)
  1192. }
  1193. func (m *RequestVerifyVoteExtension) XXX_Size() int {
  1194. return m.Size()
  1195. }
  1196. func (m *RequestVerifyVoteExtension) XXX_DiscardUnknown() {
  1197. xxx_messageInfo_RequestVerifyVoteExtension.DiscardUnknown(m)
  1198. }
  1199. var xxx_messageInfo_RequestVerifyVoteExtension proto.InternalMessageInfo
  1200. func (m *RequestVerifyVoteExtension) GetVote() *types1.Vote {
  1201. if m != nil {
  1202. return m.Vote
  1203. }
  1204. return nil
  1205. }
  1206. type RequestPrepareProposal struct {
  1207. // block_data is an array of transactions that will be included in a block,
  1208. // sent to the app for possible modifications.
  1209. // applications can not exceed the size of the data passed to it.
  1210. BlockData [][]byte `protobuf:"bytes,1,rep,name=block_data,json=blockData,proto3" json:"block_data,omitempty"`
  1211. // If an application decides to populate block_data with extra information, they can not exceed this value.
  1212. BlockDataSize int64 `protobuf:"varint,2,opt,name=block_data_size,json=blockDataSize,proto3" json:"block_data_size,omitempty"`
  1213. // votes includes all votes from the previous block. This contains vote extension data that can be used in proposal
  1214. // preparation. The votes here will then form the last commit that gets sent in the proposed block.
  1215. Votes []*types1.Vote `protobuf:"bytes,3,rep,name=votes,proto3" json:"votes,omitempty"`
  1216. }
  1217. func (m *RequestPrepareProposal) Reset() { *m = RequestPrepareProposal{} }
  1218. func (m *RequestPrepareProposal) String() string { return proto.CompactTextString(m) }
  1219. func (*RequestPrepareProposal) ProtoMessage() {}
  1220. func (*RequestPrepareProposal) Descriptor() ([]byte, []int) {
  1221. return fileDescriptor_252557cfdd89a31a, []int{17}
  1222. }
  1223. func (m *RequestPrepareProposal) XXX_Unmarshal(b []byte) error {
  1224. return m.Unmarshal(b)
  1225. }
  1226. func (m *RequestPrepareProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1227. if deterministic {
  1228. return xxx_messageInfo_RequestPrepareProposal.Marshal(b, m, deterministic)
  1229. } else {
  1230. b = b[:cap(b)]
  1231. n, err := m.MarshalToSizedBuffer(b)
  1232. if err != nil {
  1233. return nil, err
  1234. }
  1235. return b[:n], nil
  1236. }
  1237. }
  1238. func (m *RequestPrepareProposal) XXX_Merge(src proto.Message) {
  1239. xxx_messageInfo_RequestPrepareProposal.Merge(m, src)
  1240. }
  1241. func (m *RequestPrepareProposal) XXX_Size() int {
  1242. return m.Size()
  1243. }
  1244. func (m *RequestPrepareProposal) XXX_DiscardUnknown() {
  1245. xxx_messageInfo_RequestPrepareProposal.DiscardUnknown(m)
  1246. }
  1247. var xxx_messageInfo_RequestPrepareProposal proto.InternalMessageInfo
  1248. func (m *RequestPrepareProposal) GetBlockData() [][]byte {
  1249. if m != nil {
  1250. return m.BlockData
  1251. }
  1252. return nil
  1253. }
  1254. func (m *RequestPrepareProposal) GetBlockDataSize() int64 {
  1255. if m != nil {
  1256. return m.BlockDataSize
  1257. }
  1258. return 0
  1259. }
  1260. func (m *RequestPrepareProposal) GetVotes() []*types1.Vote {
  1261. if m != nil {
  1262. return m.Votes
  1263. }
  1264. return nil
  1265. }
  1266. type RequestProcessProposal struct {
  1267. Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
  1268. Header types1.Header `protobuf:"bytes,2,opt,name=header,proto3" json:"header"`
  1269. Txs [][]byte `protobuf:"bytes,3,rep,name=txs,proto3" json:"txs,omitempty"`
  1270. ProposedLastCommit CommitInfo `protobuf:"bytes,4,opt,name=proposed_last_commit,json=proposedLastCommit,proto3" json:"proposed_last_commit"`
  1271. ByzantineValidators []Evidence `protobuf:"bytes,5,rep,name=byzantine_validators,json=byzantineValidators,proto3" json:"byzantine_validators"`
  1272. }
  1273. func (m *RequestProcessProposal) Reset() { *m = RequestProcessProposal{} }
  1274. func (m *RequestProcessProposal) String() string { return proto.CompactTextString(m) }
  1275. func (*RequestProcessProposal) ProtoMessage() {}
  1276. func (*RequestProcessProposal) Descriptor() ([]byte, []int) {
  1277. return fileDescriptor_252557cfdd89a31a, []int{18}
  1278. }
  1279. func (m *RequestProcessProposal) XXX_Unmarshal(b []byte) error {
  1280. return m.Unmarshal(b)
  1281. }
  1282. func (m *RequestProcessProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1283. if deterministic {
  1284. return xxx_messageInfo_RequestProcessProposal.Marshal(b, m, deterministic)
  1285. } else {
  1286. b = b[:cap(b)]
  1287. n, err := m.MarshalToSizedBuffer(b)
  1288. if err != nil {
  1289. return nil, err
  1290. }
  1291. return b[:n], nil
  1292. }
  1293. }
  1294. func (m *RequestProcessProposal) XXX_Merge(src proto.Message) {
  1295. xxx_messageInfo_RequestProcessProposal.Merge(m, src)
  1296. }
  1297. func (m *RequestProcessProposal) XXX_Size() int {
  1298. return m.Size()
  1299. }
  1300. func (m *RequestProcessProposal) XXX_DiscardUnknown() {
  1301. xxx_messageInfo_RequestProcessProposal.DiscardUnknown(m)
  1302. }
  1303. var xxx_messageInfo_RequestProcessProposal proto.InternalMessageInfo
  1304. func (m *RequestProcessProposal) GetHash() []byte {
  1305. if m != nil {
  1306. return m.Hash
  1307. }
  1308. return nil
  1309. }
  1310. func (m *RequestProcessProposal) GetHeader() types1.Header {
  1311. if m != nil {
  1312. return m.Header
  1313. }
  1314. return types1.Header{}
  1315. }
  1316. func (m *RequestProcessProposal) GetTxs() [][]byte {
  1317. if m != nil {
  1318. return m.Txs
  1319. }
  1320. return nil
  1321. }
  1322. func (m *RequestProcessProposal) GetProposedLastCommit() CommitInfo {
  1323. if m != nil {
  1324. return m.ProposedLastCommit
  1325. }
  1326. return CommitInfo{}
  1327. }
  1328. func (m *RequestProcessProposal) GetByzantineValidators() []Evidence {
  1329. if m != nil {
  1330. return m.ByzantineValidators
  1331. }
  1332. return nil
  1333. }
  1334. type RequestFinalizeBlock struct {
  1335. Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
  1336. Header types1.Header `protobuf:"bytes,2,opt,name=header,proto3" json:"header"`
  1337. Txs [][]byte `protobuf:"bytes,3,rep,name=txs,proto3" json:"txs,omitempty"`
  1338. DecidedLastCommit CommitInfo `protobuf:"bytes,4,opt,name=decided_last_commit,json=decidedLastCommit,proto3" json:"decided_last_commit"`
  1339. ByzantineValidators []Evidence `protobuf:"bytes,5,rep,name=byzantine_validators,json=byzantineValidators,proto3" json:"byzantine_validators"`
  1340. }
  1341. func (m *RequestFinalizeBlock) Reset() { *m = RequestFinalizeBlock{} }
  1342. func (m *RequestFinalizeBlock) String() string { return proto.CompactTextString(m) }
  1343. func (*RequestFinalizeBlock) ProtoMessage() {}
  1344. func (*RequestFinalizeBlock) Descriptor() ([]byte, []int) {
  1345. return fileDescriptor_252557cfdd89a31a, []int{19}
  1346. }
  1347. func (m *RequestFinalizeBlock) XXX_Unmarshal(b []byte) error {
  1348. return m.Unmarshal(b)
  1349. }
  1350. func (m *RequestFinalizeBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1351. if deterministic {
  1352. return xxx_messageInfo_RequestFinalizeBlock.Marshal(b, m, deterministic)
  1353. } else {
  1354. b = b[:cap(b)]
  1355. n, err := m.MarshalToSizedBuffer(b)
  1356. if err != nil {
  1357. return nil, err
  1358. }
  1359. return b[:n], nil
  1360. }
  1361. }
  1362. func (m *RequestFinalizeBlock) XXX_Merge(src proto.Message) {
  1363. xxx_messageInfo_RequestFinalizeBlock.Merge(m, src)
  1364. }
  1365. func (m *RequestFinalizeBlock) XXX_Size() int {
  1366. return m.Size()
  1367. }
  1368. func (m *RequestFinalizeBlock) XXX_DiscardUnknown() {
  1369. xxx_messageInfo_RequestFinalizeBlock.DiscardUnknown(m)
  1370. }
  1371. var xxx_messageInfo_RequestFinalizeBlock proto.InternalMessageInfo
  1372. func (m *RequestFinalizeBlock) GetHash() []byte {
  1373. if m != nil {
  1374. return m.Hash
  1375. }
  1376. return nil
  1377. }
  1378. func (m *RequestFinalizeBlock) GetHeader() types1.Header {
  1379. if m != nil {
  1380. return m.Header
  1381. }
  1382. return types1.Header{}
  1383. }
  1384. func (m *RequestFinalizeBlock) GetTxs() [][]byte {
  1385. if m != nil {
  1386. return m.Txs
  1387. }
  1388. return nil
  1389. }
  1390. func (m *RequestFinalizeBlock) GetDecidedLastCommit() CommitInfo {
  1391. if m != nil {
  1392. return m.DecidedLastCommit
  1393. }
  1394. return CommitInfo{}
  1395. }
  1396. func (m *RequestFinalizeBlock) GetByzantineValidators() []Evidence {
  1397. if m != nil {
  1398. return m.ByzantineValidators
  1399. }
  1400. return nil
  1401. }
  1402. type Response struct {
  1403. // Types that are valid to be assigned to Value:
  1404. // *Response_Exception
  1405. // *Response_Echo
  1406. // *Response_Flush
  1407. // *Response_Info
  1408. // *Response_InitChain
  1409. // *Response_Query
  1410. // *Response_BeginBlock
  1411. // *Response_CheckTx
  1412. // *Response_DeliverTx
  1413. // *Response_EndBlock
  1414. // *Response_Commit
  1415. // *Response_ListSnapshots
  1416. // *Response_OfferSnapshot
  1417. // *Response_LoadSnapshotChunk
  1418. // *Response_ApplySnapshotChunk
  1419. // *Response_PrepareProposal
  1420. // *Response_ProcessProposal
  1421. // *Response_ExtendVote
  1422. // *Response_VerifyVoteExtension
  1423. // *Response_FinalizeBlock
  1424. Value isResponse_Value `protobuf_oneof:"value"`
  1425. }
  1426. func (m *Response) Reset() { *m = Response{} }
  1427. func (m *Response) String() string { return proto.CompactTextString(m) }
  1428. func (*Response) ProtoMessage() {}
  1429. func (*Response) Descriptor() ([]byte, []int) {
  1430. return fileDescriptor_252557cfdd89a31a, []int{20}
  1431. }
  1432. func (m *Response) XXX_Unmarshal(b []byte) error {
  1433. return m.Unmarshal(b)
  1434. }
  1435. func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1436. if deterministic {
  1437. return xxx_messageInfo_Response.Marshal(b, m, deterministic)
  1438. } else {
  1439. b = b[:cap(b)]
  1440. n, err := m.MarshalToSizedBuffer(b)
  1441. if err != nil {
  1442. return nil, err
  1443. }
  1444. return b[:n], nil
  1445. }
  1446. }
  1447. func (m *Response) XXX_Merge(src proto.Message) {
  1448. xxx_messageInfo_Response.Merge(m, src)
  1449. }
  1450. func (m *Response) XXX_Size() int {
  1451. return m.Size()
  1452. }
  1453. func (m *Response) XXX_DiscardUnknown() {
  1454. xxx_messageInfo_Response.DiscardUnknown(m)
  1455. }
  1456. var xxx_messageInfo_Response proto.InternalMessageInfo
  1457. type isResponse_Value interface {
  1458. isResponse_Value()
  1459. MarshalTo([]byte) (int, error)
  1460. Size() int
  1461. }
  1462. type Response_Exception struct {
  1463. Exception *ResponseException `protobuf:"bytes,1,opt,name=exception,proto3,oneof" json:"exception,omitempty"`
  1464. }
  1465. type Response_Echo struct {
  1466. Echo *ResponseEcho `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"`
  1467. }
  1468. type Response_Flush struct {
  1469. Flush *ResponseFlush `protobuf:"bytes,3,opt,name=flush,proto3,oneof" json:"flush,omitempty"`
  1470. }
  1471. type Response_Info struct {
  1472. Info *ResponseInfo `protobuf:"bytes,4,opt,name=info,proto3,oneof" json:"info,omitempty"`
  1473. }
  1474. type Response_InitChain struct {
  1475. InitChain *ResponseInitChain `protobuf:"bytes,5,opt,name=init_chain,json=initChain,proto3,oneof" json:"init_chain,omitempty"`
  1476. }
  1477. type Response_Query struct {
  1478. Query *ResponseQuery `protobuf:"bytes,6,opt,name=query,proto3,oneof" json:"query,omitempty"`
  1479. }
  1480. type Response_BeginBlock struct {
  1481. BeginBlock *ResponseBeginBlock `protobuf:"bytes,7,opt,name=begin_block,json=beginBlock,proto3,oneof" json:"begin_block,omitempty"`
  1482. }
  1483. type Response_CheckTx struct {
  1484. CheckTx *ResponseCheckTx `protobuf:"bytes,8,opt,name=check_tx,json=checkTx,proto3,oneof" json:"check_tx,omitempty"`
  1485. }
  1486. type Response_DeliverTx struct {
  1487. DeliverTx *ResponseDeliverTx `protobuf:"bytes,9,opt,name=deliver_tx,json=deliverTx,proto3,oneof" json:"deliver_tx,omitempty"`
  1488. }
  1489. type Response_EndBlock struct {
  1490. EndBlock *ResponseEndBlock `protobuf:"bytes,10,opt,name=end_block,json=endBlock,proto3,oneof" json:"end_block,omitempty"`
  1491. }
  1492. type Response_Commit struct {
  1493. Commit *ResponseCommit `protobuf:"bytes,11,opt,name=commit,proto3,oneof" json:"commit,omitempty"`
  1494. }
  1495. type Response_ListSnapshots struct {
  1496. ListSnapshots *ResponseListSnapshots `protobuf:"bytes,12,opt,name=list_snapshots,json=listSnapshots,proto3,oneof" json:"list_snapshots,omitempty"`
  1497. }
  1498. type Response_OfferSnapshot struct {
  1499. OfferSnapshot *ResponseOfferSnapshot `protobuf:"bytes,13,opt,name=offer_snapshot,json=offerSnapshot,proto3,oneof" json:"offer_snapshot,omitempty"`
  1500. }
  1501. type Response_LoadSnapshotChunk struct {
  1502. LoadSnapshotChunk *ResponseLoadSnapshotChunk `protobuf:"bytes,14,opt,name=load_snapshot_chunk,json=loadSnapshotChunk,proto3,oneof" json:"load_snapshot_chunk,omitempty"`
  1503. }
  1504. type Response_ApplySnapshotChunk struct {
  1505. ApplySnapshotChunk *ResponseApplySnapshotChunk `protobuf:"bytes,15,opt,name=apply_snapshot_chunk,json=applySnapshotChunk,proto3,oneof" json:"apply_snapshot_chunk,omitempty"`
  1506. }
  1507. type Response_PrepareProposal struct {
  1508. PrepareProposal *ResponsePrepareProposal `protobuf:"bytes,16,opt,name=prepare_proposal,json=prepareProposal,proto3,oneof" json:"prepare_proposal,omitempty"`
  1509. }
  1510. type Response_ProcessProposal struct {
  1511. ProcessProposal *ResponseProcessProposal `protobuf:"bytes,17,opt,name=process_proposal,json=processProposal,proto3,oneof" json:"process_proposal,omitempty"`
  1512. }
  1513. type Response_ExtendVote struct {
  1514. ExtendVote *ResponseExtendVote `protobuf:"bytes,18,opt,name=extend_vote,json=extendVote,proto3,oneof" json:"extend_vote,omitempty"`
  1515. }
  1516. type Response_VerifyVoteExtension struct {
  1517. VerifyVoteExtension *ResponseVerifyVoteExtension `protobuf:"bytes,19,opt,name=verify_vote_extension,json=verifyVoteExtension,proto3,oneof" json:"verify_vote_extension,omitempty"`
  1518. }
  1519. type Response_FinalizeBlock struct {
  1520. FinalizeBlock *ResponseFinalizeBlock `protobuf:"bytes,20,opt,name=finalize_block,json=finalizeBlock,proto3,oneof" json:"finalize_block,omitempty"`
  1521. }
  1522. func (*Response_Exception) isResponse_Value() {}
  1523. func (*Response_Echo) isResponse_Value() {}
  1524. func (*Response_Flush) isResponse_Value() {}
  1525. func (*Response_Info) isResponse_Value() {}
  1526. func (*Response_InitChain) isResponse_Value() {}
  1527. func (*Response_Query) isResponse_Value() {}
  1528. func (*Response_BeginBlock) isResponse_Value() {}
  1529. func (*Response_CheckTx) isResponse_Value() {}
  1530. func (*Response_DeliverTx) isResponse_Value() {}
  1531. func (*Response_EndBlock) isResponse_Value() {}
  1532. func (*Response_Commit) isResponse_Value() {}
  1533. func (*Response_ListSnapshots) isResponse_Value() {}
  1534. func (*Response_OfferSnapshot) isResponse_Value() {}
  1535. func (*Response_LoadSnapshotChunk) isResponse_Value() {}
  1536. func (*Response_ApplySnapshotChunk) isResponse_Value() {}
  1537. func (*Response_PrepareProposal) isResponse_Value() {}
  1538. func (*Response_ProcessProposal) isResponse_Value() {}
  1539. func (*Response_ExtendVote) isResponse_Value() {}
  1540. func (*Response_VerifyVoteExtension) isResponse_Value() {}
  1541. func (*Response_FinalizeBlock) isResponse_Value() {}
  1542. func (m *Response) GetValue() isResponse_Value {
  1543. if m != nil {
  1544. return m.Value
  1545. }
  1546. return nil
  1547. }
  1548. func (m *Response) GetException() *ResponseException {
  1549. if x, ok := m.GetValue().(*Response_Exception); ok {
  1550. return x.Exception
  1551. }
  1552. return nil
  1553. }
  1554. func (m *Response) GetEcho() *ResponseEcho {
  1555. if x, ok := m.GetValue().(*Response_Echo); ok {
  1556. return x.Echo
  1557. }
  1558. return nil
  1559. }
  1560. func (m *Response) GetFlush() *ResponseFlush {
  1561. if x, ok := m.GetValue().(*Response_Flush); ok {
  1562. return x.Flush
  1563. }
  1564. return nil
  1565. }
  1566. func (m *Response) GetInfo() *ResponseInfo {
  1567. if x, ok := m.GetValue().(*Response_Info); ok {
  1568. return x.Info
  1569. }
  1570. return nil
  1571. }
  1572. func (m *Response) GetInitChain() *ResponseInitChain {
  1573. if x, ok := m.GetValue().(*Response_InitChain); ok {
  1574. return x.InitChain
  1575. }
  1576. return nil
  1577. }
  1578. func (m *Response) GetQuery() *ResponseQuery {
  1579. if x, ok := m.GetValue().(*Response_Query); ok {
  1580. return x.Query
  1581. }
  1582. return nil
  1583. }
  1584. // Deprecated: Do not use.
  1585. func (m *Response) GetBeginBlock() *ResponseBeginBlock {
  1586. if x, ok := m.GetValue().(*Response_BeginBlock); ok {
  1587. return x.BeginBlock
  1588. }
  1589. return nil
  1590. }
  1591. func (m *Response) GetCheckTx() *ResponseCheckTx {
  1592. if x, ok := m.GetValue().(*Response_CheckTx); ok {
  1593. return x.CheckTx
  1594. }
  1595. return nil
  1596. }
  1597. // Deprecated: Do not use.
  1598. func (m *Response) GetDeliverTx() *ResponseDeliverTx {
  1599. if x, ok := m.GetValue().(*Response_DeliverTx); ok {
  1600. return x.DeliverTx
  1601. }
  1602. return nil
  1603. }
  1604. // Deprecated: Do not use.
  1605. func (m *Response) GetEndBlock() *ResponseEndBlock {
  1606. if x, ok := m.GetValue().(*Response_EndBlock); ok {
  1607. return x.EndBlock
  1608. }
  1609. return nil
  1610. }
  1611. func (m *Response) GetCommit() *ResponseCommit {
  1612. if x, ok := m.GetValue().(*Response_Commit); ok {
  1613. return x.Commit
  1614. }
  1615. return nil
  1616. }
  1617. func (m *Response) GetListSnapshots() *ResponseListSnapshots {
  1618. if x, ok := m.GetValue().(*Response_ListSnapshots); ok {
  1619. return x.ListSnapshots
  1620. }
  1621. return nil
  1622. }
  1623. func (m *Response) GetOfferSnapshot() *ResponseOfferSnapshot {
  1624. if x, ok := m.GetValue().(*Response_OfferSnapshot); ok {
  1625. return x.OfferSnapshot
  1626. }
  1627. return nil
  1628. }
  1629. func (m *Response) GetLoadSnapshotChunk() *ResponseLoadSnapshotChunk {
  1630. if x, ok := m.GetValue().(*Response_LoadSnapshotChunk); ok {
  1631. return x.LoadSnapshotChunk
  1632. }
  1633. return nil
  1634. }
  1635. func (m *Response) GetApplySnapshotChunk() *ResponseApplySnapshotChunk {
  1636. if x, ok := m.GetValue().(*Response_ApplySnapshotChunk); ok {
  1637. return x.ApplySnapshotChunk
  1638. }
  1639. return nil
  1640. }
  1641. func (m *Response) GetPrepareProposal() *ResponsePrepareProposal {
  1642. if x, ok := m.GetValue().(*Response_PrepareProposal); ok {
  1643. return x.PrepareProposal
  1644. }
  1645. return nil
  1646. }
  1647. func (m *Response) GetProcessProposal() *ResponseProcessProposal {
  1648. if x, ok := m.GetValue().(*Response_ProcessProposal); ok {
  1649. return x.ProcessProposal
  1650. }
  1651. return nil
  1652. }
  1653. func (m *Response) GetExtendVote() *ResponseExtendVote {
  1654. if x, ok := m.GetValue().(*Response_ExtendVote); ok {
  1655. return x.ExtendVote
  1656. }
  1657. return nil
  1658. }
  1659. func (m *Response) GetVerifyVoteExtension() *ResponseVerifyVoteExtension {
  1660. if x, ok := m.GetValue().(*Response_VerifyVoteExtension); ok {
  1661. return x.VerifyVoteExtension
  1662. }
  1663. return nil
  1664. }
  1665. func (m *Response) GetFinalizeBlock() *ResponseFinalizeBlock {
  1666. if x, ok := m.GetValue().(*Response_FinalizeBlock); ok {
  1667. return x.FinalizeBlock
  1668. }
  1669. return nil
  1670. }
  1671. // XXX_OneofWrappers is for the internal use of the proto package.
  1672. func (*Response) XXX_OneofWrappers() []interface{} {
  1673. return []interface{}{
  1674. (*Response_Exception)(nil),
  1675. (*Response_Echo)(nil),
  1676. (*Response_Flush)(nil),
  1677. (*Response_Info)(nil),
  1678. (*Response_InitChain)(nil),
  1679. (*Response_Query)(nil),
  1680. (*Response_BeginBlock)(nil),
  1681. (*Response_CheckTx)(nil),
  1682. (*Response_DeliverTx)(nil),
  1683. (*Response_EndBlock)(nil),
  1684. (*Response_Commit)(nil),
  1685. (*Response_ListSnapshots)(nil),
  1686. (*Response_OfferSnapshot)(nil),
  1687. (*Response_LoadSnapshotChunk)(nil),
  1688. (*Response_ApplySnapshotChunk)(nil),
  1689. (*Response_PrepareProposal)(nil),
  1690. (*Response_ProcessProposal)(nil),
  1691. (*Response_ExtendVote)(nil),
  1692. (*Response_VerifyVoteExtension)(nil),
  1693. (*Response_FinalizeBlock)(nil),
  1694. }
  1695. }
  1696. // nondeterministic
  1697. type ResponseException struct {
  1698. Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
  1699. }
  1700. func (m *ResponseException) Reset() { *m = ResponseException{} }
  1701. func (m *ResponseException) String() string { return proto.CompactTextString(m) }
  1702. func (*ResponseException) ProtoMessage() {}
  1703. func (*ResponseException) Descriptor() ([]byte, []int) {
  1704. return fileDescriptor_252557cfdd89a31a, []int{21}
  1705. }
  1706. func (m *ResponseException) XXX_Unmarshal(b []byte) error {
  1707. return m.Unmarshal(b)
  1708. }
  1709. func (m *ResponseException) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1710. if deterministic {
  1711. return xxx_messageInfo_ResponseException.Marshal(b, m, deterministic)
  1712. } else {
  1713. b = b[:cap(b)]
  1714. n, err := m.MarshalToSizedBuffer(b)
  1715. if err != nil {
  1716. return nil, err
  1717. }
  1718. return b[:n], nil
  1719. }
  1720. }
  1721. func (m *ResponseException) XXX_Merge(src proto.Message) {
  1722. xxx_messageInfo_ResponseException.Merge(m, src)
  1723. }
  1724. func (m *ResponseException) XXX_Size() int {
  1725. return m.Size()
  1726. }
  1727. func (m *ResponseException) XXX_DiscardUnknown() {
  1728. xxx_messageInfo_ResponseException.DiscardUnknown(m)
  1729. }
  1730. var xxx_messageInfo_ResponseException proto.InternalMessageInfo
  1731. func (m *ResponseException) GetError() string {
  1732. if m != nil {
  1733. return m.Error
  1734. }
  1735. return ""
  1736. }
  1737. type ResponseEcho struct {
  1738. Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
  1739. }
  1740. func (m *ResponseEcho) Reset() { *m = ResponseEcho{} }
  1741. func (m *ResponseEcho) String() string { return proto.CompactTextString(m) }
  1742. func (*ResponseEcho) ProtoMessage() {}
  1743. func (*ResponseEcho) Descriptor() ([]byte, []int) {
  1744. return fileDescriptor_252557cfdd89a31a, []int{22}
  1745. }
  1746. func (m *ResponseEcho) XXX_Unmarshal(b []byte) error {
  1747. return m.Unmarshal(b)
  1748. }
  1749. func (m *ResponseEcho) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1750. if deterministic {
  1751. return xxx_messageInfo_ResponseEcho.Marshal(b, m, deterministic)
  1752. } else {
  1753. b = b[:cap(b)]
  1754. n, err := m.MarshalToSizedBuffer(b)
  1755. if err != nil {
  1756. return nil, err
  1757. }
  1758. return b[:n], nil
  1759. }
  1760. }
  1761. func (m *ResponseEcho) XXX_Merge(src proto.Message) {
  1762. xxx_messageInfo_ResponseEcho.Merge(m, src)
  1763. }
  1764. func (m *ResponseEcho) XXX_Size() int {
  1765. return m.Size()
  1766. }
  1767. func (m *ResponseEcho) XXX_DiscardUnknown() {
  1768. xxx_messageInfo_ResponseEcho.DiscardUnknown(m)
  1769. }
  1770. var xxx_messageInfo_ResponseEcho proto.InternalMessageInfo
  1771. func (m *ResponseEcho) GetMessage() string {
  1772. if m != nil {
  1773. return m.Message
  1774. }
  1775. return ""
  1776. }
  1777. type ResponseFlush struct {
  1778. }
  1779. func (m *ResponseFlush) Reset() { *m = ResponseFlush{} }
  1780. func (m *ResponseFlush) String() string { return proto.CompactTextString(m) }
  1781. func (*ResponseFlush) ProtoMessage() {}
  1782. func (*ResponseFlush) Descriptor() ([]byte, []int) {
  1783. return fileDescriptor_252557cfdd89a31a, []int{23}
  1784. }
  1785. func (m *ResponseFlush) XXX_Unmarshal(b []byte) error {
  1786. return m.Unmarshal(b)
  1787. }
  1788. func (m *ResponseFlush) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1789. if deterministic {
  1790. return xxx_messageInfo_ResponseFlush.Marshal(b, m, deterministic)
  1791. } else {
  1792. b = b[:cap(b)]
  1793. n, err := m.MarshalToSizedBuffer(b)
  1794. if err != nil {
  1795. return nil, err
  1796. }
  1797. return b[:n], nil
  1798. }
  1799. }
  1800. func (m *ResponseFlush) XXX_Merge(src proto.Message) {
  1801. xxx_messageInfo_ResponseFlush.Merge(m, src)
  1802. }
  1803. func (m *ResponseFlush) XXX_Size() int {
  1804. return m.Size()
  1805. }
  1806. func (m *ResponseFlush) XXX_DiscardUnknown() {
  1807. xxx_messageInfo_ResponseFlush.DiscardUnknown(m)
  1808. }
  1809. var xxx_messageInfo_ResponseFlush proto.InternalMessageInfo
  1810. type ResponseInfo struct {
  1811. Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
  1812. // this is the software version of the application. TODO: remove?
  1813. Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
  1814. AppVersion uint64 `protobuf:"varint,3,opt,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"`
  1815. LastBlockHeight int64 `protobuf:"varint,4,opt,name=last_block_height,json=lastBlockHeight,proto3" json:"last_block_height,omitempty"`
  1816. LastBlockAppHash []byte `protobuf:"bytes,5,opt,name=last_block_app_hash,json=lastBlockAppHash,proto3" json:"last_block_app_hash,omitempty"`
  1817. }
  1818. func (m *ResponseInfo) Reset() { *m = ResponseInfo{} }
  1819. func (m *ResponseInfo) String() string { return proto.CompactTextString(m) }
  1820. func (*ResponseInfo) ProtoMessage() {}
  1821. func (*ResponseInfo) Descriptor() ([]byte, []int) {
  1822. return fileDescriptor_252557cfdd89a31a, []int{24}
  1823. }
  1824. func (m *ResponseInfo) XXX_Unmarshal(b []byte) error {
  1825. return m.Unmarshal(b)
  1826. }
  1827. func (m *ResponseInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1828. if deterministic {
  1829. return xxx_messageInfo_ResponseInfo.Marshal(b, m, deterministic)
  1830. } else {
  1831. b = b[:cap(b)]
  1832. n, err := m.MarshalToSizedBuffer(b)
  1833. if err != nil {
  1834. return nil, err
  1835. }
  1836. return b[:n], nil
  1837. }
  1838. }
  1839. func (m *ResponseInfo) XXX_Merge(src proto.Message) {
  1840. xxx_messageInfo_ResponseInfo.Merge(m, src)
  1841. }
  1842. func (m *ResponseInfo) XXX_Size() int {
  1843. return m.Size()
  1844. }
  1845. func (m *ResponseInfo) XXX_DiscardUnknown() {
  1846. xxx_messageInfo_ResponseInfo.DiscardUnknown(m)
  1847. }
  1848. var xxx_messageInfo_ResponseInfo proto.InternalMessageInfo
  1849. func (m *ResponseInfo) GetData() string {
  1850. if m != nil {
  1851. return m.Data
  1852. }
  1853. return ""
  1854. }
  1855. func (m *ResponseInfo) GetVersion() string {
  1856. if m != nil {
  1857. return m.Version
  1858. }
  1859. return ""
  1860. }
  1861. func (m *ResponseInfo) GetAppVersion() uint64 {
  1862. if m != nil {
  1863. return m.AppVersion
  1864. }
  1865. return 0
  1866. }
  1867. func (m *ResponseInfo) GetLastBlockHeight() int64 {
  1868. if m != nil {
  1869. return m.LastBlockHeight
  1870. }
  1871. return 0
  1872. }
  1873. func (m *ResponseInfo) GetLastBlockAppHash() []byte {
  1874. if m != nil {
  1875. return m.LastBlockAppHash
  1876. }
  1877. return nil
  1878. }
  1879. type ResponseInitChain struct {
  1880. ConsensusParams *types1.ConsensusParams `protobuf:"bytes,1,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"`
  1881. Validators []ValidatorUpdate `protobuf:"bytes,2,rep,name=validators,proto3" json:"validators"`
  1882. AppHash []byte `protobuf:"bytes,3,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"`
  1883. }
  1884. func (m *ResponseInitChain) Reset() { *m = ResponseInitChain{} }
  1885. func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) }
  1886. func (*ResponseInitChain) ProtoMessage() {}
  1887. func (*ResponseInitChain) Descriptor() ([]byte, []int) {
  1888. return fileDescriptor_252557cfdd89a31a, []int{25}
  1889. }
  1890. func (m *ResponseInitChain) XXX_Unmarshal(b []byte) error {
  1891. return m.Unmarshal(b)
  1892. }
  1893. func (m *ResponseInitChain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1894. if deterministic {
  1895. return xxx_messageInfo_ResponseInitChain.Marshal(b, m, deterministic)
  1896. } else {
  1897. b = b[:cap(b)]
  1898. n, err := m.MarshalToSizedBuffer(b)
  1899. if err != nil {
  1900. return nil, err
  1901. }
  1902. return b[:n], nil
  1903. }
  1904. }
  1905. func (m *ResponseInitChain) XXX_Merge(src proto.Message) {
  1906. xxx_messageInfo_ResponseInitChain.Merge(m, src)
  1907. }
  1908. func (m *ResponseInitChain) XXX_Size() int {
  1909. return m.Size()
  1910. }
  1911. func (m *ResponseInitChain) XXX_DiscardUnknown() {
  1912. xxx_messageInfo_ResponseInitChain.DiscardUnknown(m)
  1913. }
  1914. var xxx_messageInfo_ResponseInitChain proto.InternalMessageInfo
  1915. func (m *ResponseInitChain) GetConsensusParams() *types1.ConsensusParams {
  1916. if m != nil {
  1917. return m.ConsensusParams
  1918. }
  1919. return nil
  1920. }
  1921. func (m *ResponseInitChain) GetValidators() []ValidatorUpdate {
  1922. if m != nil {
  1923. return m.Validators
  1924. }
  1925. return nil
  1926. }
  1927. func (m *ResponseInitChain) GetAppHash() []byte {
  1928. if m != nil {
  1929. return m.AppHash
  1930. }
  1931. return nil
  1932. }
  1933. type ResponseQuery struct {
  1934. Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
  1935. // bytes data = 2; // use "value" instead.
  1936. Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
  1937. Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
  1938. Index int64 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"`
  1939. Key []byte `protobuf:"bytes,6,opt,name=key,proto3" json:"key,omitempty"`
  1940. Value []byte `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"`
  1941. ProofOps *crypto.ProofOps `protobuf:"bytes,8,opt,name=proof_ops,json=proofOps,proto3" json:"proof_ops,omitempty"`
  1942. Height int64 `protobuf:"varint,9,opt,name=height,proto3" json:"height,omitempty"`
  1943. Codespace string `protobuf:"bytes,10,opt,name=codespace,proto3" json:"codespace,omitempty"`
  1944. }
  1945. func (m *ResponseQuery) Reset() { *m = ResponseQuery{} }
  1946. func (m *ResponseQuery) String() string { return proto.CompactTextString(m) }
  1947. func (*ResponseQuery) ProtoMessage() {}
  1948. func (*ResponseQuery) Descriptor() ([]byte, []int) {
  1949. return fileDescriptor_252557cfdd89a31a, []int{26}
  1950. }
  1951. func (m *ResponseQuery) XXX_Unmarshal(b []byte) error {
  1952. return m.Unmarshal(b)
  1953. }
  1954. func (m *ResponseQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1955. if deterministic {
  1956. return xxx_messageInfo_ResponseQuery.Marshal(b, m, deterministic)
  1957. } else {
  1958. b = b[:cap(b)]
  1959. n, err := m.MarshalToSizedBuffer(b)
  1960. if err != nil {
  1961. return nil, err
  1962. }
  1963. return b[:n], nil
  1964. }
  1965. }
  1966. func (m *ResponseQuery) XXX_Merge(src proto.Message) {
  1967. xxx_messageInfo_ResponseQuery.Merge(m, src)
  1968. }
  1969. func (m *ResponseQuery) XXX_Size() int {
  1970. return m.Size()
  1971. }
  1972. func (m *ResponseQuery) XXX_DiscardUnknown() {
  1973. xxx_messageInfo_ResponseQuery.DiscardUnknown(m)
  1974. }
  1975. var xxx_messageInfo_ResponseQuery proto.InternalMessageInfo
  1976. func (m *ResponseQuery) GetCode() uint32 {
  1977. if m != nil {
  1978. return m.Code
  1979. }
  1980. return 0
  1981. }
  1982. func (m *ResponseQuery) GetLog() string {
  1983. if m != nil {
  1984. return m.Log
  1985. }
  1986. return ""
  1987. }
  1988. func (m *ResponseQuery) GetInfo() string {
  1989. if m != nil {
  1990. return m.Info
  1991. }
  1992. return ""
  1993. }
  1994. func (m *ResponseQuery) GetIndex() int64 {
  1995. if m != nil {
  1996. return m.Index
  1997. }
  1998. return 0
  1999. }
  2000. func (m *ResponseQuery) GetKey() []byte {
  2001. if m != nil {
  2002. return m.Key
  2003. }
  2004. return nil
  2005. }
  2006. func (m *ResponseQuery) GetValue() []byte {
  2007. if m != nil {
  2008. return m.Value
  2009. }
  2010. return nil
  2011. }
  2012. func (m *ResponseQuery) GetProofOps() *crypto.ProofOps {
  2013. if m != nil {
  2014. return m.ProofOps
  2015. }
  2016. return nil
  2017. }
  2018. func (m *ResponseQuery) GetHeight() int64 {
  2019. if m != nil {
  2020. return m.Height
  2021. }
  2022. return 0
  2023. }
  2024. func (m *ResponseQuery) GetCodespace() string {
  2025. if m != nil {
  2026. return m.Codespace
  2027. }
  2028. return ""
  2029. }
  2030. type ResponseBeginBlock struct {
  2031. Events []Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
  2032. }
  2033. func (m *ResponseBeginBlock) Reset() { *m = ResponseBeginBlock{} }
  2034. func (m *ResponseBeginBlock) String() string { return proto.CompactTextString(m) }
  2035. func (*ResponseBeginBlock) ProtoMessage() {}
  2036. func (*ResponseBeginBlock) Descriptor() ([]byte, []int) {
  2037. return fileDescriptor_252557cfdd89a31a, []int{27}
  2038. }
  2039. func (m *ResponseBeginBlock) XXX_Unmarshal(b []byte) error {
  2040. return m.Unmarshal(b)
  2041. }
  2042. func (m *ResponseBeginBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2043. if deterministic {
  2044. return xxx_messageInfo_ResponseBeginBlock.Marshal(b, m, deterministic)
  2045. } else {
  2046. b = b[:cap(b)]
  2047. n, err := m.MarshalToSizedBuffer(b)
  2048. if err != nil {
  2049. return nil, err
  2050. }
  2051. return b[:n], nil
  2052. }
  2053. }
  2054. func (m *ResponseBeginBlock) XXX_Merge(src proto.Message) {
  2055. xxx_messageInfo_ResponseBeginBlock.Merge(m, src)
  2056. }
  2057. func (m *ResponseBeginBlock) XXX_Size() int {
  2058. return m.Size()
  2059. }
  2060. func (m *ResponseBeginBlock) XXX_DiscardUnknown() {
  2061. xxx_messageInfo_ResponseBeginBlock.DiscardUnknown(m)
  2062. }
  2063. var xxx_messageInfo_ResponseBeginBlock proto.InternalMessageInfo
  2064. func (m *ResponseBeginBlock) GetEvents() []Event {
  2065. if m != nil {
  2066. return m.Events
  2067. }
  2068. return nil
  2069. }
  2070. type ResponseCheckTx struct {
  2071. Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
  2072. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  2073. Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
  2074. Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
  2075. GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"`
  2076. GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
  2077. Events []Event `protobuf:"bytes,7,rep,name=events,proto3" json:"events,omitempty"`
  2078. Codespace string `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"`
  2079. Sender string `protobuf:"bytes,9,opt,name=sender,proto3" json:"sender,omitempty"`
  2080. Priority int64 `protobuf:"varint,10,opt,name=priority,proto3" json:"priority,omitempty"`
  2081. // ABCI applications creating a ResponseCheckTX should not set mempool_error.
  2082. MempoolError string `protobuf:"bytes,11,opt,name=mempool_error,json=mempoolError,proto3" json:"mempool_error,omitempty"`
  2083. }
  2084. func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} }
  2085. func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) }
  2086. func (*ResponseCheckTx) ProtoMessage() {}
  2087. func (*ResponseCheckTx) Descriptor() ([]byte, []int) {
  2088. return fileDescriptor_252557cfdd89a31a, []int{28}
  2089. }
  2090. func (m *ResponseCheckTx) XXX_Unmarshal(b []byte) error {
  2091. return m.Unmarshal(b)
  2092. }
  2093. func (m *ResponseCheckTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2094. if deterministic {
  2095. return xxx_messageInfo_ResponseCheckTx.Marshal(b, m, deterministic)
  2096. } else {
  2097. b = b[:cap(b)]
  2098. n, err := m.MarshalToSizedBuffer(b)
  2099. if err != nil {
  2100. return nil, err
  2101. }
  2102. return b[:n], nil
  2103. }
  2104. }
  2105. func (m *ResponseCheckTx) XXX_Merge(src proto.Message) {
  2106. xxx_messageInfo_ResponseCheckTx.Merge(m, src)
  2107. }
  2108. func (m *ResponseCheckTx) XXX_Size() int {
  2109. return m.Size()
  2110. }
  2111. func (m *ResponseCheckTx) XXX_DiscardUnknown() {
  2112. xxx_messageInfo_ResponseCheckTx.DiscardUnknown(m)
  2113. }
  2114. var xxx_messageInfo_ResponseCheckTx proto.InternalMessageInfo
  2115. func (m *ResponseCheckTx) GetCode() uint32 {
  2116. if m != nil {
  2117. return m.Code
  2118. }
  2119. return 0
  2120. }
  2121. func (m *ResponseCheckTx) GetData() []byte {
  2122. if m != nil {
  2123. return m.Data
  2124. }
  2125. return nil
  2126. }
  2127. func (m *ResponseCheckTx) GetLog() string {
  2128. if m != nil {
  2129. return m.Log
  2130. }
  2131. return ""
  2132. }
  2133. func (m *ResponseCheckTx) GetInfo() string {
  2134. if m != nil {
  2135. return m.Info
  2136. }
  2137. return ""
  2138. }
  2139. func (m *ResponseCheckTx) GetGasWanted() int64 {
  2140. if m != nil {
  2141. return m.GasWanted
  2142. }
  2143. return 0
  2144. }
  2145. func (m *ResponseCheckTx) GetGasUsed() int64 {
  2146. if m != nil {
  2147. return m.GasUsed
  2148. }
  2149. return 0
  2150. }
  2151. func (m *ResponseCheckTx) GetEvents() []Event {
  2152. if m != nil {
  2153. return m.Events
  2154. }
  2155. return nil
  2156. }
  2157. func (m *ResponseCheckTx) GetCodespace() string {
  2158. if m != nil {
  2159. return m.Codespace
  2160. }
  2161. return ""
  2162. }
  2163. func (m *ResponseCheckTx) GetSender() string {
  2164. if m != nil {
  2165. return m.Sender
  2166. }
  2167. return ""
  2168. }
  2169. func (m *ResponseCheckTx) GetPriority() int64 {
  2170. if m != nil {
  2171. return m.Priority
  2172. }
  2173. return 0
  2174. }
  2175. func (m *ResponseCheckTx) GetMempoolError() string {
  2176. if m != nil {
  2177. return m.MempoolError
  2178. }
  2179. return ""
  2180. }
  2181. type ResponseDeliverTx struct {
  2182. Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
  2183. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  2184. Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
  2185. Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
  2186. GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,proto3" json:"gas_wanted,omitempty"`
  2187. GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,proto3" json:"gas_used,omitempty"`
  2188. Events []Event `protobuf:"bytes,7,rep,name=events,proto3" json:"events,omitempty"`
  2189. Codespace string `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"`
  2190. }
  2191. func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} }
  2192. func (m *ResponseDeliverTx) String() string { return proto.CompactTextString(m) }
  2193. func (*ResponseDeliverTx) ProtoMessage() {}
  2194. func (*ResponseDeliverTx) Descriptor() ([]byte, []int) {
  2195. return fileDescriptor_252557cfdd89a31a, []int{29}
  2196. }
  2197. func (m *ResponseDeliverTx) XXX_Unmarshal(b []byte) error {
  2198. return m.Unmarshal(b)
  2199. }
  2200. func (m *ResponseDeliverTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2201. if deterministic {
  2202. return xxx_messageInfo_ResponseDeliverTx.Marshal(b, m, deterministic)
  2203. } else {
  2204. b = b[:cap(b)]
  2205. n, err := m.MarshalToSizedBuffer(b)
  2206. if err != nil {
  2207. return nil, err
  2208. }
  2209. return b[:n], nil
  2210. }
  2211. }
  2212. func (m *ResponseDeliverTx) XXX_Merge(src proto.Message) {
  2213. xxx_messageInfo_ResponseDeliverTx.Merge(m, src)
  2214. }
  2215. func (m *ResponseDeliverTx) XXX_Size() int {
  2216. return m.Size()
  2217. }
  2218. func (m *ResponseDeliverTx) XXX_DiscardUnknown() {
  2219. xxx_messageInfo_ResponseDeliverTx.DiscardUnknown(m)
  2220. }
  2221. var xxx_messageInfo_ResponseDeliverTx proto.InternalMessageInfo
  2222. func (m *ResponseDeliverTx) GetCode() uint32 {
  2223. if m != nil {
  2224. return m.Code
  2225. }
  2226. return 0
  2227. }
  2228. func (m *ResponseDeliverTx) GetData() []byte {
  2229. if m != nil {
  2230. return m.Data
  2231. }
  2232. return nil
  2233. }
  2234. func (m *ResponseDeliverTx) GetLog() string {
  2235. if m != nil {
  2236. return m.Log
  2237. }
  2238. return ""
  2239. }
  2240. func (m *ResponseDeliverTx) GetInfo() string {
  2241. if m != nil {
  2242. return m.Info
  2243. }
  2244. return ""
  2245. }
  2246. func (m *ResponseDeliverTx) GetGasWanted() int64 {
  2247. if m != nil {
  2248. return m.GasWanted
  2249. }
  2250. return 0
  2251. }
  2252. func (m *ResponseDeliverTx) GetGasUsed() int64 {
  2253. if m != nil {
  2254. return m.GasUsed
  2255. }
  2256. return 0
  2257. }
  2258. func (m *ResponseDeliverTx) GetEvents() []Event {
  2259. if m != nil {
  2260. return m.Events
  2261. }
  2262. return nil
  2263. }
  2264. func (m *ResponseDeliverTx) GetCodespace() string {
  2265. if m != nil {
  2266. return m.Codespace
  2267. }
  2268. return ""
  2269. }
  2270. type ResponseEndBlock struct {
  2271. ValidatorUpdates []ValidatorUpdate `protobuf:"bytes,1,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates"`
  2272. ConsensusParamUpdates *types1.ConsensusParams `protobuf:"bytes,2,opt,name=consensus_param_updates,json=consensusParamUpdates,proto3" json:"consensus_param_updates,omitempty"`
  2273. Events []Event `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"`
  2274. }
  2275. func (m *ResponseEndBlock) Reset() { *m = ResponseEndBlock{} }
  2276. func (m *ResponseEndBlock) String() string { return proto.CompactTextString(m) }
  2277. func (*ResponseEndBlock) ProtoMessage() {}
  2278. func (*ResponseEndBlock) Descriptor() ([]byte, []int) {
  2279. return fileDescriptor_252557cfdd89a31a, []int{30}
  2280. }
  2281. func (m *ResponseEndBlock) XXX_Unmarshal(b []byte) error {
  2282. return m.Unmarshal(b)
  2283. }
  2284. func (m *ResponseEndBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2285. if deterministic {
  2286. return xxx_messageInfo_ResponseEndBlock.Marshal(b, m, deterministic)
  2287. } else {
  2288. b = b[:cap(b)]
  2289. n, err := m.MarshalToSizedBuffer(b)
  2290. if err != nil {
  2291. return nil, err
  2292. }
  2293. return b[:n], nil
  2294. }
  2295. }
  2296. func (m *ResponseEndBlock) XXX_Merge(src proto.Message) {
  2297. xxx_messageInfo_ResponseEndBlock.Merge(m, src)
  2298. }
  2299. func (m *ResponseEndBlock) XXX_Size() int {
  2300. return m.Size()
  2301. }
  2302. func (m *ResponseEndBlock) XXX_DiscardUnknown() {
  2303. xxx_messageInfo_ResponseEndBlock.DiscardUnknown(m)
  2304. }
  2305. var xxx_messageInfo_ResponseEndBlock proto.InternalMessageInfo
  2306. func (m *ResponseEndBlock) GetValidatorUpdates() []ValidatorUpdate {
  2307. if m != nil {
  2308. return m.ValidatorUpdates
  2309. }
  2310. return nil
  2311. }
  2312. func (m *ResponseEndBlock) GetConsensusParamUpdates() *types1.ConsensusParams {
  2313. if m != nil {
  2314. return m.ConsensusParamUpdates
  2315. }
  2316. return nil
  2317. }
  2318. func (m *ResponseEndBlock) GetEvents() []Event {
  2319. if m != nil {
  2320. return m.Events
  2321. }
  2322. return nil
  2323. }
  2324. type ResponseCommit struct {
  2325. // reserve 1
  2326. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  2327. RetainHeight int64 `protobuf:"varint,3,opt,name=retain_height,json=retainHeight,proto3" json:"retain_height,omitempty"`
  2328. }
  2329. func (m *ResponseCommit) Reset() { *m = ResponseCommit{} }
  2330. func (m *ResponseCommit) String() string { return proto.CompactTextString(m) }
  2331. func (*ResponseCommit) ProtoMessage() {}
  2332. func (*ResponseCommit) Descriptor() ([]byte, []int) {
  2333. return fileDescriptor_252557cfdd89a31a, []int{31}
  2334. }
  2335. func (m *ResponseCommit) XXX_Unmarshal(b []byte) error {
  2336. return m.Unmarshal(b)
  2337. }
  2338. func (m *ResponseCommit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2339. if deterministic {
  2340. return xxx_messageInfo_ResponseCommit.Marshal(b, m, deterministic)
  2341. } else {
  2342. b = b[:cap(b)]
  2343. n, err := m.MarshalToSizedBuffer(b)
  2344. if err != nil {
  2345. return nil, err
  2346. }
  2347. return b[:n], nil
  2348. }
  2349. }
  2350. func (m *ResponseCommit) XXX_Merge(src proto.Message) {
  2351. xxx_messageInfo_ResponseCommit.Merge(m, src)
  2352. }
  2353. func (m *ResponseCommit) XXX_Size() int {
  2354. return m.Size()
  2355. }
  2356. func (m *ResponseCommit) XXX_DiscardUnknown() {
  2357. xxx_messageInfo_ResponseCommit.DiscardUnknown(m)
  2358. }
  2359. var xxx_messageInfo_ResponseCommit proto.InternalMessageInfo
  2360. func (m *ResponseCommit) GetData() []byte {
  2361. if m != nil {
  2362. return m.Data
  2363. }
  2364. return nil
  2365. }
  2366. func (m *ResponseCommit) GetRetainHeight() int64 {
  2367. if m != nil {
  2368. return m.RetainHeight
  2369. }
  2370. return 0
  2371. }
  2372. type ResponseListSnapshots struct {
  2373. Snapshots []*Snapshot `protobuf:"bytes,1,rep,name=snapshots,proto3" json:"snapshots,omitempty"`
  2374. }
  2375. func (m *ResponseListSnapshots) Reset() { *m = ResponseListSnapshots{} }
  2376. func (m *ResponseListSnapshots) String() string { return proto.CompactTextString(m) }
  2377. func (*ResponseListSnapshots) ProtoMessage() {}
  2378. func (*ResponseListSnapshots) Descriptor() ([]byte, []int) {
  2379. return fileDescriptor_252557cfdd89a31a, []int{32}
  2380. }
  2381. func (m *ResponseListSnapshots) XXX_Unmarshal(b []byte) error {
  2382. return m.Unmarshal(b)
  2383. }
  2384. func (m *ResponseListSnapshots) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2385. if deterministic {
  2386. return xxx_messageInfo_ResponseListSnapshots.Marshal(b, m, deterministic)
  2387. } else {
  2388. b = b[:cap(b)]
  2389. n, err := m.MarshalToSizedBuffer(b)
  2390. if err != nil {
  2391. return nil, err
  2392. }
  2393. return b[:n], nil
  2394. }
  2395. }
  2396. func (m *ResponseListSnapshots) XXX_Merge(src proto.Message) {
  2397. xxx_messageInfo_ResponseListSnapshots.Merge(m, src)
  2398. }
  2399. func (m *ResponseListSnapshots) XXX_Size() int {
  2400. return m.Size()
  2401. }
  2402. func (m *ResponseListSnapshots) XXX_DiscardUnknown() {
  2403. xxx_messageInfo_ResponseListSnapshots.DiscardUnknown(m)
  2404. }
  2405. var xxx_messageInfo_ResponseListSnapshots proto.InternalMessageInfo
  2406. func (m *ResponseListSnapshots) GetSnapshots() []*Snapshot {
  2407. if m != nil {
  2408. return m.Snapshots
  2409. }
  2410. return nil
  2411. }
  2412. type ResponseOfferSnapshot struct {
  2413. Result ResponseOfferSnapshot_Result `protobuf:"varint,1,opt,name=result,proto3,enum=tendermint.abci.ResponseOfferSnapshot_Result" json:"result,omitempty"`
  2414. }
  2415. func (m *ResponseOfferSnapshot) Reset() { *m = ResponseOfferSnapshot{} }
  2416. func (m *ResponseOfferSnapshot) String() string { return proto.CompactTextString(m) }
  2417. func (*ResponseOfferSnapshot) ProtoMessage() {}
  2418. func (*ResponseOfferSnapshot) Descriptor() ([]byte, []int) {
  2419. return fileDescriptor_252557cfdd89a31a, []int{33}
  2420. }
  2421. func (m *ResponseOfferSnapshot) XXX_Unmarshal(b []byte) error {
  2422. return m.Unmarshal(b)
  2423. }
  2424. func (m *ResponseOfferSnapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2425. if deterministic {
  2426. return xxx_messageInfo_ResponseOfferSnapshot.Marshal(b, m, deterministic)
  2427. } else {
  2428. b = b[:cap(b)]
  2429. n, err := m.MarshalToSizedBuffer(b)
  2430. if err != nil {
  2431. return nil, err
  2432. }
  2433. return b[:n], nil
  2434. }
  2435. }
  2436. func (m *ResponseOfferSnapshot) XXX_Merge(src proto.Message) {
  2437. xxx_messageInfo_ResponseOfferSnapshot.Merge(m, src)
  2438. }
  2439. func (m *ResponseOfferSnapshot) XXX_Size() int {
  2440. return m.Size()
  2441. }
  2442. func (m *ResponseOfferSnapshot) XXX_DiscardUnknown() {
  2443. xxx_messageInfo_ResponseOfferSnapshot.DiscardUnknown(m)
  2444. }
  2445. var xxx_messageInfo_ResponseOfferSnapshot proto.InternalMessageInfo
  2446. func (m *ResponseOfferSnapshot) GetResult() ResponseOfferSnapshot_Result {
  2447. if m != nil {
  2448. return m.Result
  2449. }
  2450. return ResponseOfferSnapshot_UNKNOWN
  2451. }
  2452. type ResponseLoadSnapshotChunk struct {
  2453. Chunk []byte `protobuf:"bytes,1,opt,name=chunk,proto3" json:"chunk,omitempty"`
  2454. }
  2455. func (m *ResponseLoadSnapshotChunk) Reset() { *m = ResponseLoadSnapshotChunk{} }
  2456. func (m *ResponseLoadSnapshotChunk) String() string { return proto.CompactTextString(m) }
  2457. func (*ResponseLoadSnapshotChunk) ProtoMessage() {}
  2458. func (*ResponseLoadSnapshotChunk) Descriptor() ([]byte, []int) {
  2459. return fileDescriptor_252557cfdd89a31a, []int{34}
  2460. }
  2461. func (m *ResponseLoadSnapshotChunk) XXX_Unmarshal(b []byte) error {
  2462. return m.Unmarshal(b)
  2463. }
  2464. func (m *ResponseLoadSnapshotChunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2465. if deterministic {
  2466. return xxx_messageInfo_ResponseLoadSnapshotChunk.Marshal(b, m, deterministic)
  2467. } else {
  2468. b = b[:cap(b)]
  2469. n, err := m.MarshalToSizedBuffer(b)
  2470. if err != nil {
  2471. return nil, err
  2472. }
  2473. return b[:n], nil
  2474. }
  2475. }
  2476. func (m *ResponseLoadSnapshotChunk) XXX_Merge(src proto.Message) {
  2477. xxx_messageInfo_ResponseLoadSnapshotChunk.Merge(m, src)
  2478. }
  2479. func (m *ResponseLoadSnapshotChunk) XXX_Size() int {
  2480. return m.Size()
  2481. }
  2482. func (m *ResponseLoadSnapshotChunk) XXX_DiscardUnknown() {
  2483. xxx_messageInfo_ResponseLoadSnapshotChunk.DiscardUnknown(m)
  2484. }
  2485. var xxx_messageInfo_ResponseLoadSnapshotChunk proto.InternalMessageInfo
  2486. func (m *ResponseLoadSnapshotChunk) GetChunk() []byte {
  2487. if m != nil {
  2488. return m.Chunk
  2489. }
  2490. return nil
  2491. }
  2492. type ResponseApplySnapshotChunk struct {
  2493. Result ResponseApplySnapshotChunk_Result `protobuf:"varint,1,opt,name=result,proto3,enum=tendermint.abci.ResponseApplySnapshotChunk_Result" json:"result,omitempty"`
  2494. RefetchChunks []uint32 `protobuf:"varint,2,rep,packed,name=refetch_chunks,json=refetchChunks,proto3" json:"refetch_chunks,omitempty"`
  2495. RejectSenders []string `protobuf:"bytes,3,rep,name=reject_senders,json=rejectSenders,proto3" json:"reject_senders,omitempty"`
  2496. }
  2497. func (m *ResponseApplySnapshotChunk) Reset() { *m = ResponseApplySnapshotChunk{} }
  2498. func (m *ResponseApplySnapshotChunk) String() string { return proto.CompactTextString(m) }
  2499. func (*ResponseApplySnapshotChunk) ProtoMessage() {}
  2500. func (*ResponseApplySnapshotChunk) Descriptor() ([]byte, []int) {
  2501. return fileDescriptor_252557cfdd89a31a, []int{35}
  2502. }
  2503. func (m *ResponseApplySnapshotChunk) XXX_Unmarshal(b []byte) error {
  2504. return m.Unmarshal(b)
  2505. }
  2506. func (m *ResponseApplySnapshotChunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2507. if deterministic {
  2508. return xxx_messageInfo_ResponseApplySnapshotChunk.Marshal(b, m, deterministic)
  2509. } else {
  2510. b = b[:cap(b)]
  2511. n, err := m.MarshalToSizedBuffer(b)
  2512. if err != nil {
  2513. return nil, err
  2514. }
  2515. return b[:n], nil
  2516. }
  2517. }
  2518. func (m *ResponseApplySnapshotChunk) XXX_Merge(src proto.Message) {
  2519. xxx_messageInfo_ResponseApplySnapshotChunk.Merge(m, src)
  2520. }
  2521. func (m *ResponseApplySnapshotChunk) XXX_Size() int {
  2522. return m.Size()
  2523. }
  2524. func (m *ResponseApplySnapshotChunk) XXX_DiscardUnknown() {
  2525. xxx_messageInfo_ResponseApplySnapshotChunk.DiscardUnknown(m)
  2526. }
  2527. var xxx_messageInfo_ResponseApplySnapshotChunk proto.InternalMessageInfo
  2528. func (m *ResponseApplySnapshotChunk) GetResult() ResponseApplySnapshotChunk_Result {
  2529. if m != nil {
  2530. return m.Result
  2531. }
  2532. return ResponseApplySnapshotChunk_UNKNOWN
  2533. }
  2534. func (m *ResponseApplySnapshotChunk) GetRefetchChunks() []uint32 {
  2535. if m != nil {
  2536. return m.RefetchChunks
  2537. }
  2538. return nil
  2539. }
  2540. func (m *ResponseApplySnapshotChunk) GetRejectSenders() []string {
  2541. if m != nil {
  2542. return m.RejectSenders
  2543. }
  2544. return nil
  2545. }
  2546. type ResponseExtendVote struct {
  2547. VoteExtension *types1.VoteExtension `protobuf:"bytes,1,opt,name=vote_extension,json=voteExtension,proto3" json:"vote_extension,omitempty"`
  2548. }
  2549. func (m *ResponseExtendVote) Reset() { *m = ResponseExtendVote{} }
  2550. func (m *ResponseExtendVote) String() string { return proto.CompactTextString(m) }
  2551. func (*ResponseExtendVote) ProtoMessage() {}
  2552. func (*ResponseExtendVote) Descriptor() ([]byte, []int) {
  2553. return fileDescriptor_252557cfdd89a31a, []int{36}
  2554. }
  2555. func (m *ResponseExtendVote) XXX_Unmarshal(b []byte) error {
  2556. return m.Unmarshal(b)
  2557. }
  2558. func (m *ResponseExtendVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2559. if deterministic {
  2560. return xxx_messageInfo_ResponseExtendVote.Marshal(b, m, deterministic)
  2561. } else {
  2562. b = b[:cap(b)]
  2563. n, err := m.MarshalToSizedBuffer(b)
  2564. if err != nil {
  2565. return nil, err
  2566. }
  2567. return b[:n], nil
  2568. }
  2569. }
  2570. func (m *ResponseExtendVote) XXX_Merge(src proto.Message) {
  2571. xxx_messageInfo_ResponseExtendVote.Merge(m, src)
  2572. }
  2573. func (m *ResponseExtendVote) XXX_Size() int {
  2574. return m.Size()
  2575. }
  2576. func (m *ResponseExtendVote) XXX_DiscardUnknown() {
  2577. xxx_messageInfo_ResponseExtendVote.DiscardUnknown(m)
  2578. }
  2579. var xxx_messageInfo_ResponseExtendVote proto.InternalMessageInfo
  2580. func (m *ResponseExtendVote) GetVoteExtension() *types1.VoteExtension {
  2581. if m != nil {
  2582. return m.VoteExtension
  2583. }
  2584. return nil
  2585. }
  2586. type ResponseVerifyVoteExtension struct {
  2587. Result ResponseVerifyVoteExtension_Result `protobuf:"varint,1,opt,name=result,proto3,enum=tendermint.abci.ResponseVerifyVoteExtension_Result" json:"result,omitempty"`
  2588. }
  2589. func (m *ResponseVerifyVoteExtension) Reset() { *m = ResponseVerifyVoteExtension{} }
  2590. func (m *ResponseVerifyVoteExtension) String() string { return proto.CompactTextString(m) }
  2591. func (*ResponseVerifyVoteExtension) ProtoMessage() {}
  2592. func (*ResponseVerifyVoteExtension) Descriptor() ([]byte, []int) {
  2593. return fileDescriptor_252557cfdd89a31a, []int{37}
  2594. }
  2595. func (m *ResponseVerifyVoteExtension) XXX_Unmarshal(b []byte) error {
  2596. return m.Unmarshal(b)
  2597. }
  2598. func (m *ResponseVerifyVoteExtension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2599. if deterministic {
  2600. return xxx_messageInfo_ResponseVerifyVoteExtension.Marshal(b, m, deterministic)
  2601. } else {
  2602. b = b[:cap(b)]
  2603. n, err := m.MarshalToSizedBuffer(b)
  2604. if err != nil {
  2605. return nil, err
  2606. }
  2607. return b[:n], nil
  2608. }
  2609. }
  2610. func (m *ResponseVerifyVoteExtension) XXX_Merge(src proto.Message) {
  2611. xxx_messageInfo_ResponseVerifyVoteExtension.Merge(m, src)
  2612. }
  2613. func (m *ResponseVerifyVoteExtension) XXX_Size() int {
  2614. return m.Size()
  2615. }
  2616. func (m *ResponseVerifyVoteExtension) XXX_DiscardUnknown() {
  2617. xxx_messageInfo_ResponseVerifyVoteExtension.DiscardUnknown(m)
  2618. }
  2619. var xxx_messageInfo_ResponseVerifyVoteExtension proto.InternalMessageInfo
  2620. func (m *ResponseVerifyVoteExtension) GetResult() ResponseVerifyVoteExtension_Result {
  2621. if m != nil {
  2622. return m.Result
  2623. }
  2624. return ResponseVerifyVoteExtension_UNKNOWN
  2625. }
  2626. type ResponsePrepareProposal struct {
  2627. BlockData [][]byte `protobuf:"bytes,1,rep,name=block_data,json=blockData,proto3" json:"block_data,omitempty"`
  2628. }
  2629. func (m *ResponsePrepareProposal) Reset() { *m = ResponsePrepareProposal{} }
  2630. func (m *ResponsePrepareProposal) String() string { return proto.CompactTextString(m) }
  2631. func (*ResponsePrepareProposal) ProtoMessage() {}
  2632. func (*ResponsePrepareProposal) Descriptor() ([]byte, []int) {
  2633. return fileDescriptor_252557cfdd89a31a, []int{38}
  2634. }
  2635. func (m *ResponsePrepareProposal) XXX_Unmarshal(b []byte) error {
  2636. return m.Unmarshal(b)
  2637. }
  2638. func (m *ResponsePrepareProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2639. if deterministic {
  2640. return xxx_messageInfo_ResponsePrepareProposal.Marshal(b, m, deterministic)
  2641. } else {
  2642. b = b[:cap(b)]
  2643. n, err := m.MarshalToSizedBuffer(b)
  2644. if err != nil {
  2645. return nil, err
  2646. }
  2647. return b[:n], nil
  2648. }
  2649. }
  2650. func (m *ResponsePrepareProposal) XXX_Merge(src proto.Message) {
  2651. xxx_messageInfo_ResponsePrepareProposal.Merge(m, src)
  2652. }
  2653. func (m *ResponsePrepareProposal) XXX_Size() int {
  2654. return m.Size()
  2655. }
  2656. func (m *ResponsePrepareProposal) XXX_DiscardUnknown() {
  2657. xxx_messageInfo_ResponsePrepareProposal.DiscardUnknown(m)
  2658. }
  2659. var xxx_messageInfo_ResponsePrepareProposal proto.InternalMessageInfo
  2660. func (m *ResponsePrepareProposal) GetBlockData() [][]byte {
  2661. if m != nil {
  2662. return m.BlockData
  2663. }
  2664. return nil
  2665. }
  2666. type ResponseProcessProposal struct {
  2667. Accept bool `protobuf:"varint,1,opt,name=accept,proto3" json:"accept,omitempty"`
  2668. AppHash []byte `protobuf:"bytes,2,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"`
  2669. TxResults []*ExecTxResult `protobuf:"bytes,3,rep,name=tx_results,json=txResults,proto3" json:"tx_results,omitempty"`
  2670. ValidatorUpdates []*ValidatorUpdate `protobuf:"bytes,4,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates,omitempty"`
  2671. ConsensusParamUpdates *types1.ConsensusParams `protobuf:"bytes,5,opt,name=consensus_param_updates,json=consensusParamUpdates,proto3" json:"consensus_param_updates,omitempty"`
  2672. }
  2673. func (m *ResponseProcessProposal) Reset() { *m = ResponseProcessProposal{} }
  2674. func (m *ResponseProcessProposal) String() string { return proto.CompactTextString(m) }
  2675. func (*ResponseProcessProposal) ProtoMessage() {}
  2676. func (*ResponseProcessProposal) Descriptor() ([]byte, []int) {
  2677. return fileDescriptor_252557cfdd89a31a, []int{39}
  2678. }
  2679. func (m *ResponseProcessProposal) XXX_Unmarshal(b []byte) error {
  2680. return m.Unmarshal(b)
  2681. }
  2682. func (m *ResponseProcessProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2683. if deterministic {
  2684. return xxx_messageInfo_ResponseProcessProposal.Marshal(b, m, deterministic)
  2685. } else {
  2686. b = b[:cap(b)]
  2687. n, err := m.MarshalToSizedBuffer(b)
  2688. if err != nil {
  2689. return nil, err
  2690. }
  2691. return b[:n], nil
  2692. }
  2693. }
  2694. func (m *ResponseProcessProposal) XXX_Merge(src proto.Message) {
  2695. xxx_messageInfo_ResponseProcessProposal.Merge(m, src)
  2696. }
  2697. func (m *ResponseProcessProposal) XXX_Size() int {
  2698. return m.Size()
  2699. }
  2700. func (m *ResponseProcessProposal) XXX_DiscardUnknown() {
  2701. xxx_messageInfo_ResponseProcessProposal.DiscardUnknown(m)
  2702. }
  2703. var xxx_messageInfo_ResponseProcessProposal proto.InternalMessageInfo
  2704. func (m *ResponseProcessProposal) GetAccept() bool {
  2705. if m != nil {
  2706. return m.Accept
  2707. }
  2708. return false
  2709. }
  2710. func (m *ResponseProcessProposal) GetAppHash() []byte {
  2711. if m != nil {
  2712. return m.AppHash
  2713. }
  2714. return nil
  2715. }
  2716. func (m *ResponseProcessProposal) GetTxResults() []*ExecTxResult {
  2717. if m != nil {
  2718. return m.TxResults
  2719. }
  2720. return nil
  2721. }
  2722. func (m *ResponseProcessProposal) GetValidatorUpdates() []*ValidatorUpdate {
  2723. if m != nil {
  2724. return m.ValidatorUpdates
  2725. }
  2726. return nil
  2727. }
  2728. func (m *ResponseProcessProposal) GetConsensusParamUpdates() *types1.ConsensusParams {
  2729. if m != nil {
  2730. return m.ConsensusParamUpdates
  2731. }
  2732. return nil
  2733. }
  2734. type ResponseFinalizeBlock struct {
  2735. Events []Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
  2736. TxResults []*ExecTxResult `protobuf:"bytes,2,rep,name=tx_results,json=txResults,proto3" json:"tx_results,omitempty"`
  2737. ValidatorUpdates []ValidatorUpdate `protobuf:"bytes,3,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates"`
  2738. ConsensusParamUpdates *types1.ConsensusParams `protobuf:"bytes,4,opt,name=consensus_param_updates,json=consensusParamUpdates,proto3" json:"consensus_param_updates,omitempty"`
  2739. AppHash []byte `protobuf:"bytes,5,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"`
  2740. RetainHeight int64 `protobuf:"varint,6,opt,name=retain_height,json=retainHeight,proto3" json:"retain_height,omitempty"`
  2741. }
  2742. func (m *ResponseFinalizeBlock) Reset() { *m = ResponseFinalizeBlock{} }
  2743. func (m *ResponseFinalizeBlock) String() string { return proto.CompactTextString(m) }
  2744. func (*ResponseFinalizeBlock) ProtoMessage() {}
  2745. func (*ResponseFinalizeBlock) Descriptor() ([]byte, []int) {
  2746. return fileDescriptor_252557cfdd89a31a, []int{40}
  2747. }
  2748. func (m *ResponseFinalizeBlock) XXX_Unmarshal(b []byte) error {
  2749. return m.Unmarshal(b)
  2750. }
  2751. func (m *ResponseFinalizeBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2752. if deterministic {
  2753. return xxx_messageInfo_ResponseFinalizeBlock.Marshal(b, m, deterministic)
  2754. } else {
  2755. b = b[:cap(b)]
  2756. n, err := m.MarshalToSizedBuffer(b)
  2757. if err != nil {
  2758. return nil, err
  2759. }
  2760. return b[:n], nil
  2761. }
  2762. }
  2763. func (m *ResponseFinalizeBlock) XXX_Merge(src proto.Message) {
  2764. xxx_messageInfo_ResponseFinalizeBlock.Merge(m, src)
  2765. }
  2766. func (m *ResponseFinalizeBlock) XXX_Size() int {
  2767. return m.Size()
  2768. }
  2769. func (m *ResponseFinalizeBlock) XXX_DiscardUnknown() {
  2770. xxx_messageInfo_ResponseFinalizeBlock.DiscardUnknown(m)
  2771. }
  2772. var xxx_messageInfo_ResponseFinalizeBlock proto.InternalMessageInfo
  2773. func (m *ResponseFinalizeBlock) GetEvents() []Event {
  2774. if m != nil {
  2775. return m.Events
  2776. }
  2777. return nil
  2778. }
  2779. func (m *ResponseFinalizeBlock) GetTxResults() []*ExecTxResult {
  2780. if m != nil {
  2781. return m.TxResults
  2782. }
  2783. return nil
  2784. }
  2785. func (m *ResponseFinalizeBlock) GetValidatorUpdates() []ValidatorUpdate {
  2786. if m != nil {
  2787. return m.ValidatorUpdates
  2788. }
  2789. return nil
  2790. }
  2791. func (m *ResponseFinalizeBlock) GetConsensusParamUpdates() *types1.ConsensusParams {
  2792. if m != nil {
  2793. return m.ConsensusParamUpdates
  2794. }
  2795. return nil
  2796. }
  2797. func (m *ResponseFinalizeBlock) GetAppHash() []byte {
  2798. if m != nil {
  2799. return m.AppHash
  2800. }
  2801. return nil
  2802. }
  2803. func (m *ResponseFinalizeBlock) GetRetainHeight() int64 {
  2804. if m != nil {
  2805. return m.RetainHeight
  2806. }
  2807. return 0
  2808. }
  2809. type CommitInfo struct {
  2810. Round int32 `protobuf:"varint,1,opt,name=round,proto3" json:"round,omitempty"`
  2811. Votes []VoteInfo `protobuf:"bytes,2,rep,name=votes,proto3" json:"votes"`
  2812. }
  2813. func (m *CommitInfo) Reset() { *m = CommitInfo{} }
  2814. func (m *CommitInfo) String() string { return proto.CompactTextString(m) }
  2815. func (*CommitInfo) ProtoMessage() {}
  2816. func (*CommitInfo) Descriptor() ([]byte, []int) {
  2817. return fileDescriptor_252557cfdd89a31a, []int{41}
  2818. }
  2819. func (m *CommitInfo) XXX_Unmarshal(b []byte) error {
  2820. return m.Unmarshal(b)
  2821. }
  2822. func (m *CommitInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2823. if deterministic {
  2824. return xxx_messageInfo_CommitInfo.Marshal(b, m, deterministic)
  2825. } else {
  2826. b = b[:cap(b)]
  2827. n, err := m.MarshalToSizedBuffer(b)
  2828. if err != nil {
  2829. return nil, err
  2830. }
  2831. return b[:n], nil
  2832. }
  2833. }
  2834. func (m *CommitInfo) XXX_Merge(src proto.Message) {
  2835. xxx_messageInfo_CommitInfo.Merge(m, src)
  2836. }
  2837. func (m *CommitInfo) XXX_Size() int {
  2838. return m.Size()
  2839. }
  2840. func (m *CommitInfo) XXX_DiscardUnknown() {
  2841. xxx_messageInfo_CommitInfo.DiscardUnknown(m)
  2842. }
  2843. var xxx_messageInfo_CommitInfo proto.InternalMessageInfo
  2844. func (m *CommitInfo) GetRound() int32 {
  2845. if m != nil {
  2846. return m.Round
  2847. }
  2848. return 0
  2849. }
  2850. func (m *CommitInfo) GetVotes() []VoteInfo {
  2851. if m != nil {
  2852. return m.Votes
  2853. }
  2854. return nil
  2855. }
  2856. // Event allows application developers to attach additional information to
  2857. // ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx.
  2858. // Later, transactions may be queried using these events.
  2859. type Event struct {
  2860. Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
  2861. Attributes []EventAttribute `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty"`
  2862. }
  2863. func (m *Event) Reset() { *m = Event{} }
  2864. func (m *Event) String() string { return proto.CompactTextString(m) }
  2865. func (*Event) ProtoMessage() {}
  2866. func (*Event) Descriptor() ([]byte, []int) {
  2867. return fileDescriptor_252557cfdd89a31a, []int{42}
  2868. }
  2869. func (m *Event) XXX_Unmarshal(b []byte) error {
  2870. return m.Unmarshal(b)
  2871. }
  2872. func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2873. if deterministic {
  2874. return xxx_messageInfo_Event.Marshal(b, m, deterministic)
  2875. } else {
  2876. b = b[:cap(b)]
  2877. n, err := m.MarshalToSizedBuffer(b)
  2878. if err != nil {
  2879. return nil, err
  2880. }
  2881. return b[:n], nil
  2882. }
  2883. }
  2884. func (m *Event) XXX_Merge(src proto.Message) {
  2885. xxx_messageInfo_Event.Merge(m, src)
  2886. }
  2887. func (m *Event) XXX_Size() int {
  2888. return m.Size()
  2889. }
  2890. func (m *Event) XXX_DiscardUnknown() {
  2891. xxx_messageInfo_Event.DiscardUnknown(m)
  2892. }
  2893. var xxx_messageInfo_Event proto.InternalMessageInfo
  2894. func (m *Event) GetType() string {
  2895. if m != nil {
  2896. return m.Type
  2897. }
  2898. return ""
  2899. }
  2900. func (m *Event) GetAttributes() []EventAttribute {
  2901. if m != nil {
  2902. return m.Attributes
  2903. }
  2904. return nil
  2905. }
  2906. // EventAttribute is a single key-value pair, associated with an event.
  2907. type EventAttribute struct {
  2908. Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
  2909. Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
  2910. Index bool `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
  2911. }
  2912. func (m *EventAttribute) Reset() { *m = EventAttribute{} }
  2913. func (m *EventAttribute) String() string { return proto.CompactTextString(m) }
  2914. func (*EventAttribute) ProtoMessage() {}
  2915. func (*EventAttribute) Descriptor() ([]byte, []int) {
  2916. return fileDescriptor_252557cfdd89a31a, []int{43}
  2917. }
  2918. func (m *EventAttribute) XXX_Unmarshal(b []byte) error {
  2919. return m.Unmarshal(b)
  2920. }
  2921. func (m *EventAttribute) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2922. if deterministic {
  2923. return xxx_messageInfo_EventAttribute.Marshal(b, m, deterministic)
  2924. } else {
  2925. b = b[:cap(b)]
  2926. n, err := m.MarshalToSizedBuffer(b)
  2927. if err != nil {
  2928. return nil, err
  2929. }
  2930. return b[:n], nil
  2931. }
  2932. }
  2933. func (m *EventAttribute) XXX_Merge(src proto.Message) {
  2934. xxx_messageInfo_EventAttribute.Merge(m, src)
  2935. }
  2936. func (m *EventAttribute) XXX_Size() int {
  2937. return m.Size()
  2938. }
  2939. func (m *EventAttribute) XXX_DiscardUnknown() {
  2940. xxx_messageInfo_EventAttribute.DiscardUnknown(m)
  2941. }
  2942. var xxx_messageInfo_EventAttribute proto.InternalMessageInfo
  2943. func (m *EventAttribute) GetKey() string {
  2944. if m != nil {
  2945. return m.Key
  2946. }
  2947. return ""
  2948. }
  2949. func (m *EventAttribute) GetValue() string {
  2950. if m != nil {
  2951. return m.Value
  2952. }
  2953. return ""
  2954. }
  2955. func (m *EventAttribute) GetIndex() bool {
  2956. if m != nil {
  2957. return m.Index
  2958. }
  2959. return false
  2960. }
  2961. // ExecTxResult contains results of executing one individual transaction.
  2962. //
  2963. // * Its structure is equivalent to #ResponseDeliverTx which will be deprecated/deleted
  2964. type ExecTxResult struct {
  2965. Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
  2966. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  2967. Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
  2968. Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
  2969. GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"`
  2970. GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
  2971. Events []Event `protobuf:"bytes,7,rep,name=events,proto3" json:"events,omitempty"`
  2972. Codespace string `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"`
  2973. }
  2974. func (m *ExecTxResult) Reset() { *m = ExecTxResult{} }
  2975. func (m *ExecTxResult) String() string { return proto.CompactTextString(m) }
  2976. func (*ExecTxResult) ProtoMessage() {}
  2977. func (*ExecTxResult) Descriptor() ([]byte, []int) {
  2978. return fileDescriptor_252557cfdd89a31a, []int{44}
  2979. }
  2980. func (m *ExecTxResult) XXX_Unmarshal(b []byte) error {
  2981. return m.Unmarshal(b)
  2982. }
  2983. func (m *ExecTxResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2984. if deterministic {
  2985. return xxx_messageInfo_ExecTxResult.Marshal(b, m, deterministic)
  2986. } else {
  2987. b = b[:cap(b)]
  2988. n, err := m.MarshalToSizedBuffer(b)
  2989. if err != nil {
  2990. return nil, err
  2991. }
  2992. return b[:n], nil
  2993. }
  2994. }
  2995. func (m *ExecTxResult) XXX_Merge(src proto.Message) {
  2996. xxx_messageInfo_ExecTxResult.Merge(m, src)
  2997. }
  2998. func (m *ExecTxResult) XXX_Size() int {
  2999. return m.Size()
  3000. }
  3001. func (m *ExecTxResult) XXX_DiscardUnknown() {
  3002. xxx_messageInfo_ExecTxResult.DiscardUnknown(m)
  3003. }
  3004. var xxx_messageInfo_ExecTxResult proto.InternalMessageInfo
  3005. func (m *ExecTxResult) GetCode() uint32 {
  3006. if m != nil {
  3007. return m.Code
  3008. }
  3009. return 0
  3010. }
  3011. func (m *ExecTxResult) GetData() []byte {
  3012. if m != nil {
  3013. return m.Data
  3014. }
  3015. return nil
  3016. }
  3017. func (m *ExecTxResult) GetLog() string {
  3018. if m != nil {
  3019. return m.Log
  3020. }
  3021. return ""
  3022. }
  3023. func (m *ExecTxResult) GetInfo() string {
  3024. if m != nil {
  3025. return m.Info
  3026. }
  3027. return ""
  3028. }
  3029. func (m *ExecTxResult) GetGasWanted() int64 {
  3030. if m != nil {
  3031. return m.GasWanted
  3032. }
  3033. return 0
  3034. }
  3035. func (m *ExecTxResult) GetGasUsed() int64 {
  3036. if m != nil {
  3037. return m.GasUsed
  3038. }
  3039. return 0
  3040. }
  3041. func (m *ExecTxResult) GetEvents() []Event {
  3042. if m != nil {
  3043. return m.Events
  3044. }
  3045. return nil
  3046. }
  3047. func (m *ExecTxResult) GetCodespace() string {
  3048. if m != nil {
  3049. return m.Codespace
  3050. }
  3051. return ""
  3052. }
  3053. // TxResult contains results of executing the transaction.
  3054. //
  3055. // One usage is indexing transaction results.
  3056. type TxResult struct {
  3057. Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
  3058. Index uint32 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
  3059. Tx []byte `protobuf:"bytes,3,opt,name=tx,proto3" json:"tx,omitempty"`
  3060. Result ExecTxResult `protobuf:"bytes,4,opt,name=result,proto3" json:"result"`
  3061. }
  3062. func (m *TxResult) Reset() { *m = TxResult{} }
  3063. func (m *TxResult) String() string { return proto.CompactTextString(m) }
  3064. func (*TxResult) ProtoMessage() {}
  3065. func (*TxResult) Descriptor() ([]byte, []int) {
  3066. return fileDescriptor_252557cfdd89a31a, []int{45}
  3067. }
  3068. func (m *TxResult) XXX_Unmarshal(b []byte) error {
  3069. return m.Unmarshal(b)
  3070. }
  3071. func (m *TxResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  3072. if deterministic {
  3073. return xxx_messageInfo_TxResult.Marshal(b, m, deterministic)
  3074. } else {
  3075. b = b[:cap(b)]
  3076. n, err := m.MarshalToSizedBuffer(b)
  3077. if err != nil {
  3078. return nil, err
  3079. }
  3080. return b[:n], nil
  3081. }
  3082. }
  3083. func (m *TxResult) XXX_Merge(src proto.Message) {
  3084. xxx_messageInfo_TxResult.Merge(m, src)
  3085. }
  3086. func (m *TxResult) XXX_Size() int {
  3087. return m.Size()
  3088. }
  3089. func (m *TxResult) XXX_DiscardUnknown() {
  3090. xxx_messageInfo_TxResult.DiscardUnknown(m)
  3091. }
  3092. var xxx_messageInfo_TxResult proto.InternalMessageInfo
  3093. func (m *TxResult) GetHeight() int64 {
  3094. if m != nil {
  3095. return m.Height
  3096. }
  3097. return 0
  3098. }
  3099. func (m *TxResult) GetIndex() uint32 {
  3100. if m != nil {
  3101. return m.Index
  3102. }
  3103. return 0
  3104. }
  3105. func (m *TxResult) GetTx() []byte {
  3106. if m != nil {
  3107. return m.Tx
  3108. }
  3109. return nil
  3110. }
  3111. func (m *TxResult) GetResult() ExecTxResult {
  3112. if m != nil {
  3113. return m.Result
  3114. }
  3115. return ExecTxResult{}
  3116. }
  3117. // Validator
  3118. type Validator struct {
  3119. Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
  3120. // PubKey pub_key = 2 [(gogoproto.nullable)=false];
  3121. Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"`
  3122. }
  3123. func (m *Validator) Reset() { *m = Validator{} }
  3124. func (m *Validator) String() string { return proto.CompactTextString(m) }
  3125. func (*Validator) ProtoMessage() {}
  3126. func (*Validator) Descriptor() ([]byte, []int) {
  3127. return fileDescriptor_252557cfdd89a31a, []int{46}
  3128. }
  3129. func (m *Validator) XXX_Unmarshal(b []byte) error {
  3130. return m.Unmarshal(b)
  3131. }
  3132. func (m *Validator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  3133. if deterministic {
  3134. return xxx_messageInfo_Validator.Marshal(b, m, deterministic)
  3135. } else {
  3136. b = b[:cap(b)]
  3137. n, err := m.MarshalToSizedBuffer(b)
  3138. if err != nil {
  3139. return nil, err
  3140. }
  3141. return b[:n], nil
  3142. }
  3143. }
  3144. func (m *Validator) XXX_Merge(src proto.Message) {
  3145. xxx_messageInfo_Validator.Merge(m, src)
  3146. }
  3147. func (m *Validator) XXX_Size() int {
  3148. return m.Size()
  3149. }
  3150. func (m *Validator) XXX_DiscardUnknown() {
  3151. xxx_messageInfo_Validator.DiscardUnknown(m)
  3152. }
  3153. var xxx_messageInfo_Validator proto.InternalMessageInfo
  3154. func (m *Validator) GetAddress() []byte {
  3155. if m != nil {
  3156. return m.Address
  3157. }
  3158. return nil
  3159. }
  3160. func (m *Validator) GetPower() int64 {
  3161. if m != nil {
  3162. return m.Power
  3163. }
  3164. return 0
  3165. }
  3166. // ValidatorUpdate
  3167. type ValidatorUpdate struct {
  3168. PubKey crypto.PublicKey `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key"`
  3169. Power int64 `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"`
  3170. }
  3171. func (m *ValidatorUpdate) Reset() { *m = ValidatorUpdate{} }
  3172. func (m *ValidatorUpdate) String() string { return proto.CompactTextString(m) }
  3173. func (*ValidatorUpdate) ProtoMessage() {}
  3174. func (*ValidatorUpdate) Descriptor() ([]byte, []int) {
  3175. return fileDescriptor_252557cfdd89a31a, []int{47}
  3176. }
  3177. func (m *ValidatorUpdate) XXX_Unmarshal(b []byte) error {
  3178. return m.Unmarshal(b)
  3179. }
  3180. func (m *ValidatorUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  3181. if deterministic {
  3182. return xxx_messageInfo_ValidatorUpdate.Marshal(b, m, deterministic)
  3183. } else {
  3184. b = b[:cap(b)]
  3185. n, err := m.MarshalToSizedBuffer(b)
  3186. if err != nil {
  3187. return nil, err
  3188. }
  3189. return b[:n], nil
  3190. }
  3191. }
  3192. func (m *ValidatorUpdate) XXX_Merge(src proto.Message) {
  3193. xxx_messageInfo_ValidatorUpdate.Merge(m, src)
  3194. }
  3195. func (m *ValidatorUpdate) XXX_Size() int {
  3196. return m.Size()
  3197. }
  3198. func (m *ValidatorUpdate) XXX_DiscardUnknown() {
  3199. xxx_messageInfo_ValidatorUpdate.DiscardUnknown(m)
  3200. }
  3201. var xxx_messageInfo_ValidatorUpdate proto.InternalMessageInfo
  3202. func (m *ValidatorUpdate) GetPubKey() crypto.PublicKey {
  3203. if m != nil {
  3204. return m.PubKey
  3205. }
  3206. return crypto.PublicKey{}
  3207. }
  3208. func (m *ValidatorUpdate) GetPower() int64 {
  3209. if m != nil {
  3210. return m.Power
  3211. }
  3212. return 0
  3213. }
  3214. // VoteInfo
  3215. type VoteInfo struct {
  3216. Validator Validator `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator"`
  3217. SignedLastBlock bool `protobuf:"varint,2,opt,name=signed_last_block,json=signedLastBlock,proto3" json:"signed_last_block,omitempty"`
  3218. }
  3219. func (m *VoteInfo) Reset() { *m = VoteInfo{} }
  3220. func (m *VoteInfo) String() string { return proto.CompactTextString(m) }
  3221. func (*VoteInfo) ProtoMessage() {}
  3222. func (*VoteInfo) Descriptor() ([]byte, []int) {
  3223. return fileDescriptor_252557cfdd89a31a, []int{48}
  3224. }
  3225. func (m *VoteInfo) XXX_Unmarshal(b []byte) error {
  3226. return m.Unmarshal(b)
  3227. }
  3228. func (m *VoteInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  3229. if deterministic {
  3230. return xxx_messageInfo_VoteInfo.Marshal(b, m, deterministic)
  3231. } else {
  3232. b = b[:cap(b)]
  3233. n, err := m.MarshalToSizedBuffer(b)
  3234. if err != nil {
  3235. return nil, err
  3236. }
  3237. return b[:n], nil
  3238. }
  3239. }
  3240. func (m *VoteInfo) XXX_Merge(src proto.Message) {
  3241. xxx_messageInfo_VoteInfo.Merge(m, src)
  3242. }
  3243. func (m *VoteInfo) XXX_Size() int {
  3244. return m.Size()
  3245. }
  3246. func (m *VoteInfo) XXX_DiscardUnknown() {
  3247. xxx_messageInfo_VoteInfo.DiscardUnknown(m)
  3248. }
  3249. var xxx_messageInfo_VoteInfo proto.InternalMessageInfo
  3250. func (m *VoteInfo) GetValidator() Validator {
  3251. if m != nil {
  3252. return m.Validator
  3253. }
  3254. return Validator{}
  3255. }
  3256. func (m *VoteInfo) GetSignedLastBlock() bool {
  3257. if m != nil {
  3258. return m.SignedLastBlock
  3259. }
  3260. return false
  3261. }
  3262. type Evidence struct {
  3263. Type EvidenceType `protobuf:"varint,1,opt,name=type,proto3,enum=tendermint.abci.EvidenceType" json:"type,omitempty"`
  3264. // The offending validator
  3265. Validator Validator `protobuf:"bytes,2,opt,name=validator,proto3" json:"validator"`
  3266. // The height when the offense occurred
  3267. Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
  3268. // The corresponding time where the offense occurred
  3269. Time time.Time `protobuf:"bytes,4,opt,name=time,proto3,stdtime" json:"time"`
  3270. // Total voting power of the validator set in case the ABCI application does
  3271. // not store historical validators.
  3272. // https://github.com/tendermint/tendermint/issues/4581
  3273. TotalVotingPower int64 `protobuf:"varint,5,opt,name=total_voting_power,json=totalVotingPower,proto3" json:"total_voting_power,omitempty"`
  3274. }
  3275. func (m *Evidence) Reset() { *m = Evidence{} }
  3276. func (m *Evidence) String() string { return proto.CompactTextString(m) }
  3277. func (*Evidence) ProtoMessage() {}
  3278. func (*Evidence) Descriptor() ([]byte, []int) {
  3279. return fileDescriptor_252557cfdd89a31a, []int{49}
  3280. }
  3281. func (m *Evidence) XXX_Unmarshal(b []byte) error {
  3282. return m.Unmarshal(b)
  3283. }
  3284. func (m *Evidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  3285. if deterministic {
  3286. return xxx_messageInfo_Evidence.Marshal(b, m, deterministic)
  3287. } else {
  3288. b = b[:cap(b)]
  3289. n, err := m.MarshalToSizedBuffer(b)
  3290. if err != nil {
  3291. return nil, err
  3292. }
  3293. return b[:n], nil
  3294. }
  3295. }
  3296. func (m *Evidence) XXX_Merge(src proto.Message) {
  3297. xxx_messageInfo_Evidence.Merge(m, src)
  3298. }
  3299. func (m *Evidence) XXX_Size() int {
  3300. return m.Size()
  3301. }
  3302. func (m *Evidence) XXX_DiscardUnknown() {
  3303. xxx_messageInfo_Evidence.DiscardUnknown(m)
  3304. }
  3305. var xxx_messageInfo_Evidence proto.InternalMessageInfo
  3306. func (m *Evidence) GetType() EvidenceType {
  3307. if m != nil {
  3308. return m.Type
  3309. }
  3310. return EvidenceType_UNKNOWN
  3311. }
  3312. func (m *Evidence) GetValidator() Validator {
  3313. if m != nil {
  3314. return m.Validator
  3315. }
  3316. return Validator{}
  3317. }
  3318. func (m *Evidence) GetHeight() int64 {
  3319. if m != nil {
  3320. return m.Height
  3321. }
  3322. return 0
  3323. }
  3324. func (m *Evidence) GetTime() time.Time {
  3325. if m != nil {
  3326. return m.Time
  3327. }
  3328. return time.Time{}
  3329. }
  3330. func (m *Evidence) GetTotalVotingPower() int64 {
  3331. if m != nil {
  3332. return m.TotalVotingPower
  3333. }
  3334. return 0
  3335. }
  3336. type Snapshot struct {
  3337. Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
  3338. Format uint32 `protobuf:"varint,2,opt,name=format,proto3" json:"format,omitempty"`
  3339. Chunks uint32 `protobuf:"varint,3,opt,name=chunks,proto3" json:"chunks,omitempty"`
  3340. Hash []byte `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"`
  3341. Metadata []byte `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"`
  3342. }
  3343. func (m *Snapshot) Reset() { *m = Snapshot{} }
  3344. func (m *Snapshot) String() string { return proto.CompactTextString(m) }
  3345. func (*Snapshot) ProtoMessage() {}
  3346. func (*Snapshot) Descriptor() ([]byte, []int) {
  3347. return fileDescriptor_252557cfdd89a31a, []int{50}
  3348. }
  3349. func (m *Snapshot) XXX_Unmarshal(b []byte) error {
  3350. return m.Unmarshal(b)
  3351. }
  3352. func (m *Snapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  3353. if deterministic {
  3354. return xxx_messageInfo_Snapshot.Marshal(b, m, deterministic)
  3355. } else {
  3356. b = b[:cap(b)]
  3357. n, err := m.MarshalToSizedBuffer(b)
  3358. if err != nil {
  3359. return nil, err
  3360. }
  3361. return b[:n], nil
  3362. }
  3363. }
  3364. func (m *Snapshot) XXX_Merge(src proto.Message) {
  3365. xxx_messageInfo_Snapshot.Merge(m, src)
  3366. }
  3367. func (m *Snapshot) XXX_Size() int {
  3368. return m.Size()
  3369. }
  3370. func (m *Snapshot) XXX_DiscardUnknown() {
  3371. xxx_messageInfo_Snapshot.DiscardUnknown(m)
  3372. }
  3373. var xxx_messageInfo_Snapshot proto.InternalMessageInfo
  3374. func (m *Snapshot) GetHeight() uint64 {
  3375. if m != nil {
  3376. return m.Height
  3377. }
  3378. return 0
  3379. }
  3380. func (m *Snapshot) GetFormat() uint32 {
  3381. if m != nil {
  3382. return m.Format
  3383. }
  3384. return 0
  3385. }
  3386. func (m *Snapshot) GetChunks() uint32 {
  3387. if m != nil {
  3388. return m.Chunks
  3389. }
  3390. return 0
  3391. }
  3392. func (m *Snapshot) GetHash() []byte {
  3393. if m != nil {
  3394. return m.Hash
  3395. }
  3396. return nil
  3397. }
  3398. func (m *Snapshot) GetMetadata() []byte {
  3399. if m != nil {
  3400. return m.Metadata
  3401. }
  3402. return nil
  3403. }
  3404. func init() {
  3405. proto.RegisterEnum("tendermint.abci.CheckTxType", CheckTxType_name, CheckTxType_value)
  3406. proto.RegisterEnum("tendermint.abci.EvidenceType", EvidenceType_name, EvidenceType_value)
  3407. proto.RegisterEnum("tendermint.abci.ResponseOfferSnapshot_Result", ResponseOfferSnapshot_Result_name, ResponseOfferSnapshot_Result_value)
  3408. proto.RegisterEnum("tendermint.abci.ResponseApplySnapshotChunk_Result", ResponseApplySnapshotChunk_Result_name, ResponseApplySnapshotChunk_Result_value)
  3409. proto.RegisterEnum("tendermint.abci.ResponseVerifyVoteExtension_Result", ResponseVerifyVoteExtension_Result_name, ResponseVerifyVoteExtension_Result_value)
  3410. proto.RegisterType((*Request)(nil), "tendermint.abci.Request")
  3411. proto.RegisterType((*RequestEcho)(nil), "tendermint.abci.RequestEcho")
  3412. proto.RegisterType((*RequestFlush)(nil), "tendermint.abci.RequestFlush")
  3413. proto.RegisterType((*RequestInfo)(nil), "tendermint.abci.RequestInfo")
  3414. proto.RegisterType((*RequestInitChain)(nil), "tendermint.abci.RequestInitChain")
  3415. proto.RegisterType((*RequestQuery)(nil), "tendermint.abci.RequestQuery")
  3416. proto.RegisterType((*RequestBeginBlock)(nil), "tendermint.abci.RequestBeginBlock")
  3417. proto.RegisterType((*RequestCheckTx)(nil), "tendermint.abci.RequestCheckTx")
  3418. proto.RegisterType((*RequestDeliverTx)(nil), "tendermint.abci.RequestDeliverTx")
  3419. proto.RegisterType((*RequestEndBlock)(nil), "tendermint.abci.RequestEndBlock")
  3420. proto.RegisterType((*RequestCommit)(nil), "tendermint.abci.RequestCommit")
  3421. proto.RegisterType((*RequestListSnapshots)(nil), "tendermint.abci.RequestListSnapshots")
  3422. proto.RegisterType((*RequestOfferSnapshot)(nil), "tendermint.abci.RequestOfferSnapshot")
  3423. proto.RegisterType((*RequestLoadSnapshotChunk)(nil), "tendermint.abci.RequestLoadSnapshotChunk")
  3424. proto.RegisterType((*RequestApplySnapshotChunk)(nil), "tendermint.abci.RequestApplySnapshotChunk")
  3425. proto.RegisterType((*RequestExtendVote)(nil), "tendermint.abci.RequestExtendVote")
  3426. proto.RegisterType((*RequestVerifyVoteExtension)(nil), "tendermint.abci.RequestVerifyVoteExtension")
  3427. proto.RegisterType((*RequestPrepareProposal)(nil), "tendermint.abci.RequestPrepareProposal")
  3428. proto.RegisterType((*RequestProcessProposal)(nil), "tendermint.abci.RequestProcessProposal")
  3429. proto.RegisterType((*RequestFinalizeBlock)(nil), "tendermint.abci.RequestFinalizeBlock")
  3430. proto.RegisterType((*Response)(nil), "tendermint.abci.Response")
  3431. proto.RegisterType((*ResponseException)(nil), "tendermint.abci.ResponseException")
  3432. proto.RegisterType((*ResponseEcho)(nil), "tendermint.abci.ResponseEcho")
  3433. proto.RegisterType((*ResponseFlush)(nil), "tendermint.abci.ResponseFlush")
  3434. proto.RegisterType((*ResponseInfo)(nil), "tendermint.abci.ResponseInfo")
  3435. proto.RegisterType((*ResponseInitChain)(nil), "tendermint.abci.ResponseInitChain")
  3436. proto.RegisterType((*ResponseQuery)(nil), "tendermint.abci.ResponseQuery")
  3437. proto.RegisterType((*ResponseBeginBlock)(nil), "tendermint.abci.ResponseBeginBlock")
  3438. proto.RegisterType((*ResponseCheckTx)(nil), "tendermint.abci.ResponseCheckTx")
  3439. proto.RegisterType((*ResponseDeliverTx)(nil), "tendermint.abci.ResponseDeliverTx")
  3440. proto.RegisterType((*ResponseEndBlock)(nil), "tendermint.abci.ResponseEndBlock")
  3441. proto.RegisterType((*ResponseCommit)(nil), "tendermint.abci.ResponseCommit")
  3442. proto.RegisterType((*ResponseListSnapshots)(nil), "tendermint.abci.ResponseListSnapshots")
  3443. proto.RegisterType((*ResponseOfferSnapshot)(nil), "tendermint.abci.ResponseOfferSnapshot")
  3444. proto.RegisterType((*ResponseLoadSnapshotChunk)(nil), "tendermint.abci.ResponseLoadSnapshotChunk")
  3445. proto.RegisterType((*ResponseApplySnapshotChunk)(nil), "tendermint.abci.ResponseApplySnapshotChunk")
  3446. proto.RegisterType((*ResponseExtendVote)(nil), "tendermint.abci.ResponseExtendVote")
  3447. proto.RegisterType((*ResponseVerifyVoteExtension)(nil), "tendermint.abci.ResponseVerifyVoteExtension")
  3448. proto.RegisterType((*ResponsePrepareProposal)(nil), "tendermint.abci.ResponsePrepareProposal")
  3449. proto.RegisterType((*ResponseProcessProposal)(nil), "tendermint.abci.ResponseProcessProposal")
  3450. proto.RegisterType((*ResponseFinalizeBlock)(nil), "tendermint.abci.ResponseFinalizeBlock")
  3451. proto.RegisterType((*CommitInfo)(nil), "tendermint.abci.CommitInfo")
  3452. proto.RegisterType((*Event)(nil), "tendermint.abci.Event")
  3453. proto.RegisterType((*EventAttribute)(nil), "tendermint.abci.EventAttribute")
  3454. proto.RegisterType((*ExecTxResult)(nil), "tendermint.abci.ExecTxResult")
  3455. proto.RegisterType((*TxResult)(nil), "tendermint.abci.TxResult")
  3456. proto.RegisterType((*Validator)(nil), "tendermint.abci.Validator")
  3457. proto.RegisterType((*ValidatorUpdate)(nil), "tendermint.abci.ValidatorUpdate")
  3458. proto.RegisterType((*VoteInfo)(nil), "tendermint.abci.VoteInfo")
  3459. proto.RegisterType((*Evidence)(nil), "tendermint.abci.Evidence")
  3460. proto.RegisterType((*Snapshot)(nil), "tendermint.abci.Snapshot")
  3461. }
  3462. func init() { proto.RegisterFile("tendermint/abci/types.proto", fileDescriptor_252557cfdd89a31a) }
  3463. var fileDescriptor_252557cfdd89a31a = []byte{
  3464. // 3225 bytes of a gzipped FileDescriptorProto
  3465. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xcd, 0x73, 0xdb, 0xd6,
  3466. 0x11, 0xe7, 0xb7, 0xc8, 0xe5, 0xa7, 0x9e, 0x14, 0x85, 0x66, 0x6c, 0xc9, 0x81, 0x27, 0x89, 0xe3,
  3467. 0x38, 0x52, 0x23, 0x4f, 0x52, 0x67, 0x92, 0xb6, 0x23, 0xd2, 0x54, 0x28, 0x4b, 0x91, 0x14, 0x88,
  3468. 0x72, 0x26, 0x6d, 0x6a, 0x04, 0x24, 0x9e, 0x48, 0xc4, 0x24, 0x80, 0x00, 0x20, 0x23, 0xf9, 0xd4,
  3469. 0xe9, 0x4c, 0x2e, 0x99, 0x76, 0x9a, 0x63, 0x67, 0x3a, 0x99, 0x5e, 0x7a, 0xe8, 0x1f, 0xd0, 0x43,
  3470. 0x4f, 0x3d, 0xf5, 0x90, 0x43, 0x0f, 0xb9, 0xb5, 0xd3, 0x43, 0xda, 0x49, 0x6e, 0xfd, 0x07, 0x7a,
  3471. 0xea, 0xc7, 0xbc, 0x0f, 0x7c, 0x91, 0x04, 0x3f, 0x62, 0xbb, 0x97, 0xde, 0xf0, 0x16, 0xbb, 0x8b,
  3472. 0xf7, 0x16, 0xef, 0xed, 0xee, 0x6f, 0xf7, 0xc1, 0x33, 0x36, 0xd6, 0x14, 0x6c, 0xf6, 0x55, 0xcd,
  3473. 0xde, 0x92, 0x5b, 0x6d, 0x75, 0xcb, 0xbe, 0x30, 0xb0, 0xb5, 0x69, 0x98, 0xba, 0xad, 0xa3, 0xa2,
  3474. 0xf7, 0x72, 0x93, 0xbc, 0xac, 0x5c, 0xf1, 0x71, 0xb7, 0xcd, 0x0b, 0xc3, 0xd6, 0xb7, 0x0c, 0x53,
  3475. 0xd7, 0xcf, 0x18, 0x7f, 0xe5, 0xb2, 0xef, 0x35, 0xd5, 0xe3, 0xd7, 0x16, 0x78, 0xcb, 0x85, 0x1f,
  3476. 0xe0, 0x0b, 0xe7, 0xed, 0x95, 0x31, 0x59, 0x43, 0x36, 0xe5, 0xbe, 0xf3, 0x7a, 0xa3, 0xa3, 0xeb,
  3477. 0x9d, 0x1e, 0xde, 0xa2, 0xa3, 0xd6, 0xe0, 0x6c, 0xcb, 0x56, 0xfb, 0xd8, 0xb2, 0xe5, 0xbe, 0xc1,
  3478. 0x19, 0x56, 0x3b, 0x7a, 0x47, 0xa7, 0x8f, 0x5b, 0xe4, 0x89, 0x51, 0x85, 0xff, 0x00, 0x2c, 0x89,
  3479. 0xf8, 0xa3, 0x01, 0xb6, 0x6c, 0xb4, 0x0d, 0x09, 0xdc, 0xee, 0xea, 0xe5, 0xe8, 0xd5, 0xe8, 0xf5,
  3480. 0xec, 0xf6, 0xe5, 0xcd, 0x91, 0xc5, 0x6d, 0x72, 0xbe, 0x7a, 0xbb, 0xab, 0x37, 0x22, 0x22, 0xe5,
  3481. 0x45, 0xaf, 0x42, 0xf2, 0xac, 0x37, 0xb0, 0xba, 0xe5, 0x18, 0x15, 0xba, 0x12, 0x26, 0xb4, 0x4b,
  3482. 0x98, 0x1a, 0x11, 0x91, 0x71, 0x93, 0x4f, 0xa9, 0xda, 0x99, 0x5e, 0x8e, 0x4f, 0xff, 0xd4, 0x9e,
  3483. 0x76, 0x46, 0x3f, 0x45, 0x78, 0x51, 0x15, 0x40, 0xd5, 0x54, 0x5b, 0x6a, 0x77, 0x65, 0x55, 0x2b,
  3484. 0x27, 0xa8, 0xe4, 0xb3, 0xe1, 0x92, 0xaa, 0x5d, 0x23, 0x8c, 0x8d, 0x88, 0x98, 0x51, 0x9d, 0x01,
  3485. 0x99, 0xee, 0x47, 0x03, 0x6c, 0x5e, 0x94, 0x93, 0xd3, 0xa7, 0xfb, 0x0e, 0x61, 0x22, 0xd3, 0xa5,
  3486. 0xdc, 0x68, 0x0f, 0xb2, 0x2d, 0xdc, 0x51, 0x35, 0xa9, 0xd5, 0xd3, 0xdb, 0x0f, 0xca, 0x29, 0x2a,
  3487. 0x2c, 0x84, 0x09, 0x57, 0x09, 0x6b, 0x95, 0x70, 0x56, 0x63, 0xe5, 0x68, 0x23, 0x22, 0x42, 0xcb,
  3488. 0xa5, 0xa0, 0x37, 0x21, 0xdd, 0xee, 0xe2, 0xf6, 0x03, 0xc9, 0x3e, 0x2f, 0x2f, 0x51, 0x3d, 0x1b,
  3489. 0x61, 0x7a, 0x6a, 0x84, 0xaf, 0x79, 0xde, 0x88, 0x88, 0x4b, 0x6d, 0xf6, 0x88, 0x76, 0x01, 0x14,
  3490. 0xdc, 0x53, 0x87, 0xd8, 0x24, 0xf2, 0xe9, 0xe9, 0x36, 0xb8, 0xc3, 0x38, 0x9b, 0xe7, 0x7c, 0x1a,
  3491. 0x19, 0xc5, 0x21, 0xa0, 0x1a, 0x64, 0xb0, 0xa6, 0xf0, 0xe5, 0x64, 0xa8, 0x9a, 0xab, 0xa1, 0xff,
  3492. 0x5b, 0x53, 0xfc, 0x8b, 0x49, 0x63, 0x3e, 0x46, 0xb7, 0x21, 0xd5, 0xd6, 0xfb, 0x7d, 0xd5, 0x2e,
  3493. 0x03, 0xd5, 0xb0, 0x1e, 0xba, 0x10, 0xca, 0xd5, 0x88, 0x88, 0x9c, 0x1f, 0x1d, 0x42, 0xa1, 0xa7,
  3494. 0x5a, 0xb6, 0x64, 0x69, 0xb2, 0x61, 0x75, 0x75, 0xdb, 0x2a, 0x67, 0xa9, 0x86, 0xe7, 0xc2, 0x34,
  3495. 0x1c, 0xa8, 0x96, 0x7d, 0xe2, 0x30, 0x37, 0x22, 0x62, 0xbe, 0xe7, 0x27, 0x10, 0x7d, 0xfa, 0xd9,
  3496. 0x19, 0x36, 0x5d, 0x85, 0xe5, 0xdc, 0x74, 0x7d, 0x47, 0x84, 0xdb, 0x91, 0x27, 0xfa, 0x74, 0x3f,
  3497. 0x01, 0xfd, 0x08, 0x56, 0x7a, 0xba, 0xac, 0xb8, 0xea, 0xa4, 0x76, 0x77, 0xa0, 0x3d, 0x28, 0xe7,
  3498. 0xa9, 0xd2, 0x17, 0x43, 0x27, 0xa9, 0xcb, 0x8a, 0xa3, 0xa2, 0x46, 0x04, 0x1a, 0x11, 0x71, 0xb9,
  3499. 0x37, 0x4a, 0x44, 0xf7, 0x61, 0x55, 0x36, 0x8c, 0xde, 0xc5, 0xa8, 0xf6, 0x02, 0xd5, 0x7e, 0x23,
  3500. 0x4c, 0xfb, 0x0e, 0x91, 0x19, 0x55, 0x8f, 0xe4, 0x31, 0x2a, 0x6a, 0x42, 0xc9, 0x30, 0xb1, 0x21,
  3501. 0x9b, 0x58, 0x32, 0x4c, 0xdd, 0xd0, 0x2d, 0xb9, 0x57, 0x2e, 0x52, 0xdd, 0x2f, 0x84, 0xe9, 0x3e,
  3502. 0x66, 0xfc, 0xc7, 0x9c, 0xbd, 0x11, 0x11, 0x8b, 0x46, 0x90, 0xc4, 0xb4, 0xea, 0x6d, 0x6c, 0x59,
  3503. 0x9e, 0xd6, 0xd2, 0x2c, 0xad, 0x94, 0x3f, 0xa8, 0x35, 0x40, 0x42, 0x75, 0xc8, 0xe2, 0x73, 0x22,
  3504. 0x2e, 0x0d, 0x75, 0x1b, 0x97, 0x97, 0xa7, 0x1f, 0xac, 0x3a, 0x65, 0xbd, 0xa7, 0xdb, 0x98, 0x1c,
  3505. 0x2a, 0xec, 0x8e, 0x90, 0x0c, 0x4f, 0x0d, 0xb1, 0xa9, 0x9e, 0x5d, 0x50, 0x35, 0x12, 0x7d, 0x63,
  3506. 0xa9, 0xba, 0x56, 0x46, 0x54, 0xe1, 0x4b, 0x61, 0x0a, 0xef, 0x51, 0x21, 0xa2, 0xa2, 0xee, 0x88,
  3507. 0x34, 0x22, 0xe2, 0xca, 0x70, 0x9c, 0x4c, 0xb6, 0xd8, 0x99, 0xaa, 0xc9, 0x3d, 0xf5, 0x21, 0xe6,
  3508. 0xc7, 0x66, 0x65, 0xfa, 0x16, 0xdb, 0xe5, 0xdc, 0xf4, 0xac, 0x90, 0x2d, 0x76, 0xe6, 0x27, 0x54,
  3509. 0x97, 0x20, 0x39, 0x94, 0x7b, 0x03, 0x2c, 0xbc, 0x00, 0x59, 0x9f, 0x63, 0x45, 0x65, 0x58, 0xea,
  3510. 0x63, 0xcb, 0x92, 0x3b, 0x98, 0xfa, 0xe1, 0x8c, 0xe8, 0x0c, 0x85, 0x02, 0xe4, 0xfc, 0xce, 0x54,
  3511. 0xf8, 0x2c, 0xea, 0x4a, 0x12, 0x3f, 0x49, 0x24, 0x87, 0xd8, 0xa4, 0xcb, 0xe6, 0x92, 0x7c, 0x88,
  3512. 0xae, 0x41, 0x9e, 0x4e, 0x59, 0x72, 0xde, 0x13, 0x67, 0x9d, 0x10, 0x73, 0x94, 0x78, 0x8f, 0x33,
  3513. 0x6d, 0x40, 0xd6, 0xd8, 0x36, 0x5c, 0x96, 0x38, 0x65, 0x01, 0x63, 0xdb, 0x70, 0x18, 0x9e, 0x85,
  3514. 0x1c, 0x59, 0x9f, 0xcb, 0x91, 0xa0, 0x1f, 0xc9, 0x12, 0x1a, 0x67, 0x11, 0xfe, 0x14, 0x83, 0xd2,
  3515. 0xa8, 0x03, 0x46, 0xb7, 0x21, 0x41, 0x62, 0x11, 0x0f, 0x2b, 0x95, 0x4d, 0x16, 0xa8, 0x36, 0x9d,
  3516. 0x40, 0xb5, 0xd9, 0x74, 0x02, 0x55, 0x35, 0xfd, 0xc5, 0x57, 0x1b, 0x91, 0xcf, 0xfe, 0xb6, 0x11,
  3517. 0x15, 0xa9, 0x04, 0xba, 0x44, 0x7c, 0xa5, 0xac, 0x6a, 0x92, 0xaa, 0xd0, 0x29, 0x67, 0x88, 0x23,
  3518. 0x94, 0x55, 0x6d, 0x4f, 0x41, 0x07, 0x50, 0x6a, 0xeb, 0x9a, 0x85, 0x35, 0x6b, 0x60, 0x49, 0x2c,
  3519. 0x10, 0xf2, 0x60, 0x12, 0x70, 0x87, 0x2c, 0xbc, 0xd6, 0x1c, 0xce, 0x63, 0xca, 0x28, 0x16, 0xdb,
  3520. 0x41, 0x02, 0x71, 0xab, 0x43, 0xb9, 0xa7, 0x2a, 0xb2, 0xad, 0x9b, 0x56, 0x39, 0x71, 0x35, 0x3e,
  3521. 0xd1, 0x1f, 0xde, 0x73, 0x58, 0x4e, 0x0d, 0x45, 0xb6, 0x71, 0x35, 0x41, 0xa6, 0x2b, 0xfa, 0x24,
  3522. 0xd1, 0xf3, 0x50, 0x94, 0x0d, 0x43, 0xb2, 0x6c, 0xd9, 0xc6, 0x52, 0xeb, 0xc2, 0xc6, 0x16, 0x0d,
  3523. 0x34, 0x39, 0x31, 0x2f, 0x1b, 0xc6, 0x09, 0xa1, 0x56, 0x09, 0x11, 0x3d, 0x07, 0x05, 0x12, 0x93,
  3524. 0x54, 0xb9, 0x27, 0x75, 0xb1, 0xda, 0xe9, 0xda, 0x34, 0xa4, 0xc4, 0xc5, 0x3c, 0xa7, 0x36, 0x28,
  3525. 0x51, 0x50, 0xdc, 0x3f, 0x4e, 0xe3, 0x11, 0x42, 0x90, 0x50, 0x64, 0x5b, 0xa6, 0x96, 0xcc, 0x89,
  3526. 0xf4, 0x99, 0xd0, 0x0c, 0xd9, 0xee, 0x72, 0xfb, 0xd0, 0x67, 0xb4, 0x06, 0x29, 0xae, 0x36, 0x4e,
  3527. 0xd5, 0xf2, 0x11, 0x5a, 0x85, 0xa4, 0x61, 0xea, 0x43, 0x4c, 0x7f, 0x5d, 0x5a, 0x64, 0x03, 0xe1,
  3528. 0x27, 0x31, 0x58, 0x1e, 0x8b, 0x5c, 0x44, 0x6f, 0x57, 0xb6, 0xba, 0xce, 0xb7, 0xc8, 0x33, 0x7a,
  3529. 0x8d, 0xe8, 0x95, 0x15, 0x6c, 0xf2, 0x68, 0x5f, 0x1e, 0x37, 0x75, 0x83, 0xbe, 0xe7, 0xa6, 0xe1,
  3530. 0xdc, 0x68, 0x1f, 0x4a, 0x3d, 0xd9, 0xb2, 0x25, 0xe6, 0xfd, 0x25, 0x5f, 0xe4, 0x7f, 0x66, 0xcc,
  3531. 0xc8, 0x2c, 0x56, 0x90, 0x0d, 0xcd, 0x95, 0x14, 0x88, 0xa8, 0x47, 0x45, 0x22, 0xac, 0xb6, 0x2e,
  3532. 0x1e, 0xca, 0x9a, 0xad, 0x6a, 0x58, 0x1a, 0xfb, 0x6b, 0x97, 0xc6, 0x14, 0xd6, 0x87, 0xaa, 0x82,
  3533. 0xb5, 0xb6, 0xf3, 0xbb, 0x56, 0x5c, 0x61, 0xf7, 0x77, 0x5a, 0x82, 0x08, 0x85, 0x60, 0xcc, 0x45,
  3534. 0x05, 0x88, 0xd9, 0xe7, 0x7c, 0xf1, 0x31, 0xfb, 0x1c, 0x7d, 0x07, 0x12, 0x64, 0x81, 0x74, 0xe1,
  3535. 0x85, 0x09, 0x09, 0x0b, 0x97, 0x6b, 0x5e, 0x18, 0x58, 0xa4, 0x9c, 0x82, 0xe0, 0x1e, 0x05, 0x37,
  3536. 0x0e, 0x8f, 0x6a, 0x15, 0x5e, 0x84, 0xe2, 0x48, 0x90, 0xf5, 0xfd, 0xbb, 0xa8, 0xff, 0xdf, 0x09,
  3537. 0x45, 0xc8, 0x07, 0xa2, 0xa9, 0xb0, 0x06, 0xab, 0x93, 0x82, 0xa3, 0xd0, 0x75, 0xe9, 0x81, 0x20,
  3538. 0x87, 0x5e, 0x85, 0xb4, 0x1b, 0x1d, 0xd9, 0x51, 0x1c, 0xb7, 0x95, 0xc3, 0x2c, 0xba, 0xac, 0xe4,
  3539. 0x0c, 0x92, 0x2d, 0x4d, 0xf7, 0x42, 0x8c, 0x4e, 0x7c, 0x49, 0x36, 0x8c, 0x86, 0x6c, 0x75, 0x85,
  3540. 0x0f, 0xa0, 0x1c, 0x16, 0xf9, 0x46, 0x96, 0x91, 0x70, 0xb7, 0xe0, 0x1a, 0xa4, 0xce, 0x74, 0xb3,
  3541. 0x2f, 0xdb, 0x54, 0x59, 0x5e, 0xe4, 0x23, 0xb2, 0x35, 0x59, 0x14, 0x8c, 0x53, 0x32, 0x1b, 0x08,
  3542. 0x12, 0x5c, 0x0a, 0x8d, 0x7e, 0x44, 0x44, 0xd5, 0x14, 0xcc, 0xec, 0x99, 0x17, 0xd9, 0xc0, 0x53,
  3543. 0xc4, 0x26, 0xcb, 0x06, 0xe4, 0xb3, 0x16, 0x5d, 0x2b, 0xd5, 0x9f, 0x11, 0xf9, 0x48, 0xf8, 0x81,
  3544. 0xbb, 0xf5, 0xbd, 0xd8, 0x82, 0x6e, 0x40, 0x82, 0x46, 0x23, 0x66, 0xa5, 0xb5, 0xf1, 0x4d, 0x4e,
  3545. 0xb8, 0x44, 0xca, 0x23, 0x34, 0xa0, 0x12, 0x1e, 0x4b, 0x16, 0xd2, 0xf4, 0xf3, 0x28, 0xac, 0x4d,
  3546. 0x0e, 0xc7, 0xe8, 0x0a, 0x00, 0xf3, 0xdf, 0xfc, 0xf4, 0xc7, 0xaf, 0xe7, 0xc4, 0x0c, 0xa5, 0xdc,
  3547. 0x21, 0x2e, 0xe0, 0x79, 0x28, 0x7a, 0xaf, 0x25, 0x4b, 0x7d, 0xc8, 0xb6, 0x69, 0x5c, 0xcc, 0xbb,
  3548. 0x3c, 0x27, 0xea, 0x43, 0x8c, 0x6e, 0x42, 0x92, 0x7c, 0x89, 0x38, 0xca, 0xf8, 0x94, 0xe9, 0x30,
  3549. 0x26, 0xe1, 0xd7, 0x31, 0xdf, 0x7c, 0x82, 0x51, 0xfb, 0x71, 0xfa, 0x86, 0x12, 0xc4, 0xed, 0x73,
  3550. 0x36, 0xa5, 0x9c, 0x48, 0x1e, 0xd1, 0x09, 0xac, 0xb2, 0x0c, 0x03, 0x2b, 0x92, 0xcf, 0x6d, 0xf0,
  3551. 0x8c, 0x7f, 0x0e, 0x8f, 0x81, 0x1c, 0xf1, 0x03, 0xd7, 0x73, 0x84, 0x7a, 0x8d, 0xe4, 0x23, 0x78,
  3552. 0x8d, 0x5f, 0xc5, 0xdc, 0xa3, 0x16, 0x08, 0xf6, 0x4f, 0xd8, 0x3e, 0xef, 0xc0, 0x8a, 0x82, 0xdb,
  3553. 0xaa, 0xf2, 0x6d, 0xcd, 0xb3, 0xcc, 0xa5, 0x9f, 0xb0, 0x75, 0xfe, 0x9c, 0x85, 0xb4, 0x88, 0x2d,
  3554. 0x83, 0x84, 0x5a, 0x54, 0x85, 0x0c, 0x3e, 0x6f, 0x63, 0xc3, 0x76, 0xb2, 0x93, 0xc9, 0x59, 0x1e,
  3555. 0xe3, 0xae, 0x3b, 0x9c, 0x04, 0xb3, 0xb8, 0x62, 0xe8, 0x16, 0x87, 0xa7, 0xe1, 0x48, 0x93, 0x8b,
  3556. 0xfb, 0xf1, 0xe9, 0x6b, 0x0e, 0x3e, 0x8d, 0x87, 0x42, 0x14, 0x26, 0x35, 0x02, 0x50, 0x6f, 0x71,
  3557. 0x80, 0x9a, 0x98, 0xf1, 0xb1, 0x00, 0x42, 0xad, 0x05, 0x10, 0x6a, 0x72, 0xc6, 0x32, 0x43, 0x20,
  3558. 0xea, 0x6b, 0x0e, 0x44, 0x4d, 0xcd, 0x98, 0xf1, 0x08, 0x46, 0xbd, 0x1b, 0xc4, 0xa8, 0x0c, 0x5b,
  3559. 0x5e, 0x0b, 0x95, 0x9e, 0x0a, 0x52, 0xbf, 0xe7, 0x03, 0xa9, 0xe9, 0x50, 0x74, 0xc8, 0x14, 0x4d,
  3560. 0x40, 0xa9, 0x6f, 0x05, 0x50, 0x6a, 0x66, 0x86, 0x1d, 0xa6, 0xc0, 0xd4, 0x3b, 0x7e, 0x98, 0x0a,
  3561. 0xa1, 0x68, 0x97, 0xff, 0xf7, 0x30, 0x9c, 0xfa, 0xba, 0x8b, 0x53, 0xb3, 0xa1, 0x80, 0x9b, 0xaf,
  3562. 0x65, 0x14, 0xa8, 0x1e, 0x8d, 0x01, 0x55, 0x06, 0x2c, 0x9f, 0x0f, 0x55, 0x31, 0x03, 0xa9, 0x1e,
  3563. 0x8d, 0x21, 0xd5, 0xfc, 0x0c, 0x85, 0x33, 0xa0, 0xea, 0xfb, 0x93, 0xa1, 0x6a, 0x38, 0x98, 0xe4,
  3564. 0xd3, 0x9c, 0x0f, 0xab, 0x4a, 0x21, 0x58, 0xb5, 0x18, 0x8a, 0xab, 0x98, 0xfa, 0xb9, 0xc1, 0xea,
  3565. 0xe9, 0x04, 0xb0, 0xca, 0x60, 0xe5, 0xf5, 0x50, 0xe5, 0x73, 0xa0, 0xd5, 0xd3, 0x09, 0x68, 0x75,
  3566. 0x79, 0xa6, 0xda, 0x99, 0x70, 0x75, 0x37, 0x08, 0x57, 0xd1, 0x8c, 0x33, 0x16, 0x8a, 0x57, 0x5b,
  3567. 0x61, 0x78, 0x95, 0x61, 0xca, 0x9b, 0xa1, 0x1a, 0x17, 0x00, 0xac, 0x47, 0x63, 0x80, 0x75, 0x75,
  3568. 0xc6, 0x4e, 0x9b, 0x17, 0xb1, 0xbe, 0x48, 0x92, 0xa6, 0x11, 0x57, 0x4d, 0xf2, 0x2e, 0x6c, 0x9a,
  3569. 0xba, 0xc9, 0xb1, 0x27, 0x1b, 0x08, 0xd7, 0x09, 0x82, 0xf1, 0xdc, 0xf2, 0x14, 0x74, 0x4b, 0xf3,
  3570. 0x5b, 0x9f, 0x2b, 0x16, 0x7e, 0x1f, 0xf5, 0x64, 0x69, 0xe2, 0xef, 0x47, 0x3f, 0x19, 0x8e, 0x7e,
  3571. 0x7c, 0x98, 0x37, 0x16, 0xc4, 0xbc, 0x1b, 0x90, 0x25, 0x79, 0xeb, 0x08, 0x9c, 0x95, 0x0d, 0x17,
  3572. 0xce, 0xde, 0x80, 0x65, 0x1a, 0x3e, 0x59, 0xea, 0xc4, 0x93, 0xd5, 0x04, 0xcd, 0x9b, 0x8a, 0xe4,
  3573. 0x05, 0xb3, 0x02, 0xcb, 0x5a, 0x5f, 0x86, 0x15, 0x1f, 0xaf, 0x9b, 0x0f, 0x33, 0x6c, 0x57, 0x72,
  3574. 0xb9, 0x77, 0x78, 0x62, 0xfc, 0xc7, 0xa8, 0x67, 0x21, 0x0f, 0x07, 0x4f, 0x82, 0xac, 0xd1, 0xc7,
  3575. 0x04, 0x59, 0x63, 0xdf, 0x1a, 0xb2, 0xfa, 0xf3, 0xfb, 0x78, 0x30, 0xbf, 0xff, 0x67, 0xd4, 0xfb,
  3576. 0x27, 0x2e, 0x00, 0x6d, 0xeb, 0x0a, 0xe6, 0x19, 0x37, 0x7d, 0x26, 0x09, 0x4a, 0x4f, 0xef, 0xf0,
  3577. 0xbc, 0x9a, 0x3c, 0x12, 0x2e, 0x37, 0x76, 0x66, 0x78, 0x68, 0x74, 0x93, 0xf5, 0x24, 0xb5, 0x30,
  3578. 0x4f, 0xd6, 0x4b, 0x10, 0x7f, 0x80, 0x59, 0xa4, 0xcb, 0x89, 0xe4, 0x91, 0xf0, 0xd1, 0x4d, 0x46,
  3579. 0xe3, 0x57, 0x4e, 0x64, 0x03, 0x74, 0x1b, 0x32, 0xb4, 0x8c, 0x2e, 0xe9, 0x86, 0xc5, 0x03, 0x52,
  3580. 0x20, 0xd1, 0x61, 0xd5, 0xf2, 0xcd, 0x63, 0xc2, 0x73, 0x64, 0x58, 0x62, 0xda, 0xe0, 0x4f, 0x3e,
  3581. 0x1c, 0x92, 0x09, 0x40, 0xe1, 0xcb, 0x90, 0x21, 0xb3, 0xb7, 0x0c, 0xb9, 0x8d, 0x69, 0x64, 0xc9,
  3582. 0x88, 0x1e, 0x41, 0xb8, 0x0f, 0x68, 0x3c, 0x4e, 0xa2, 0x06, 0xa4, 0xf0, 0x10, 0x6b, 0xb6, 0x45,
  3583. 0x53, 0xf0, 0x91, 0x04, 0x9a, 0xe7, 0x45, 0x58, 0xb3, 0xab, 0x65, 0x62, 0xe4, 0x7f, 0x7c, 0xb5,
  3584. 0x51, 0x62, 0xdc, 0x37, 0xf5, 0xbe, 0x6a, 0xe3, 0xbe, 0x61, 0x5f, 0x88, 0x5c, 0x5e, 0xf8, 0x6b,
  3585. 0x8c, 0x00, 0xbf, 0x40, 0xfc, 0x9c, 0x68, 0x5b, 0x67, 0xcb, 0xc7, 0x7c, 0x80, 0x7f, 0x3e, 0x7b,
  3586. 0x5f, 0x01, 0xe8, 0xc8, 0x96, 0xf4, 0xb1, 0xac, 0xd9, 0x58, 0xe1, 0x46, 0xcf, 0x74, 0x64, 0xeb,
  3587. 0x5d, 0x4a, 0x20, 0x7f, 0x9d, 0xbc, 0x1e, 0x58, 0x58, 0xe1, 0xa5, 0x87, 0xa5, 0x8e, 0x6c, 0x9d,
  3588. 0x5a, 0x58, 0xf1, 0xad, 0x72, 0xe9, 0xd1, 0x56, 0x19, 0xb4, 0x71, 0x7a, 0xc4, 0xc6, 0x3e, 0x48,
  3589. 0x96, 0xf1, 0x43, 0x32, 0x54, 0x81, 0xb4, 0x61, 0xaa, 0xba, 0xa9, 0xda, 0x17, 0xf4, 0xc7, 0xc4,
  3590. 0x45, 0x77, 0x8c, 0xae, 0x41, 0xbe, 0x8f, 0xfb, 0x86, 0xae, 0xf7, 0x24, 0xe6, 0x6c, 0xb2, 0x54,
  3591. 0x34, 0xc7, 0x89, 0x75, 0xea, 0x73, 0x3e, 0x89, 0x79, 0xa7, 0xcf, 0x83, 0xde, 0x8f, 0xd7, 0xbc,
  3592. 0xeb, 0x13, 0xcc, 0xeb, 0xa3, 0x90, 0x45, 0x8c, 0xd8, 0xd7, 0x1d, 0xff, 0xaf, 0x0c, 0x2c, 0xfc,
  3593. 0x8c, 0x16, 0xe3, 0x82, 0xb9, 0x11, 0x3a, 0x81, 0x65, 0xf7, 0xf0, 0x4b, 0x03, 0xea, 0x14, 0x9c,
  3594. 0xed, 0x3c, 0xaf, 0xf7, 0x28, 0x0d, 0x83, 0x64, 0x0b, 0xbd, 0x07, 0x4f, 0x8f, 0x78, 0x36, 0x57,
  3595. 0x75, 0x6c, 0x5e, 0x07, 0xf7, 0x54, 0xd0, 0xc1, 0x39, 0xaa, 0x3d, 0x63, 0xc5, 0x1f, 0xf1, 0xcc,
  3596. 0xed, 0x41, 0x21, 0x98, 0xe6, 0x4d, 0xfc, 0xfd, 0xd7, 0x20, 0x6f, 0x62, 0x5b, 0x56, 0x35, 0x29,
  3597. 0x50, 0x41, 0xcb, 0x31, 0x22, 0xaf, 0xcb, 0x1d, 0xc3, 0x53, 0x13, 0xd3, 0x3d, 0xf4, 0x5d, 0xc8,
  3598. 0x78, 0x99, 0x62, 0x34, 0x04, 0x3c, 0xb9, 0x45, 0x16, 0x8f, 0x57, 0xf8, 0x43, 0xd4, 0x53, 0x19,
  3599. 0x2c, 0xdb, 0xd4, 0x21, 0x65, 0x62, 0x6b, 0xd0, 0x63, 0x85, 0x94, 0xc2, 0xf6, 0xcb, 0xf3, 0x25,
  3600. 0x8a, 0x84, 0x3a, 0xe8, 0xd9, 0x22, 0x17, 0x16, 0xee, 0x43, 0x8a, 0x51, 0x50, 0x16, 0x96, 0x4e,
  3601. 0x0f, 0xf7, 0x0f, 0x8f, 0xde, 0x3d, 0x2c, 0x45, 0x10, 0x40, 0x6a, 0xa7, 0x56, 0xab, 0x1f, 0x37,
  3602. 0x4b, 0x51, 0x94, 0x81, 0xe4, 0x4e, 0xf5, 0x48, 0x6c, 0x96, 0x62, 0x84, 0x2c, 0xd6, 0xef, 0xd6,
  3603. 0x6b, 0xcd, 0x52, 0x1c, 0x2d, 0x43, 0x9e, 0x3d, 0x4b, 0xbb, 0x47, 0xe2, 0xdb, 0x3b, 0xcd, 0x52,
  3604. 0xc2, 0x47, 0x3a, 0xa9, 0x1f, 0xde, 0xa9, 0x8b, 0xa5, 0xa4, 0xf0, 0x0a, 0x5c, 0x0a, 0x4d, 0x2d,
  3605. 0xbd, 0x9a, 0x4c, 0xd4, 0x57, 0x93, 0x11, 0x7e, 0x19, 0x83, 0x4a, 0x78, 0xbe, 0x88, 0xee, 0x8e,
  3606. 0x2c, 0x7c, 0x7b, 0x81, 0x64, 0x73, 0x64, 0xf5, 0xe8, 0x39, 0x28, 0x98, 0xf8, 0x0c, 0xdb, 0xed,
  3607. 0x2e, 0xcb, 0x5f, 0x59, 0xc0, 0xcc, 0x8b, 0x79, 0x4e, 0xa5, 0x42, 0x16, 0x63, 0xfb, 0x10, 0xb7,
  3608. 0x6d, 0x89, 0xf9, 0x22, 0xb6, 0xe9, 0x32, 0x84, 0x8d, 0x50, 0x4f, 0x18, 0x51, 0xf8, 0x60, 0x21,
  3609. 0x5b, 0x66, 0x20, 0x29, 0xd6, 0x9b, 0xe2, 0x7b, 0xa5, 0x38, 0x42, 0x50, 0xa0, 0x8f, 0xd2, 0xc9,
  3610. 0xe1, 0xce, 0xf1, 0x49, 0xe3, 0x88, 0xd8, 0x72, 0x05, 0x8a, 0x8e, 0x2d, 0x1d, 0x62, 0x52, 0x78,
  3611. 0xdf, 0x8b, 0x3f, 0xbe, 0xba, 0xd4, 0x2e, 0x14, 0x46, 0xd2, 0xc5, 0xe8, 0x38, 0x9e, 0xf1, 0x0a,
  3612. 0x39, 0x6e, 0x2a, 0x28, 0xe6, 0x87, 0xfe, 0xa1, 0xf0, 0x9b, 0x28, 0x3c, 0x33, 0x25, 0xa1, 0x44,
  3613. 0xfb, 0x23, 0x96, 0xbf, 0xb5, 0x48, 0x3a, 0x3a, 0xba, 0xf1, 0x6e, 0xcf, 0x65, 0xac, 0x93, 0x83,
  3614. 0x9d, 0x93, 0x46, 0x70, 0xe3, 0x09, 0xb7, 0xe1, 0xe9, 0x90, 0x8c, 0x7f, 0x46, 0x41, 0x4c, 0xf8,
  3615. 0x5d, 0xcc, 0x2f, 0x1a, 0x4c, 0xe1, 0xd7, 0x20, 0x25, 0xb7, 0x49, 0xd2, 0x4a, 0x17, 0x97, 0x16,
  3616. 0xf9, 0x68, 0x4a, 0x9d, 0x13, 0xbd, 0x09, 0x60, 0x9f, 0x4b, 0x6c, 0x3d, 0x8e, 0x1f, 0x1a, 0xaf,
  3617. 0x08, 0xd4, 0xcf, 0x71, 0xbb, 0x79, 0xce, 0x57, 0x9f, 0xb1, 0xf9, 0x93, 0x85, 0xde, 0x9e, 0xe4,
  3618. 0x71, 0xe7, 0x6c, 0x31, 0x2c, 0xe6, 0x6b, 0x93, 0x8f, 0xe6, 0x6b, 0x85, 0x5f, 0xc4, 0x3d, 0x27,
  3619. 0x14, 0x2c, 0x68, 0x3d, 0xb6, 0xcc, 0x67, 0xc4, 0x96, 0xb1, 0x05, 0x6d, 0x39, 0x31, 0x7a, 0xc5,
  3620. 0x9f, 0x5c, 0xf4, 0x4a, 0x3c, 0x62, 0xf4, 0xf2, 0x6f, 0xaa, 0x64, 0x70, 0x53, 0x8d, 0x05, 0x9a,
  3621. 0xd4, 0x84, 0x40, 0xf3, 0x1e, 0x80, 0xaf, 0xf3, 0xb1, 0x0a, 0x49, 0x53, 0x1f, 0x68, 0x0a, 0xdd,
  3622. 0xb9, 0x49, 0x91, 0x0d, 0xd0, 0xab, 0x4e, 0x55, 0x37, 0x16, 0x12, 0x6f, 0xc8, 0xf1, 0xf4, 0x95,
  3623. 0xff, 0x78, 0x79, 0xf7, 0x21, 0x24, 0xe9, 0x3f, 0x23, 0x51, 0x90, 0x76, 0x36, 0x38, 0xac, 0x22,
  3624. 0xcf, 0xe8, 0xc7, 0x00, 0xb2, 0x6d, 0x9b, 0x6a, 0x6b, 0xe0, 0x29, 0xde, 0x98, 0xfc, 0xcf, 0x77,
  3625. 0x1c, 0xbe, 0xea, 0x65, 0xfe, 0xf3, 0x57, 0x3d, 0x51, 0xdf, 0x06, 0xf0, 0x29, 0x14, 0x0e, 0xa1,
  3626. 0x10, 0x94, 0x75, 0x80, 0x00, 0x9b, 0x43, 0x10, 0x08, 0x30, 0x5c, 0xc7, 0x81, 0x80, 0x0b, 0x23,
  3627. 0xe2, 0xac, 0x83, 0x45, 0x07, 0xc2, 0xbf, 0xa3, 0x90, 0xf3, 0x6f, 0x99, 0xff, 0xb7, 0x5c, 0x5a,
  3628. 0xf8, 0x24, 0x0a, 0x69, 0x77, 0xf1, 0x21, 0x1d, 0x24, 0xcf, 0x76, 0x31, 0x7f, 0xbf, 0x84, 0xb5,
  3629. 0xa4, 0xe2, 0x6e, 0xa3, 0xeb, 0x0d, 0xd7, 0xf9, 0x87, 0x95, 0x3e, 0xfd, 0x96, 0x76, 0x8a, 0xd5,
  3630. 0xdc, 0xd9, 0xbf, 0x01, 0x19, 0xf7, 0xd4, 0x11, 0x6c, 0x2e, 0x2b, 0x8a, 0x89, 0x2d, 0x8b, 0xc7,
  3631. 0x7d, 0x67, 0x48, 0xfb, 0x90, 0xfa, 0xc7, 0xbc, 0x19, 0x13, 0x17, 0xd9, 0x40, 0x50, 0xa0, 0x38,
  3632. 0x72, 0x64, 0xd1, 0x1b, 0xb0, 0x64, 0x0c, 0x5a, 0x92, 0xb3, 0x35, 0x46, 0x6e, 0x0a, 0x39, 0xa8,
  3633. 0x6f, 0xd0, 0xea, 0xa9, 0xed, 0x7d, 0x7c, 0xe1, 0x4c, 0xc6, 0x18, 0xb4, 0xf6, 0xd9, 0x0e, 0x62,
  3634. 0x5f, 0x89, 0xf9, 0xbf, 0xf2, 0xd3, 0x28, 0xa4, 0x9d, 0x13, 0x81, 0xbe, 0x0f, 0x19, 0xd7, 0x1d,
  3635. 0xb8, 0xfd, 0xe9, 0x50, 0x3f, 0xc2, 0xf5, 0x7b, 0x22, 0xe8, 0x06, 0x2c, 0x5b, 0x6a, 0x47, 0x73,
  3636. 0x2a, 0xf1, 0xac, 0xcc, 0x12, 0xa3, 0x5b, 0xb3, 0xc8, 0x5e, 0x1c, 0x38, 0xb5, 0x81, 0xbb, 0x89,
  3637. 0x74, 0xbc, 0x94, 0xb8, 0x9b, 0x48, 0x27, 0x4a, 0x49, 0xe1, 0x5f, 0x51, 0x48, 0x3b, 0x35, 0x74,
  3638. 0xf4, 0x8a, 0xef, 0x00, 0x16, 0x26, 0xd9, 0x9b, 0x33, 0x7a, 0xbd, 0xc5, 0xe0, 0xbc, 0x63, 0x8b,
  3639. 0xcf, 0x3b, 0xac, 0x41, 0xec, 0xb4, 0xea, 0x13, 0x0b, 0xb7, 0xea, 0x6f, 0x02, 0xb2, 0x75, 0x5b,
  3640. 0xee, 0x49, 0x43, 0xdd, 0x56, 0xb5, 0x8e, 0xc4, 0x2c, 0xcf, 0xce, 0x4a, 0x89, 0xbe, 0xb9, 0x47,
  3641. 0x5f, 0x1c, 0xbb, 0x3f, 0xc1, 0xcd, 0x70, 0x17, 0x6d, 0x15, 0xae, 0x41, 0x8a, 0x27, 0x71, 0xac,
  3642. 0x57, 0xc8, 0x47, 0x6e, 0xd7, 0x25, 0xe1, 0xeb, 0xba, 0x54, 0x20, 0xdd, 0xc7, 0xb6, 0x4c, 0x0f,
  3643. 0x3e, 0x73, 0xc0, 0xee, 0xf8, 0xc6, 0xeb, 0x90, 0xf5, 0x75, 0x6d, 0x89, 0x2f, 0x38, 0xac, 0xbf,
  3644. 0x5b, 0x8a, 0x54, 0x96, 0x3e, 0xfd, 0xfc, 0x6a, 0xfc, 0x10, 0x7f, 0x4c, 0x36, 0xb0, 0x58, 0xaf,
  3645. 0x35, 0xea, 0xb5, 0xfd, 0x52, 0xb4, 0x92, 0xfd, 0xf4, 0xf3, 0xab, 0x4b, 0x22, 0xa6, 0x25, 0xee,
  3646. 0x1b, 0x0d, 0xc8, 0xf9, 0xff, 0x4a, 0x30, 0xb5, 0x41, 0x50, 0xb8, 0x73, 0x7a, 0x7c, 0xb0, 0x57,
  3647. 0xdb, 0x69, 0xd6, 0xa5, 0x7b, 0x47, 0xcd, 0x7a, 0x29, 0x8a, 0x9e, 0x86, 0x95, 0x83, 0xbd, 0xb7,
  3648. 0x1a, 0x4d, 0xa9, 0x76, 0xb0, 0x57, 0x3f, 0x6c, 0x4a, 0x3b, 0xcd, 0xe6, 0x4e, 0x6d, 0xbf, 0x14,
  3649. 0xdb, 0xfe, 0x6d, 0x16, 0x8a, 0x3b, 0xd5, 0xda, 0x1e, 0xc9, 0x61, 0xd5, 0xb6, 0x4c, 0x4b, 0x69,
  3650. 0x35, 0x48, 0xd0, 0x62, 0xd9, 0xd4, 0x1b, 0x78, 0x95, 0xe9, 0x0d, 0x10, 0xb4, 0x0b, 0x49, 0x5a,
  3651. 0x47, 0x43, 0xd3, 0xaf, 0xe4, 0x55, 0x66, 0x74, 0x44, 0xc8, 0x64, 0xe8, 0x51, 0x99, 0x7a, 0x47,
  3652. 0xaf, 0x32, 0xbd, 0x41, 0x82, 0x0e, 0x60, 0xc9, 0x29, 0x73, 0xcc, 0xba, 0xed, 0x56, 0x99, 0xd9,
  3653. 0x69, 0x20, 0x4b, 0x63, 0xe5, 0xa8, 0xe9, 0xd7, 0xf7, 0x2a, 0x33, 0x5a, 0x27, 0x68, 0x0f, 0x52,
  3654. 0x1c, 0x09, 0xce, 0xb8, 0xb9, 0x56, 0x99, 0xd5, 0x31, 0x40, 0x22, 0x64, 0xbc, 0x42, 0xdf, 0xec,
  3655. 0x4b, 0x89, 0x95, 0x39, 0xba, 0x42, 0xe8, 0x3e, 0xe4, 0x83, 0xe8, 0x72, 0xbe, 0xdb, 0x71, 0x95,
  3656. 0x39, 0x7b, 0x13, 0x44, 0x7f, 0x10, 0x6a, 0xce, 0x77, 0x5b, 0xae, 0x32, 0x67, 0xab, 0x02, 0x7d,
  3657. 0x08, 0xcb, 0xe3, 0x50, 0x70, 0xfe, 0xcb, 0x73, 0x95, 0x05, 0x9a, 0x17, 0xa8, 0x0f, 0x68, 0x02,
  3658. 0x84, 0x5c, 0xe0, 0x2e, 0x5d, 0x65, 0x91, 0x5e, 0x06, 0x52, 0xa0, 0x38, 0x0a, 0x49, 0xe6, 0xbd,
  3659. 0x5b, 0x57, 0x99, 0xbb, 0xaf, 0xc1, 0xbe, 0x12, 0x44, 0x2f, 0xf3, 0xde, 0xb5, 0xab, 0xcc, 0xdd,
  3660. 0xe6, 0x40, 0xa7, 0x00, 0x3e, 0x8c, 0x39, 0xc7, 0xdd, 0xbb, 0xca, 0x3c, 0x0d, 0x0f, 0x64, 0xc0,
  3661. 0xca, 0x24, 0x6c, 0xb9, 0xc8, 0x55, 0xbc, 0xca, 0x42, 0x7d, 0x10, 0xb2, 0x9f, 0x83, 0xa8, 0x65,
  3662. 0xbe, 0xab, 0x79, 0x95, 0x39, 0x1b, 0x22, 0xd5, 0xfa, 0x17, 0x5f, 0xaf, 0x47, 0xbf, 0xfc, 0x7a,
  3663. 0x3d, 0xfa, 0xf7, 0xaf, 0xd7, 0xa3, 0x9f, 0x7d, 0xb3, 0x1e, 0xf9, 0xf2, 0x9b, 0xf5, 0xc8, 0x5f,
  3664. 0xbe, 0x59, 0x8f, 0xfc, 0xf0, 0xa5, 0x8e, 0x6a, 0x77, 0x07, 0xad, 0xcd, 0xb6, 0xde, 0xdf, 0xf2,
  3665. 0xdf, 0xd2, 0x9e, 0x74, 0x73, 0xbc, 0x95, 0xa2, 0xd1, 0xf4, 0xd6, 0x7f, 0x03, 0x00, 0x00, 0xff,
  3666. 0xff, 0x8d, 0xc9, 0xd7, 0xa0, 0x59, 0x2e, 0x00, 0x00,
  3667. }
  3668. // Reference imports to suppress errors if they are not otherwise used.
  3669. var _ context.Context
  3670. var _ grpc.ClientConn
  3671. // This is a compile-time assertion to ensure that this generated file
  3672. // is compatible with the grpc package it is being compiled against.
  3673. const _ = grpc.SupportPackageIsVersion4
  3674. // ABCIApplicationClient is the client API for ABCIApplication service.
  3675. //
  3676. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
  3677. type ABCIApplicationClient interface {
  3678. Echo(ctx context.Context, in *RequestEcho, opts ...grpc.CallOption) (*ResponseEcho, error)
  3679. Flush(ctx context.Context, in *RequestFlush, opts ...grpc.CallOption) (*ResponseFlush, error)
  3680. Info(ctx context.Context, in *RequestInfo, opts ...grpc.CallOption) (*ResponseInfo, error)
  3681. CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error)
  3682. Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error)
  3683. Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error)
  3684. InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error)
  3685. ListSnapshots(ctx context.Context, in *RequestListSnapshots, opts ...grpc.CallOption) (*ResponseListSnapshots, error)
  3686. OfferSnapshot(ctx context.Context, in *RequestOfferSnapshot, opts ...grpc.CallOption) (*ResponseOfferSnapshot, error)
  3687. LoadSnapshotChunk(ctx context.Context, in *RequestLoadSnapshotChunk, opts ...grpc.CallOption) (*ResponseLoadSnapshotChunk, error)
  3688. ApplySnapshotChunk(ctx context.Context, in *RequestApplySnapshotChunk, opts ...grpc.CallOption) (*ResponseApplySnapshotChunk, error)
  3689. PrepareProposal(ctx context.Context, in *RequestPrepareProposal, opts ...grpc.CallOption) (*ResponsePrepareProposal, error)
  3690. ProcessProposal(ctx context.Context, in *RequestProcessProposal, opts ...grpc.CallOption) (*ResponseProcessProposal, error)
  3691. ExtendVote(ctx context.Context, in *RequestExtendVote, opts ...grpc.CallOption) (*ResponseExtendVote, error)
  3692. VerifyVoteExtension(ctx context.Context, in *RequestVerifyVoteExtension, opts ...grpc.CallOption) (*ResponseVerifyVoteExtension, error)
  3693. FinalizeBlock(ctx context.Context, in *RequestFinalizeBlock, opts ...grpc.CallOption) (*ResponseFinalizeBlock, error)
  3694. }
  3695. type aBCIApplicationClient struct {
  3696. cc *grpc.ClientConn
  3697. }
  3698. func NewABCIApplicationClient(cc *grpc.ClientConn) ABCIApplicationClient {
  3699. return &aBCIApplicationClient{cc}
  3700. }
  3701. func (c *aBCIApplicationClient) Echo(ctx context.Context, in *RequestEcho, opts ...grpc.CallOption) (*ResponseEcho, error) {
  3702. out := new(ResponseEcho)
  3703. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/Echo", in, out, opts...)
  3704. if err != nil {
  3705. return nil, err
  3706. }
  3707. return out, nil
  3708. }
  3709. func (c *aBCIApplicationClient) Flush(ctx context.Context, in *RequestFlush, opts ...grpc.CallOption) (*ResponseFlush, error) {
  3710. out := new(ResponseFlush)
  3711. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/Flush", in, out, opts...)
  3712. if err != nil {
  3713. return nil, err
  3714. }
  3715. return out, nil
  3716. }
  3717. func (c *aBCIApplicationClient) Info(ctx context.Context, in *RequestInfo, opts ...grpc.CallOption) (*ResponseInfo, error) {
  3718. out := new(ResponseInfo)
  3719. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/Info", in, out, opts...)
  3720. if err != nil {
  3721. return nil, err
  3722. }
  3723. return out, nil
  3724. }
  3725. func (c *aBCIApplicationClient) CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error) {
  3726. out := new(ResponseCheckTx)
  3727. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/CheckTx", in, out, opts...)
  3728. if err != nil {
  3729. return nil, err
  3730. }
  3731. return out, nil
  3732. }
  3733. func (c *aBCIApplicationClient) Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error) {
  3734. out := new(ResponseQuery)
  3735. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/Query", in, out, opts...)
  3736. if err != nil {
  3737. return nil, err
  3738. }
  3739. return out, nil
  3740. }
  3741. func (c *aBCIApplicationClient) Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error) {
  3742. out := new(ResponseCommit)
  3743. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/Commit", in, out, opts...)
  3744. if err != nil {
  3745. return nil, err
  3746. }
  3747. return out, nil
  3748. }
  3749. func (c *aBCIApplicationClient) InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error) {
  3750. out := new(ResponseInitChain)
  3751. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/InitChain", in, out, opts...)
  3752. if err != nil {
  3753. return nil, err
  3754. }
  3755. return out, nil
  3756. }
  3757. func (c *aBCIApplicationClient) ListSnapshots(ctx context.Context, in *RequestListSnapshots, opts ...grpc.CallOption) (*ResponseListSnapshots, error) {
  3758. out := new(ResponseListSnapshots)
  3759. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/ListSnapshots", in, out, opts...)
  3760. if err != nil {
  3761. return nil, err
  3762. }
  3763. return out, nil
  3764. }
  3765. func (c *aBCIApplicationClient) OfferSnapshot(ctx context.Context, in *RequestOfferSnapshot, opts ...grpc.CallOption) (*ResponseOfferSnapshot, error) {
  3766. out := new(ResponseOfferSnapshot)
  3767. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/OfferSnapshot", in, out, opts...)
  3768. if err != nil {
  3769. return nil, err
  3770. }
  3771. return out, nil
  3772. }
  3773. func (c *aBCIApplicationClient) LoadSnapshotChunk(ctx context.Context, in *RequestLoadSnapshotChunk, opts ...grpc.CallOption) (*ResponseLoadSnapshotChunk, error) {
  3774. out := new(ResponseLoadSnapshotChunk)
  3775. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/LoadSnapshotChunk", in, out, opts...)
  3776. if err != nil {
  3777. return nil, err
  3778. }
  3779. return out, nil
  3780. }
  3781. func (c *aBCIApplicationClient) ApplySnapshotChunk(ctx context.Context, in *RequestApplySnapshotChunk, opts ...grpc.CallOption) (*ResponseApplySnapshotChunk, error) {
  3782. out := new(ResponseApplySnapshotChunk)
  3783. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/ApplySnapshotChunk", in, out, opts...)
  3784. if err != nil {
  3785. return nil, err
  3786. }
  3787. return out, nil
  3788. }
  3789. func (c *aBCIApplicationClient) PrepareProposal(ctx context.Context, in *RequestPrepareProposal, opts ...grpc.CallOption) (*ResponsePrepareProposal, error) {
  3790. out := new(ResponsePrepareProposal)
  3791. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/PrepareProposal", in, out, opts...)
  3792. if err != nil {
  3793. return nil, err
  3794. }
  3795. return out, nil
  3796. }
  3797. func (c *aBCIApplicationClient) ProcessProposal(ctx context.Context, in *RequestProcessProposal, opts ...grpc.CallOption) (*ResponseProcessProposal, error) {
  3798. out := new(ResponseProcessProposal)
  3799. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/ProcessProposal", in, out, opts...)
  3800. if err != nil {
  3801. return nil, err
  3802. }
  3803. return out, nil
  3804. }
  3805. func (c *aBCIApplicationClient) ExtendVote(ctx context.Context, in *RequestExtendVote, opts ...grpc.CallOption) (*ResponseExtendVote, error) {
  3806. out := new(ResponseExtendVote)
  3807. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/ExtendVote", in, out, opts...)
  3808. if err != nil {
  3809. return nil, err
  3810. }
  3811. return out, nil
  3812. }
  3813. func (c *aBCIApplicationClient) VerifyVoteExtension(ctx context.Context, in *RequestVerifyVoteExtension, opts ...grpc.CallOption) (*ResponseVerifyVoteExtension, error) {
  3814. out := new(ResponseVerifyVoteExtension)
  3815. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/VerifyVoteExtension", in, out, opts...)
  3816. if err != nil {
  3817. return nil, err
  3818. }
  3819. return out, nil
  3820. }
  3821. func (c *aBCIApplicationClient) FinalizeBlock(ctx context.Context, in *RequestFinalizeBlock, opts ...grpc.CallOption) (*ResponseFinalizeBlock, error) {
  3822. out := new(ResponseFinalizeBlock)
  3823. err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/FinalizeBlock", in, out, opts...)
  3824. if err != nil {
  3825. return nil, err
  3826. }
  3827. return out, nil
  3828. }
  3829. // ABCIApplicationServer is the server API for ABCIApplication service.
  3830. type ABCIApplicationServer interface {
  3831. Echo(context.Context, *RequestEcho) (*ResponseEcho, error)
  3832. Flush(context.Context, *RequestFlush) (*ResponseFlush, error)
  3833. Info(context.Context, *RequestInfo) (*ResponseInfo, error)
  3834. CheckTx(context.Context, *RequestCheckTx) (*ResponseCheckTx, error)
  3835. Query(context.Context, *RequestQuery) (*ResponseQuery, error)
  3836. Commit(context.Context, *RequestCommit) (*ResponseCommit, error)
  3837. InitChain(context.Context, *RequestInitChain) (*ResponseInitChain, error)
  3838. ListSnapshots(context.Context, *RequestListSnapshots) (*ResponseListSnapshots, error)
  3839. OfferSnapshot(context.Context, *RequestOfferSnapshot) (*ResponseOfferSnapshot, error)
  3840. LoadSnapshotChunk(context.Context, *RequestLoadSnapshotChunk) (*ResponseLoadSnapshotChunk, error)
  3841. ApplySnapshotChunk(context.Context, *RequestApplySnapshotChunk) (*ResponseApplySnapshotChunk, error)
  3842. PrepareProposal(context.Context, *RequestPrepareProposal) (*ResponsePrepareProposal, error)
  3843. ProcessProposal(context.Context, *RequestProcessProposal) (*ResponseProcessProposal, error)
  3844. ExtendVote(context.Context, *RequestExtendVote) (*ResponseExtendVote, error)
  3845. VerifyVoteExtension(context.Context, *RequestVerifyVoteExtension) (*ResponseVerifyVoteExtension, error)
  3846. FinalizeBlock(context.Context, *RequestFinalizeBlock) (*ResponseFinalizeBlock, error)
  3847. }
  3848. // UnimplementedABCIApplicationServer can be embedded to have forward compatible implementations.
  3849. type UnimplementedABCIApplicationServer struct {
  3850. }
  3851. func (*UnimplementedABCIApplicationServer) Echo(ctx context.Context, req *RequestEcho) (*ResponseEcho, error) {
  3852. return nil, status.Errorf(codes.Unimplemented, "method Echo not implemented")
  3853. }
  3854. func (*UnimplementedABCIApplicationServer) Flush(ctx context.Context, req *RequestFlush) (*ResponseFlush, error) {
  3855. return nil, status.Errorf(codes.Unimplemented, "method Flush not implemented")
  3856. }
  3857. func (*UnimplementedABCIApplicationServer) Info(ctx context.Context, req *RequestInfo) (*ResponseInfo, error) {
  3858. return nil, status.Errorf(codes.Unimplemented, "method Info not implemented")
  3859. }
  3860. func (*UnimplementedABCIApplicationServer) CheckTx(ctx context.Context, req *RequestCheckTx) (*ResponseCheckTx, error) {
  3861. return nil, status.Errorf(codes.Unimplemented, "method CheckTx not implemented")
  3862. }
  3863. func (*UnimplementedABCIApplicationServer) Query(ctx context.Context, req *RequestQuery) (*ResponseQuery, error) {
  3864. return nil, status.Errorf(codes.Unimplemented, "method Query not implemented")
  3865. }
  3866. func (*UnimplementedABCIApplicationServer) Commit(ctx context.Context, req *RequestCommit) (*ResponseCommit, error) {
  3867. return nil, status.Errorf(codes.Unimplemented, "method Commit not implemented")
  3868. }
  3869. func (*UnimplementedABCIApplicationServer) InitChain(ctx context.Context, req *RequestInitChain) (*ResponseInitChain, error) {
  3870. return nil, status.Errorf(codes.Unimplemented, "method InitChain not implemented")
  3871. }
  3872. func (*UnimplementedABCIApplicationServer) ListSnapshots(ctx context.Context, req *RequestListSnapshots) (*ResponseListSnapshots, error) {
  3873. return nil, status.Errorf(codes.Unimplemented, "method ListSnapshots not implemented")
  3874. }
  3875. func (*UnimplementedABCIApplicationServer) OfferSnapshot(ctx context.Context, req *RequestOfferSnapshot) (*ResponseOfferSnapshot, error) {
  3876. return nil, status.Errorf(codes.Unimplemented, "method OfferSnapshot not implemented")
  3877. }
  3878. func (*UnimplementedABCIApplicationServer) LoadSnapshotChunk(ctx context.Context, req *RequestLoadSnapshotChunk) (*ResponseLoadSnapshotChunk, error) {
  3879. return nil, status.Errorf(codes.Unimplemented, "method LoadSnapshotChunk not implemented")
  3880. }
  3881. func (*UnimplementedABCIApplicationServer) ApplySnapshotChunk(ctx context.Context, req *RequestApplySnapshotChunk) (*ResponseApplySnapshotChunk, error) {
  3882. return nil, status.Errorf(codes.Unimplemented, "method ApplySnapshotChunk not implemented")
  3883. }
  3884. func (*UnimplementedABCIApplicationServer) PrepareProposal(ctx context.Context, req *RequestPrepareProposal) (*ResponsePrepareProposal, error) {
  3885. return nil, status.Errorf(codes.Unimplemented, "method PrepareProposal not implemented")
  3886. }
  3887. func (*UnimplementedABCIApplicationServer) ProcessProposal(ctx context.Context, req *RequestProcessProposal) (*ResponseProcessProposal, error) {
  3888. return nil, status.Errorf(codes.Unimplemented, "method ProcessProposal not implemented")
  3889. }
  3890. func (*UnimplementedABCIApplicationServer) ExtendVote(ctx context.Context, req *RequestExtendVote) (*ResponseExtendVote, error) {
  3891. return nil, status.Errorf(codes.Unimplemented, "method ExtendVote not implemented")
  3892. }
  3893. func (*UnimplementedABCIApplicationServer) VerifyVoteExtension(ctx context.Context, req *RequestVerifyVoteExtension) (*ResponseVerifyVoteExtension, error) {
  3894. return nil, status.Errorf(codes.Unimplemented, "method VerifyVoteExtension not implemented")
  3895. }
  3896. func (*UnimplementedABCIApplicationServer) FinalizeBlock(ctx context.Context, req *RequestFinalizeBlock) (*ResponseFinalizeBlock, error) {
  3897. return nil, status.Errorf(codes.Unimplemented, "method FinalizeBlock not implemented")
  3898. }
  3899. func RegisterABCIApplicationServer(s *grpc.Server, srv ABCIApplicationServer) {
  3900. s.RegisterService(&_ABCIApplication_serviceDesc, srv)
  3901. }
  3902. func _ABCIApplication_Echo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  3903. in := new(RequestEcho)
  3904. if err := dec(in); err != nil {
  3905. return nil, err
  3906. }
  3907. if interceptor == nil {
  3908. return srv.(ABCIApplicationServer).Echo(ctx, in)
  3909. }
  3910. info := &grpc.UnaryServerInfo{
  3911. Server: srv,
  3912. FullMethod: "/tendermint.abci.ABCIApplication/Echo",
  3913. }
  3914. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  3915. return srv.(ABCIApplicationServer).Echo(ctx, req.(*RequestEcho))
  3916. }
  3917. return interceptor(ctx, in, info, handler)
  3918. }
  3919. func _ABCIApplication_Flush_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  3920. in := new(RequestFlush)
  3921. if err := dec(in); err != nil {
  3922. return nil, err
  3923. }
  3924. if interceptor == nil {
  3925. return srv.(ABCIApplicationServer).Flush(ctx, in)
  3926. }
  3927. info := &grpc.UnaryServerInfo{
  3928. Server: srv,
  3929. FullMethod: "/tendermint.abci.ABCIApplication/Flush",
  3930. }
  3931. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  3932. return srv.(ABCIApplicationServer).Flush(ctx, req.(*RequestFlush))
  3933. }
  3934. return interceptor(ctx, in, info, handler)
  3935. }
  3936. func _ABCIApplication_Info_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  3937. in := new(RequestInfo)
  3938. if err := dec(in); err != nil {
  3939. return nil, err
  3940. }
  3941. if interceptor == nil {
  3942. return srv.(ABCIApplicationServer).Info(ctx, in)
  3943. }
  3944. info := &grpc.UnaryServerInfo{
  3945. Server: srv,
  3946. FullMethod: "/tendermint.abci.ABCIApplication/Info",
  3947. }
  3948. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  3949. return srv.(ABCIApplicationServer).Info(ctx, req.(*RequestInfo))
  3950. }
  3951. return interceptor(ctx, in, info, handler)
  3952. }
  3953. func _ABCIApplication_CheckTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  3954. in := new(RequestCheckTx)
  3955. if err := dec(in); err != nil {
  3956. return nil, err
  3957. }
  3958. if interceptor == nil {
  3959. return srv.(ABCIApplicationServer).CheckTx(ctx, in)
  3960. }
  3961. info := &grpc.UnaryServerInfo{
  3962. Server: srv,
  3963. FullMethod: "/tendermint.abci.ABCIApplication/CheckTx",
  3964. }
  3965. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  3966. return srv.(ABCIApplicationServer).CheckTx(ctx, req.(*RequestCheckTx))
  3967. }
  3968. return interceptor(ctx, in, info, handler)
  3969. }
  3970. func _ABCIApplication_Query_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  3971. in := new(RequestQuery)
  3972. if err := dec(in); err != nil {
  3973. return nil, err
  3974. }
  3975. if interceptor == nil {
  3976. return srv.(ABCIApplicationServer).Query(ctx, in)
  3977. }
  3978. info := &grpc.UnaryServerInfo{
  3979. Server: srv,
  3980. FullMethod: "/tendermint.abci.ABCIApplication/Query",
  3981. }
  3982. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  3983. return srv.(ABCIApplicationServer).Query(ctx, req.(*RequestQuery))
  3984. }
  3985. return interceptor(ctx, in, info, handler)
  3986. }
  3987. func _ABCIApplication_Commit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  3988. in := new(RequestCommit)
  3989. if err := dec(in); err != nil {
  3990. return nil, err
  3991. }
  3992. if interceptor == nil {
  3993. return srv.(ABCIApplicationServer).Commit(ctx, in)
  3994. }
  3995. info := &grpc.UnaryServerInfo{
  3996. Server: srv,
  3997. FullMethod: "/tendermint.abci.ABCIApplication/Commit",
  3998. }
  3999. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4000. return srv.(ABCIApplicationServer).Commit(ctx, req.(*RequestCommit))
  4001. }
  4002. return interceptor(ctx, in, info, handler)
  4003. }
  4004. func _ABCIApplication_InitChain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4005. in := new(RequestInitChain)
  4006. if err := dec(in); err != nil {
  4007. return nil, err
  4008. }
  4009. if interceptor == nil {
  4010. return srv.(ABCIApplicationServer).InitChain(ctx, in)
  4011. }
  4012. info := &grpc.UnaryServerInfo{
  4013. Server: srv,
  4014. FullMethod: "/tendermint.abci.ABCIApplication/InitChain",
  4015. }
  4016. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4017. return srv.(ABCIApplicationServer).InitChain(ctx, req.(*RequestInitChain))
  4018. }
  4019. return interceptor(ctx, in, info, handler)
  4020. }
  4021. func _ABCIApplication_ListSnapshots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4022. in := new(RequestListSnapshots)
  4023. if err := dec(in); err != nil {
  4024. return nil, err
  4025. }
  4026. if interceptor == nil {
  4027. return srv.(ABCIApplicationServer).ListSnapshots(ctx, in)
  4028. }
  4029. info := &grpc.UnaryServerInfo{
  4030. Server: srv,
  4031. FullMethod: "/tendermint.abci.ABCIApplication/ListSnapshots",
  4032. }
  4033. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4034. return srv.(ABCIApplicationServer).ListSnapshots(ctx, req.(*RequestListSnapshots))
  4035. }
  4036. return interceptor(ctx, in, info, handler)
  4037. }
  4038. func _ABCIApplication_OfferSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4039. in := new(RequestOfferSnapshot)
  4040. if err := dec(in); err != nil {
  4041. return nil, err
  4042. }
  4043. if interceptor == nil {
  4044. return srv.(ABCIApplicationServer).OfferSnapshot(ctx, in)
  4045. }
  4046. info := &grpc.UnaryServerInfo{
  4047. Server: srv,
  4048. FullMethod: "/tendermint.abci.ABCIApplication/OfferSnapshot",
  4049. }
  4050. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4051. return srv.(ABCIApplicationServer).OfferSnapshot(ctx, req.(*RequestOfferSnapshot))
  4052. }
  4053. return interceptor(ctx, in, info, handler)
  4054. }
  4055. func _ABCIApplication_LoadSnapshotChunk_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4056. in := new(RequestLoadSnapshotChunk)
  4057. if err := dec(in); err != nil {
  4058. return nil, err
  4059. }
  4060. if interceptor == nil {
  4061. return srv.(ABCIApplicationServer).LoadSnapshotChunk(ctx, in)
  4062. }
  4063. info := &grpc.UnaryServerInfo{
  4064. Server: srv,
  4065. FullMethod: "/tendermint.abci.ABCIApplication/LoadSnapshotChunk",
  4066. }
  4067. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4068. return srv.(ABCIApplicationServer).LoadSnapshotChunk(ctx, req.(*RequestLoadSnapshotChunk))
  4069. }
  4070. return interceptor(ctx, in, info, handler)
  4071. }
  4072. func _ABCIApplication_ApplySnapshotChunk_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4073. in := new(RequestApplySnapshotChunk)
  4074. if err := dec(in); err != nil {
  4075. return nil, err
  4076. }
  4077. if interceptor == nil {
  4078. return srv.(ABCIApplicationServer).ApplySnapshotChunk(ctx, in)
  4079. }
  4080. info := &grpc.UnaryServerInfo{
  4081. Server: srv,
  4082. FullMethod: "/tendermint.abci.ABCIApplication/ApplySnapshotChunk",
  4083. }
  4084. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4085. return srv.(ABCIApplicationServer).ApplySnapshotChunk(ctx, req.(*RequestApplySnapshotChunk))
  4086. }
  4087. return interceptor(ctx, in, info, handler)
  4088. }
  4089. func _ABCIApplication_PrepareProposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4090. in := new(RequestPrepareProposal)
  4091. if err := dec(in); err != nil {
  4092. return nil, err
  4093. }
  4094. if interceptor == nil {
  4095. return srv.(ABCIApplicationServer).PrepareProposal(ctx, in)
  4096. }
  4097. info := &grpc.UnaryServerInfo{
  4098. Server: srv,
  4099. FullMethod: "/tendermint.abci.ABCIApplication/PrepareProposal",
  4100. }
  4101. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4102. return srv.(ABCIApplicationServer).PrepareProposal(ctx, req.(*RequestPrepareProposal))
  4103. }
  4104. return interceptor(ctx, in, info, handler)
  4105. }
  4106. func _ABCIApplication_ProcessProposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4107. in := new(RequestProcessProposal)
  4108. if err := dec(in); err != nil {
  4109. return nil, err
  4110. }
  4111. if interceptor == nil {
  4112. return srv.(ABCIApplicationServer).ProcessProposal(ctx, in)
  4113. }
  4114. info := &grpc.UnaryServerInfo{
  4115. Server: srv,
  4116. FullMethod: "/tendermint.abci.ABCIApplication/ProcessProposal",
  4117. }
  4118. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4119. return srv.(ABCIApplicationServer).ProcessProposal(ctx, req.(*RequestProcessProposal))
  4120. }
  4121. return interceptor(ctx, in, info, handler)
  4122. }
  4123. func _ABCIApplication_ExtendVote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4124. in := new(RequestExtendVote)
  4125. if err := dec(in); err != nil {
  4126. return nil, err
  4127. }
  4128. if interceptor == nil {
  4129. return srv.(ABCIApplicationServer).ExtendVote(ctx, in)
  4130. }
  4131. info := &grpc.UnaryServerInfo{
  4132. Server: srv,
  4133. FullMethod: "/tendermint.abci.ABCIApplication/ExtendVote",
  4134. }
  4135. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4136. return srv.(ABCIApplicationServer).ExtendVote(ctx, req.(*RequestExtendVote))
  4137. }
  4138. return interceptor(ctx, in, info, handler)
  4139. }
  4140. func _ABCIApplication_VerifyVoteExtension_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4141. in := new(RequestVerifyVoteExtension)
  4142. if err := dec(in); err != nil {
  4143. return nil, err
  4144. }
  4145. if interceptor == nil {
  4146. return srv.(ABCIApplicationServer).VerifyVoteExtension(ctx, in)
  4147. }
  4148. info := &grpc.UnaryServerInfo{
  4149. Server: srv,
  4150. FullMethod: "/tendermint.abci.ABCIApplication/VerifyVoteExtension",
  4151. }
  4152. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4153. return srv.(ABCIApplicationServer).VerifyVoteExtension(ctx, req.(*RequestVerifyVoteExtension))
  4154. }
  4155. return interceptor(ctx, in, info, handler)
  4156. }
  4157. func _ABCIApplication_FinalizeBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4158. in := new(RequestFinalizeBlock)
  4159. if err := dec(in); err != nil {
  4160. return nil, err
  4161. }
  4162. if interceptor == nil {
  4163. return srv.(ABCIApplicationServer).FinalizeBlock(ctx, in)
  4164. }
  4165. info := &grpc.UnaryServerInfo{
  4166. Server: srv,
  4167. FullMethod: "/tendermint.abci.ABCIApplication/FinalizeBlock",
  4168. }
  4169. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4170. return srv.(ABCIApplicationServer).FinalizeBlock(ctx, req.(*RequestFinalizeBlock))
  4171. }
  4172. return interceptor(ctx, in, info, handler)
  4173. }
  4174. var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
  4175. ServiceName: "tendermint.abci.ABCIApplication",
  4176. HandlerType: (*ABCIApplicationServer)(nil),
  4177. Methods: []grpc.MethodDesc{
  4178. {
  4179. MethodName: "Echo",
  4180. Handler: _ABCIApplication_Echo_Handler,
  4181. },
  4182. {
  4183. MethodName: "Flush",
  4184. Handler: _ABCIApplication_Flush_Handler,
  4185. },
  4186. {
  4187. MethodName: "Info",
  4188. Handler: _ABCIApplication_Info_Handler,
  4189. },
  4190. {
  4191. MethodName: "CheckTx",
  4192. Handler: _ABCIApplication_CheckTx_Handler,
  4193. },
  4194. {
  4195. MethodName: "Query",
  4196. Handler: _ABCIApplication_Query_Handler,
  4197. },
  4198. {
  4199. MethodName: "Commit",
  4200. Handler: _ABCIApplication_Commit_Handler,
  4201. },
  4202. {
  4203. MethodName: "InitChain",
  4204. Handler: _ABCIApplication_InitChain_Handler,
  4205. },
  4206. {
  4207. MethodName: "ListSnapshots",
  4208. Handler: _ABCIApplication_ListSnapshots_Handler,
  4209. },
  4210. {
  4211. MethodName: "OfferSnapshot",
  4212. Handler: _ABCIApplication_OfferSnapshot_Handler,
  4213. },
  4214. {
  4215. MethodName: "LoadSnapshotChunk",
  4216. Handler: _ABCIApplication_LoadSnapshotChunk_Handler,
  4217. },
  4218. {
  4219. MethodName: "ApplySnapshotChunk",
  4220. Handler: _ABCIApplication_ApplySnapshotChunk_Handler,
  4221. },
  4222. {
  4223. MethodName: "PrepareProposal",
  4224. Handler: _ABCIApplication_PrepareProposal_Handler,
  4225. },
  4226. {
  4227. MethodName: "ProcessProposal",
  4228. Handler: _ABCIApplication_ProcessProposal_Handler,
  4229. },
  4230. {
  4231. MethodName: "ExtendVote",
  4232. Handler: _ABCIApplication_ExtendVote_Handler,
  4233. },
  4234. {
  4235. MethodName: "VerifyVoteExtension",
  4236. Handler: _ABCIApplication_VerifyVoteExtension_Handler,
  4237. },
  4238. {
  4239. MethodName: "FinalizeBlock",
  4240. Handler: _ABCIApplication_FinalizeBlock_Handler,
  4241. },
  4242. },
  4243. Streams: []grpc.StreamDesc{},
  4244. Metadata: "tendermint/abci/types.proto",
  4245. }
  4246. func (m *Request) Marshal() (dAtA []byte, err error) {
  4247. size := m.Size()
  4248. dAtA = make([]byte, size)
  4249. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  4250. if err != nil {
  4251. return nil, err
  4252. }
  4253. return dAtA[:n], nil
  4254. }
  4255. func (m *Request) MarshalTo(dAtA []byte) (int, error) {
  4256. size := m.Size()
  4257. return m.MarshalToSizedBuffer(dAtA[:size])
  4258. }
  4259. func (m *Request) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4260. i := len(dAtA)
  4261. _ = i
  4262. var l int
  4263. _ = l
  4264. if m.Value != nil {
  4265. {
  4266. size := m.Value.Size()
  4267. i -= size
  4268. if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil {
  4269. return 0, err
  4270. }
  4271. }
  4272. }
  4273. return len(dAtA) - i, nil
  4274. }
  4275. func (m *Request_Echo) MarshalTo(dAtA []byte) (int, error) {
  4276. size := m.Size()
  4277. return m.MarshalToSizedBuffer(dAtA[:size])
  4278. }
  4279. func (m *Request_Echo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4280. i := len(dAtA)
  4281. if m.Echo != nil {
  4282. {
  4283. size, err := m.Echo.MarshalToSizedBuffer(dAtA[:i])
  4284. if err != nil {
  4285. return 0, err
  4286. }
  4287. i -= size
  4288. i = encodeVarintTypes(dAtA, i, uint64(size))
  4289. }
  4290. i--
  4291. dAtA[i] = 0xa
  4292. }
  4293. return len(dAtA) - i, nil
  4294. }
  4295. func (m *Request_Flush) MarshalTo(dAtA []byte) (int, error) {
  4296. size := m.Size()
  4297. return m.MarshalToSizedBuffer(dAtA[:size])
  4298. }
  4299. func (m *Request_Flush) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4300. i := len(dAtA)
  4301. if m.Flush != nil {
  4302. {
  4303. size, err := m.Flush.MarshalToSizedBuffer(dAtA[:i])
  4304. if err != nil {
  4305. return 0, err
  4306. }
  4307. i -= size
  4308. i = encodeVarintTypes(dAtA, i, uint64(size))
  4309. }
  4310. i--
  4311. dAtA[i] = 0x12
  4312. }
  4313. return len(dAtA) - i, nil
  4314. }
  4315. func (m *Request_Info) MarshalTo(dAtA []byte) (int, error) {
  4316. size := m.Size()
  4317. return m.MarshalToSizedBuffer(dAtA[:size])
  4318. }
  4319. func (m *Request_Info) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4320. i := len(dAtA)
  4321. if m.Info != nil {
  4322. {
  4323. size, err := m.Info.MarshalToSizedBuffer(dAtA[:i])
  4324. if err != nil {
  4325. return 0, err
  4326. }
  4327. i -= size
  4328. i = encodeVarintTypes(dAtA, i, uint64(size))
  4329. }
  4330. i--
  4331. dAtA[i] = 0x1a
  4332. }
  4333. return len(dAtA) - i, nil
  4334. }
  4335. func (m *Request_InitChain) MarshalTo(dAtA []byte) (int, error) {
  4336. size := m.Size()
  4337. return m.MarshalToSizedBuffer(dAtA[:size])
  4338. }
  4339. func (m *Request_InitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4340. i := len(dAtA)
  4341. if m.InitChain != nil {
  4342. {
  4343. size, err := m.InitChain.MarshalToSizedBuffer(dAtA[:i])
  4344. if err != nil {
  4345. return 0, err
  4346. }
  4347. i -= size
  4348. i = encodeVarintTypes(dAtA, i, uint64(size))
  4349. }
  4350. i--
  4351. dAtA[i] = 0x22
  4352. }
  4353. return len(dAtA) - i, nil
  4354. }
  4355. func (m *Request_Query) MarshalTo(dAtA []byte) (int, error) {
  4356. size := m.Size()
  4357. return m.MarshalToSizedBuffer(dAtA[:size])
  4358. }
  4359. func (m *Request_Query) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4360. i := len(dAtA)
  4361. if m.Query != nil {
  4362. {
  4363. size, err := m.Query.MarshalToSizedBuffer(dAtA[:i])
  4364. if err != nil {
  4365. return 0, err
  4366. }
  4367. i -= size
  4368. i = encodeVarintTypes(dAtA, i, uint64(size))
  4369. }
  4370. i--
  4371. dAtA[i] = 0x2a
  4372. }
  4373. return len(dAtA) - i, nil
  4374. }
  4375. func (m *Request_BeginBlock) MarshalTo(dAtA []byte) (int, error) {
  4376. size := m.Size()
  4377. return m.MarshalToSizedBuffer(dAtA[:size])
  4378. }
  4379. func (m *Request_BeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4380. i := len(dAtA)
  4381. if m.BeginBlock != nil {
  4382. {
  4383. size, err := m.BeginBlock.MarshalToSizedBuffer(dAtA[:i])
  4384. if err != nil {
  4385. return 0, err
  4386. }
  4387. i -= size
  4388. i = encodeVarintTypes(dAtA, i, uint64(size))
  4389. }
  4390. i--
  4391. dAtA[i] = 0x32
  4392. }
  4393. return len(dAtA) - i, nil
  4394. }
  4395. func (m *Request_CheckTx) MarshalTo(dAtA []byte) (int, error) {
  4396. size := m.Size()
  4397. return m.MarshalToSizedBuffer(dAtA[:size])
  4398. }
  4399. func (m *Request_CheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4400. i := len(dAtA)
  4401. if m.CheckTx != nil {
  4402. {
  4403. size, err := m.CheckTx.MarshalToSizedBuffer(dAtA[:i])
  4404. if err != nil {
  4405. return 0, err
  4406. }
  4407. i -= size
  4408. i = encodeVarintTypes(dAtA, i, uint64(size))
  4409. }
  4410. i--
  4411. dAtA[i] = 0x3a
  4412. }
  4413. return len(dAtA) - i, nil
  4414. }
  4415. func (m *Request_DeliverTx) MarshalTo(dAtA []byte) (int, error) {
  4416. size := m.Size()
  4417. return m.MarshalToSizedBuffer(dAtA[:size])
  4418. }
  4419. func (m *Request_DeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4420. i := len(dAtA)
  4421. if m.DeliverTx != nil {
  4422. {
  4423. size, err := m.DeliverTx.MarshalToSizedBuffer(dAtA[:i])
  4424. if err != nil {
  4425. return 0, err
  4426. }
  4427. i -= size
  4428. i = encodeVarintTypes(dAtA, i, uint64(size))
  4429. }
  4430. i--
  4431. dAtA[i] = 0x42
  4432. }
  4433. return len(dAtA) - i, nil
  4434. }
  4435. func (m *Request_EndBlock) MarshalTo(dAtA []byte) (int, error) {
  4436. size := m.Size()
  4437. return m.MarshalToSizedBuffer(dAtA[:size])
  4438. }
  4439. func (m *Request_EndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4440. i := len(dAtA)
  4441. if m.EndBlock != nil {
  4442. {
  4443. size, err := m.EndBlock.MarshalToSizedBuffer(dAtA[:i])
  4444. if err != nil {
  4445. return 0, err
  4446. }
  4447. i -= size
  4448. i = encodeVarintTypes(dAtA, i, uint64(size))
  4449. }
  4450. i--
  4451. dAtA[i] = 0x4a
  4452. }
  4453. return len(dAtA) - i, nil
  4454. }
  4455. func (m *Request_Commit) MarshalTo(dAtA []byte) (int, error) {
  4456. size := m.Size()
  4457. return m.MarshalToSizedBuffer(dAtA[:size])
  4458. }
  4459. func (m *Request_Commit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4460. i := len(dAtA)
  4461. if m.Commit != nil {
  4462. {
  4463. size, err := m.Commit.MarshalToSizedBuffer(dAtA[:i])
  4464. if err != nil {
  4465. return 0, err
  4466. }
  4467. i -= size
  4468. i = encodeVarintTypes(dAtA, i, uint64(size))
  4469. }
  4470. i--
  4471. dAtA[i] = 0x52
  4472. }
  4473. return len(dAtA) - i, nil
  4474. }
  4475. func (m *Request_ListSnapshots) MarshalTo(dAtA []byte) (int, error) {
  4476. size := m.Size()
  4477. return m.MarshalToSizedBuffer(dAtA[:size])
  4478. }
  4479. func (m *Request_ListSnapshots) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4480. i := len(dAtA)
  4481. if m.ListSnapshots != nil {
  4482. {
  4483. size, err := m.ListSnapshots.MarshalToSizedBuffer(dAtA[:i])
  4484. if err != nil {
  4485. return 0, err
  4486. }
  4487. i -= size
  4488. i = encodeVarintTypes(dAtA, i, uint64(size))
  4489. }
  4490. i--
  4491. dAtA[i] = 0x5a
  4492. }
  4493. return len(dAtA) - i, nil
  4494. }
  4495. func (m *Request_OfferSnapshot) MarshalTo(dAtA []byte) (int, error) {
  4496. size := m.Size()
  4497. return m.MarshalToSizedBuffer(dAtA[:size])
  4498. }
  4499. func (m *Request_OfferSnapshot) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4500. i := len(dAtA)
  4501. if m.OfferSnapshot != nil {
  4502. {
  4503. size, err := m.OfferSnapshot.MarshalToSizedBuffer(dAtA[:i])
  4504. if err != nil {
  4505. return 0, err
  4506. }
  4507. i -= size
  4508. i = encodeVarintTypes(dAtA, i, uint64(size))
  4509. }
  4510. i--
  4511. dAtA[i] = 0x62
  4512. }
  4513. return len(dAtA) - i, nil
  4514. }
  4515. func (m *Request_LoadSnapshotChunk) MarshalTo(dAtA []byte) (int, error) {
  4516. size := m.Size()
  4517. return m.MarshalToSizedBuffer(dAtA[:size])
  4518. }
  4519. func (m *Request_LoadSnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4520. i := len(dAtA)
  4521. if m.LoadSnapshotChunk != nil {
  4522. {
  4523. size, err := m.LoadSnapshotChunk.MarshalToSizedBuffer(dAtA[:i])
  4524. if err != nil {
  4525. return 0, err
  4526. }
  4527. i -= size
  4528. i = encodeVarintTypes(dAtA, i, uint64(size))
  4529. }
  4530. i--
  4531. dAtA[i] = 0x6a
  4532. }
  4533. return len(dAtA) - i, nil
  4534. }
  4535. func (m *Request_ApplySnapshotChunk) MarshalTo(dAtA []byte) (int, error) {
  4536. size := m.Size()
  4537. return m.MarshalToSizedBuffer(dAtA[:size])
  4538. }
  4539. func (m *Request_ApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4540. i := len(dAtA)
  4541. if m.ApplySnapshotChunk != nil {
  4542. {
  4543. size, err := m.ApplySnapshotChunk.MarshalToSizedBuffer(dAtA[:i])
  4544. if err != nil {
  4545. return 0, err
  4546. }
  4547. i -= size
  4548. i = encodeVarintTypes(dAtA, i, uint64(size))
  4549. }
  4550. i--
  4551. dAtA[i] = 0x72
  4552. }
  4553. return len(dAtA) - i, nil
  4554. }
  4555. func (m *Request_PrepareProposal) MarshalTo(dAtA []byte) (int, error) {
  4556. size := m.Size()
  4557. return m.MarshalToSizedBuffer(dAtA[:size])
  4558. }
  4559. func (m *Request_PrepareProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4560. i := len(dAtA)
  4561. if m.PrepareProposal != nil {
  4562. {
  4563. size, err := m.PrepareProposal.MarshalToSizedBuffer(dAtA[:i])
  4564. if err != nil {
  4565. return 0, err
  4566. }
  4567. i -= size
  4568. i = encodeVarintTypes(dAtA, i, uint64(size))
  4569. }
  4570. i--
  4571. dAtA[i] = 0x7a
  4572. }
  4573. return len(dAtA) - i, nil
  4574. }
  4575. func (m *Request_ProcessProposal) MarshalTo(dAtA []byte) (int, error) {
  4576. size := m.Size()
  4577. return m.MarshalToSizedBuffer(dAtA[:size])
  4578. }
  4579. func (m *Request_ProcessProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4580. i := len(dAtA)
  4581. if m.ProcessProposal != nil {
  4582. {
  4583. size, err := m.ProcessProposal.MarshalToSizedBuffer(dAtA[:i])
  4584. if err != nil {
  4585. return 0, err
  4586. }
  4587. i -= size
  4588. i = encodeVarintTypes(dAtA, i, uint64(size))
  4589. }
  4590. i--
  4591. dAtA[i] = 0x1
  4592. i--
  4593. dAtA[i] = 0x82
  4594. }
  4595. return len(dAtA) - i, nil
  4596. }
  4597. func (m *Request_ExtendVote) MarshalTo(dAtA []byte) (int, error) {
  4598. size := m.Size()
  4599. return m.MarshalToSizedBuffer(dAtA[:size])
  4600. }
  4601. func (m *Request_ExtendVote) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4602. i := len(dAtA)
  4603. if m.ExtendVote != nil {
  4604. {
  4605. size, err := m.ExtendVote.MarshalToSizedBuffer(dAtA[:i])
  4606. if err != nil {
  4607. return 0, err
  4608. }
  4609. i -= size
  4610. i = encodeVarintTypes(dAtA, i, uint64(size))
  4611. }
  4612. i--
  4613. dAtA[i] = 0x1
  4614. i--
  4615. dAtA[i] = 0x8a
  4616. }
  4617. return len(dAtA) - i, nil
  4618. }
  4619. func (m *Request_VerifyVoteExtension) MarshalTo(dAtA []byte) (int, error) {
  4620. size := m.Size()
  4621. return m.MarshalToSizedBuffer(dAtA[:size])
  4622. }
  4623. func (m *Request_VerifyVoteExtension) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4624. i := len(dAtA)
  4625. if m.VerifyVoteExtension != nil {
  4626. {
  4627. size, err := m.VerifyVoteExtension.MarshalToSizedBuffer(dAtA[:i])
  4628. if err != nil {
  4629. return 0, err
  4630. }
  4631. i -= size
  4632. i = encodeVarintTypes(dAtA, i, uint64(size))
  4633. }
  4634. i--
  4635. dAtA[i] = 0x1
  4636. i--
  4637. dAtA[i] = 0x92
  4638. }
  4639. return len(dAtA) - i, nil
  4640. }
  4641. func (m *Request_FinalizeBlock) MarshalTo(dAtA []byte) (int, error) {
  4642. size := m.Size()
  4643. return m.MarshalToSizedBuffer(dAtA[:size])
  4644. }
  4645. func (m *Request_FinalizeBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4646. i := len(dAtA)
  4647. if m.FinalizeBlock != nil {
  4648. {
  4649. size, err := m.FinalizeBlock.MarshalToSizedBuffer(dAtA[:i])
  4650. if err != nil {
  4651. return 0, err
  4652. }
  4653. i -= size
  4654. i = encodeVarintTypes(dAtA, i, uint64(size))
  4655. }
  4656. i--
  4657. dAtA[i] = 0x1
  4658. i--
  4659. dAtA[i] = 0x9a
  4660. }
  4661. return len(dAtA) - i, nil
  4662. }
  4663. func (m *RequestEcho) Marshal() (dAtA []byte, err error) {
  4664. size := m.Size()
  4665. dAtA = make([]byte, size)
  4666. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  4667. if err != nil {
  4668. return nil, err
  4669. }
  4670. return dAtA[:n], nil
  4671. }
  4672. func (m *RequestEcho) MarshalTo(dAtA []byte) (int, error) {
  4673. size := m.Size()
  4674. return m.MarshalToSizedBuffer(dAtA[:size])
  4675. }
  4676. func (m *RequestEcho) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4677. i := len(dAtA)
  4678. _ = i
  4679. var l int
  4680. _ = l
  4681. if len(m.Message) > 0 {
  4682. i -= len(m.Message)
  4683. copy(dAtA[i:], m.Message)
  4684. i = encodeVarintTypes(dAtA, i, uint64(len(m.Message)))
  4685. i--
  4686. dAtA[i] = 0xa
  4687. }
  4688. return len(dAtA) - i, nil
  4689. }
  4690. func (m *RequestFlush) Marshal() (dAtA []byte, err error) {
  4691. size := m.Size()
  4692. dAtA = make([]byte, size)
  4693. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  4694. if err != nil {
  4695. return nil, err
  4696. }
  4697. return dAtA[:n], nil
  4698. }
  4699. func (m *RequestFlush) MarshalTo(dAtA []byte) (int, error) {
  4700. size := m.Size()
  4701. return m.MarshalToSizedBuffer(dAtA[:size])
  4702. }
  4703. func (m *RequestFlush) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4704. i := len(dAtA)
  4705. _ = i
  4706. var l int
  4707. _ = l
  4708. return len(dAtA) - i, nil
  4709. }
  4710. func (m *RequestInfo) Marshal() (dAtA []byte, err error) {
  4711. size := m.Size()
  4712. dAtA = make([]byte, size)
  4713. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  4714. if err != nil {
  4715. return nil, err
  4716. }
  4717. return dAtA[:n], nil
  4718. }
  4719. func (m *RequestInfo) MarshalTo(dAtA []byte) (int, error) {
  4720. size := m.Size()
  4721. return m.MarshalToSizedBuffer(dAtA[:size])
  4722. }
  4723. func (m *RequestInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4724. i := len(dAtA)
  4725. _ = i
  4726. var l int
  4727. _ = l
  4728. if len(m.AbciVersion) > 0 {
  4729. i -= len(m.AbciVersion)
  4730. copy(dAtA[i:], m.AbciVersion)
  4731. i = encodeVarintTypes(dAtA, i, uint64(len(m.AbciVersion)))
  4732. i--
  4733. dAtA[i] = 0x22
  4734. }
  4735. if m.P2PVersion != 0 {
  4736. i = encodeVarintTypes(dAtA, i, uint64(m.P2PVersion))
  4737. i--
  4738. dAtA[i] = 0x18
  4739. }
  4740. if m.BlockVersion != 0 {
  4741. i = encodeVarintTypes(dAtA, i, uint64(m.BlockVersion))
  4742. i--
  4743. dAtA[i] = 0x10
  4744. }
  4745. if len(m.Version) > 0 {
  4746. i -= len(m.Version)
  4747. copy(dAtA[i:], m.Version)
  4748. i = encodeVarintTypes(dAtA, i, uint64(len(m.Version)))
  4749. i--
  4750. dAtA[i] = 0xa
  4751. }
  4752. return len(dAtA) - i, nil
  4753. }
  4754. func (m *RequestInitChain) Marshal() (dAtA []byte, err error) {
  4755. size := m.Size()
  4756. dAtA = make([]byte, size)
  4757. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  4758. if err != nil {
  4759. return nil, err
  4760. }
  4761. return dAtA[:n], nil
  4762. }
  4763. func (m *RequestInitChain) MarshalTo(dAtA []byte) (int, error) {
  4764. size := m.Size()
  4765. return m.MarshalToSizedBuffer(dAtA[:size])
  4766. }
  4767. func (m *RequestInitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4768. i := len(dAtA)
  4769. _ = i
  4770. var l int
  4771. _ = l
  4772. if m.InitialHeight != 0 {
  4773. i = encodeVarintTypes(dAtA, i, uint64(m.InitialHeight))
  4774. i--
  4775. dAtA[i] = 0x30
  4776. }
  4777. if len(m.AppStateBytes) > 0 {
  4778. i -= len(m.AppStateBytes)
  4779. copy(dAtA[i:], m.AppStateBytes)
  4780. i = encodeVarintTypes(dAtA, i, uint64(len(m.AppStateBytes)))
  4781. i--
  4782. dAtA[i] = 0x2a
  4783. }
  4784. if len(m.Validators) > 0 {
  4785. for iNdEx := len(m.Validators) - 1; iNdEx >= 0; iNdEx-- {
  4786. {
  4787. size, err := m.Validators[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  4788. if err != nil {
  4789. return 0, err
  4790. }
  4791. i -= size
  4792. i = encodeVarintTypes(dAtA, i, uint64(size))
  4793. }
  4794. i--
  4795. dAtA[i] = 0x22
  4796. }
  4797. }
  4798. if m.ConsensusParams != nil {
  4799. {
  4800. size, err := m.ConsensusParams.MarshalToSizedBuffer(dAtA[:i])
  4801. if err != nil {
  4802. return 0, err
  4803. }
  4804. i -= size
  4805. i = encodeVarintTypes(dAtA, i, uint64(size))
  4806. }
  4807. i--
  4808. dAtA[i] = 0x1a
  4809. }
  4810. if len(m.ChainId) > 0 {
  4811. i -= len(m.ChainId)
  4812. copy(dAtA[i:], m.ChainId)
  4813. i = encodeVarintTypes(dAtA, i, uint64(len(m.ChainId)))
  4814. i--
  4815. dAtA[i] = 0x12
  4816. }
  4817. n21, err21 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
  4818. if err21 != nil {
  4819. return 0, err21
  4820. }
  4821. i -= n21
  4822. i = encodeVarintTypes(dAtA, i, uint64(n21))
  4823. i--
  4824. dAtA[i] = 0xa
  4825. return len(dAtA) - i, nil
  4826. }
  4827. func (m *RequestQuery) Marshal() (dAtA []byte, err error) {
  4828. size := m.Size()
  4829. dAtA = make([]byte, size)
  4830. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  4831. if err != nil {
  4832. return nil, err
  4833. }
  4834. return dAtA[:n], nil
  4835. }
  4836. func (m *RequestQuery) MarshalTo(dAtA []byte) (int, error) {
  4837. size := m.Size()
  4838. return m.MarshalToSizedBuffer(dAtA[:size])
  4839. }
  4840. func (m *RequestQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4841. i := len(dAtA)
  4842. _ = i
  4843. var l int
  4844. _ = l
  4845. if m.Prove {
  4846. i--
  4847. if m.Prove {
  4848. dAtA[i] = 1
  4849. } else {
  4850. dAtA[i] = 0
  4851. }
  4852. i--
  4853. dAtA[i] = 0x20
  4854. }
  4855. if m.Height != 0 {
  4856. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  4857. i--
  4858. dAtA[i] = 0x18
  4859. }
  4860. if len(m.Path) > 0 {
  4861. i -= len(m.Path)
  4862. copy(dAtA[i:], m.Path)
  4863. i = encodeVarintTypes(dAtA, i, uint64(len(m.Path)))
  4864. i--
  4865. dAtA[i] = 0x12
  4866. }
  4867. if len(m.Data) > 0 {
  4868. i -= len(m.Data)
  4869. copy(dAtA[i:], m.Data)
  4870. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  4871. i--
  4872. dAtA[i] = 0xa
  4873. }
  4874. return len(dAtA) - i, nil
  4875. }
  4876. func (m *RequestBeginBlock) Marshal() (dAtA []byte, err error) {
  4877. size := m.Size()
  4878. dAtA = make([]byte, size)
  4879. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  4880. if err != nil {
  4881. return nil, err
  4882. }
  4883. return dAtA[:n], nil
  4884. }
  4885. func (m *RequestBeginBlock) MarshalTo(dAtA []byte) (int, error) {
  4886. size := m.Size()
  4887. return m.MarshalToSizedBuffer(dAtA[:size])
  4888. }
  4889. func (m *RequestBeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4890. i := len(dAtA)
  4891. _ = i
  4892. var l int
  4893. _ = l
  4894. if len(m.ByzantineValidators) > 0 {
  4895. for iNdEx := len(m.ByzantineValidators) - 1; iNdEx >= 0; iNdEx-- {
  4896. {
  4897. size, err := m.ByzantineValidators[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  4898. if err != nil {
  4899. return 0, err
  4900. }
  4901. i -= size
  4902. i = encodeVarintTypes(dAtA, i, uint64(size))
  4903. }
  4904. i--
  4905. dAtA[i] = 0x22
  4906. }
  4907. }
  4908. {
  4909. size, err := m.LastCommitInfo.MarshalToSizedBuffer(dAtA[:i])
  4910. if err != nil {
  4911. return 0, err
  4912. }
  4913. i -= size
  4914. i = encodeVarintTypes(dAtA, i, uint64(size))
  4915. }
  4916. i--
  4917. dAtA[i] = 0x1a
  4918. {
  4919. size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
  4920. if err != nil {
  4921. return 0, err
  4922. }
  4923. i -= size
  4924. i = encodeVarintTypes(dAtA, i, uint64(size))
  4925. }
  4926. i--
  4927. dAtA[i] = 0x12
  4928. if len(m.Hash) > 0 {
  4929. i -= len(m.Hash)
  4930. copy(dAtA[i:], m.Hash)
  4931. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  4932. i--
  4933. dAtA[i] = 0xa
  4934. }
  4935. return len(dAtA) - i, nil
  4936. }
  4937. func (m *RequestCheckTx) Marshal() (dAtA []byte, err error) {
  4938. size := m.Size()
  4939. dAtA = make([]byte, size)
  4940. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  4941. if err != nil {
  4942. return nil, err
  4943. }
  4944. return dAtA[:n], nil
  4945. }
  4946. func (m *RequestCheckTx) MarshalTo(dAtA []byte) (int, error) {
  4947. size := m.Size()
  4948. return m.MarshalToSizedBuffer(dAtA[:size])
  4949. }
  4950. func (m *RequestCheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4951. i := len(dAtA)
  4952. _ = i
  4953. var l int
  4954. _ = l
  4955. if m.Type != 0 {
  4956. i = encodeVarintTypes(dAtA, i, uint64(m.Type))
  4957. i--
  4958. dAtA[i] = 0x10
  4959. }
  4960. if len(m.Tx) > 0 {
  4961. i -= len(m.Tx)
  4962. copy(dAtA[i:], m.Tx)
  4963. i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx)))
  4964. i--
  4965. dAtA[i] = 0xa
  4966. }
  4967. return len(dAtA) - i, nil
  4968. }
  4969. func (m *RequestDeliverTx) Marshal() (dAtA []byte, err error) {
  4970. size := m.Size()
  4971. dAtA = make([]byte, size)
  4972. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  4973. if err != nil {
  4974. return nil, err
  4975. }
  4976. return dAtA[:n], nil
  4977. }
  4978. func (m *RequestDeliverTx) MarshalTo(dAtA []byte) (int, error) {
  4979. size := m.Size()
  4980. return m.MarshalToSizedBuffer(dAtA[:size])
  4981. }
  4982. func (m *RequestDeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  4983. i := len(dAtA)
  4984. _ = i
  4985. var l int
  4986. _ = l
  4987. if len(m.Tx) > 0 {
  4988. i -= len(m.Tx)
  4989. copy(dAtA[i:], m.Tx)
  4990. i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx)))
  4991. i--
  4992. dAtA[i] = 0xa
  4993. }
  4994. return len(dAtA) - i, nil
  4995. }
  4996. func (m *RequestEndBlock) Marshal() (dAtA []byte, err error) {
  4997. size := m.Size()
  4998. dAtA = make([]byte, size)
  4999. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5000. if err != nil {
  5001. return nil, err
  5002. }
  5003. return dAtA[:n], nil
  5004. }
  5005. func (m *RequestEndBlock) MarshalTo(dAtA []byte) (int, error) {
  5006. size := m.Size()
  5007. return m.MarshalToSizedBuffer(dAtA[:size])
  5008. }
  5009. func (m *RequestEndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5010. i := len(dAtA)
  5011. _ = i
  5012. var l int
  5013. _ = l
  5014. if m.Height != 0 {
  5015. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  5016. i--
  5017. dAtA[i] = 0x8
  5018. }
  5019. return len(dAtA) - i, nil
  5020. }
  5021. func (m *RequestCommit) Marshal() (dAtA []byte, err error) {
  5022. size := m.Size()
  5023. dAtA = make([]byte, size)
  5024. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5025. if err != nil {
  5026. return nil, err
  5027. }
  5028. return dAtA[:n], nil
  5029. }
  5030. func (m *RequestCommit) MarshalTo(dAtA []byte) (int, error) {
  5031. size := m.Size()
  5032. return m.MarshalToSizedBuffer(dAtA[:size])
  5033. }
  5034. func (m *RequestCommit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5035. i := len(dAtA)
  5036. _ = i
  5037. var l int
  5038. _ = l
  5039. return len(dAtA) - i, nil
  5040. }
  5041. func (m *RequestListSnapshots) Marshal() (dAtA []byte, err error) {
  5042. size := m.Size()
  5043. dAtA = make([]byte, size)
  5044. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5045. if err != nil {
  5046. return nil, err
  5047. }
  5048. return dAtA[:n], nil
  5049. }
  5050. func (m *RequestListSnapshots) MarshalTo(dAtA []byte) (int, error) {
  5051. size := m.Size()
  5052. return m.MarshalToSizedBuffer(dAtA[:size])
  5053. }
  5054. func (m *RequestListSnapshots) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5055. i := len(dAtA)
  5056. _ = i
  5057. var l int
  5058. _ = l
  5059. return len(dAtA) - i, nil
  5060. }
  5061. func (m *RequestOfferSnapshot) Marshal() (dAtA []byte, err error) {
  5062. size := m.Size()
  5063. dAtA = make([]byte, size)
  5064. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5065. if err != nil {
  5066. return nil, err
  5067. }
  5068. return dAtA[:n], nil
  5069. }
  5070. func (m *RequestOfferSnapshot) MarshalTo(dAtA []byte) (int, error) {
  5071. size := m.Size()
  5072. return m.MarshalToSizedBuffer(dAtA[:size])
  5073. }
  5074. func (m *RequestOfferSnapshot) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5075. i := len(dAtA)
  5076. _ = i
  5077. var l int
  5078. _ = l
  5079. if len(m.AppHash) > 0 {
  5080. i -= len(m.AppHash)
  5081. copy(dAtA[i:], m.AppHash)
  5082. i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash)))
  5083. i--
  5084. dAtA[i] = 0x12
  5085. }
  5086. if m.Snapshot != nil {
  5087. {
  5088. size, err := m.Snapshot.MarshalToSizedBuffer(dAtA[:i])
  5089. if err != nil {
  5090. return 0, err
  5091. }
  5092. i -= size
  5093. i = encodeVarintTypes(dAtA, i, uint64(size))
  5094. }
  5095. i--
  5096. dAtA[i] = 0xa
  5097. }
  5098. return len(dAtA) - i, nil
  5099. }
  5100. func (m *RequestLoadSnapshotChunk) Marshal() (dAtA []byte, err error) {
  5101. size := m.Size()
  5102. dAtA = make([]byte, size)
  5103. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5104. if err != nil {
  5105. return nil, err
  5106. }
  5107. return dAtA[:n], nil
  5108. }
  5109. func (m *RequestLoadSnapshotChunk) MarshalTo(dAtA []byte) (int, error) {
  5110. size := m.Size()
  5111. return m.MarshalToSizedBuffer(dAtA[:size])
  5112. }
  5113. func (m *RequestLoadSnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5114. i := len(dAtA)
  5115. _ = i
  5116. var l int
  5117. _ = l
  5118. if m.Chunk != 0 {
  5119. i = encodeVarintTypes(dAtA, i, uint64(m.Chunk))
  5120. i--
  5121. dAtA[i] = 0x18
  5122. }
  5123. if m.Format != 0 {
  5124. i = encodeVarintTypes(dAtA, i, uint64(m.Format))
  5125. i--
  5126. dAtA[i] = 0x10
  5127. }
  5128. if m.Height != 0 {
  5129. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  5130. i--
  5131. dAtA[i] = 0x8
  5132. }
  5133. return len(dAtA) - i, nil
  5134. }
  5135. func (m *RequestApplySnapshotChunk) Marshal() (dAtA []byte, err error) {
  5136. size := m.Size()
  5137. dAtA = make([]byte, size)
  5138. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5139. if err != nil {
  5140. return nil, err
  5141. }
  5142. return dAtA[:n], nil
  5143. }
  5144. func (m *RequestApplySnapshotChunk) MarshalTo(dAtA []byte) (int, error) {
  5145. size := m.Size()
  5146. return m.MarshalToSizedBuffer(dAtA[:size])
  5147. }
  5148. func (m *RequestApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5149. i := len(dAtA)
  5150. _ = i
  5151. var l int
  5152. _ = l
  5153. if len(m.Sender) > 0 {
  5154. i -= len(m.Sender)
  5155. copy(dAtA[i:], m.Sender)
  5156. i = encodeVarintTypes(dAtA, i, uint64(len(m.Sender)))
  5157. i--
  5158. dAtA[i] = 0x1a
  5159. }
  5160. if len(m.Chunk) > 0 {
  5161. i -= len(m.Chunk)
  5162. copy(dAtA[i:], m.Chunk)
  5163. i = encodeVarintTypes(dAtA, i, uint64(len(m.Chunk)))
  5164. i--
  5165. dAtA[i] = 0x12
  5166. }
  5167. if m.Index != 0 {
  5168. i = encodeVarintTypes(dAtA, i, uint64(m.Index))
  5169. i--
  5170. dAtA[i] = 0x8
  5171. }
  5172. return len(dAtA) - i, nil
  5173. }
  5174. func (m *RequestExtendVote) Marshal() (dAtA []byte, err error) {
  5175. size := m.Size()
  5176. dAtA = make([]byte, size)
  5177. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5178. if err != nil {
  5179. return nil, err
  5180. }
  5181. return dAtA[:n], nil
  5182. }
  5183. func (m *RequestExtendVote) MarshalTo(dAtA []byte) (int, error) {
  5184. size := m.Size()
  5185. return m.MarshalToSizedBuffer(dAtA[:size])
  5186. }
  5187. func (m *RequestExtendVote) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5188. i := len(dAtA)
  5189. _ = i
  5190. var l int
  5191. _ = l
  5192. if m.Vote != nil {
  5193. {
  5194. size, err := m.Vote.MarshalToSizedBuffer(dAtA[:i])
  5195. if err != nil {
  5196. return 0, err
  5197. }
  5198. i -= size
  5199. i = encodeVarintTypes(dAtA, i, uint64(size))
  5200. }
  5201. i--
  5202. dAtA[i] = 0xa
  5203. }
  5204. return len(dAtA) - i, nil
  5205. }
  5206. func (m *RequestVerifyVoteExtension) Marshal() (dAtA []byte, err error) {
  5207. size := m.Size()
  5208. dAtA = make([]byte, size)
  5209. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5210. if err != nil {
  5211. return nil, err
  5212. }
  5213. return dAtA[:n], nil
  5214. }
  5215. func (m *RequestVerifyVoteExtension) MarshalTo(dAtA []byte) (int, error) {
  5216. size := m.Size()
  5217. return m.MarshalToSizedBuffer(dAtA[:size])
  5218. }
  5219. func (m *RequestVerifyVoteExtension) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5220. i := len(dAtA)
  5221. _ = i
  5222. var l int
  5223. _ = l
  5224. if m.Vote != nil {
  5225. {
  5226. size, err := m.Vote.MarshalToSizedBuffer(dAtA[:i])
  5227. if err != nil {
  5228. return 0, err
  5229. }
  5230. i -= size
  5231. i = encodeVarintTypes(dAtA, i, uint64(size))
  5232. }
  5233. i--
  5234. dAtA[i] = 0xa
  5235. }
  5236. return len(dAtA) - i, nil
  5237. }
  5238. func (m *RequestPrepareProposal) Marshal() (dAtA []byte, err error) {
  5239. size := m.Size()
  5240. dAtA = make([]byte, size)
  5241. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5242. if err != nil {
  5243. return nil, err
  5244. }
  5245. return dAtA[:n], nil
  5246. }
  5247. func (m *RequestPrepareProposal) MarshalTo(dAtA []byte) (int, error) {
  5248. size := m.Size()
  5249. return m.MarshalToSizedBuffer(dAtA[:size])
  5250. }
  5251. func (m *RequestPrepareProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5252. i := len(dAtA)
  5253. _ = i
  5254. var l int
  5255. _ = l
  5256. if len(m.Votes) > 0 {
  5257. for iNdEx := len(m.Votes) - 1; iNdEx >= 0; iNdEx-- {
  5258. {
  5259. size, err := m.Votes[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  5260. if err != nil {
  5261. return 0, err
  5262. }
  5263. i -= size
  5264. i = encodeVarintTypes(dAtA, i, uint64(size))
  5265. }
  5266. i--
  5267. dAtA[i] = 0x1a
  5268. }
  5269. }
  5270. if m.BlockDataSize != 0 {
  5271. i = encodeVarintTypes(dAtA, i, uint64(m.BlockDataSize))
  5272. i--
  5273. dAtA[i] = 0x10
  5274. }
  5275. if len(m.BlockData) > 0 {
  5276. for iNdEx := len(m.BlockData) - 1; iNdEx >= 0; iNdEx-- {
  5277. i -= len(m.BlockData[iNdEx])
  5278. copy(dAtA[i:], m.BlockData[iNdEx])
  5279. i = encodeVarintTypes(dAtA, i, uint64(len(m.BlockData[iNdEx])))
  5280. i--
  5281. dAtA[i] = 0xa
  5282. }
  5283. }
  5284. return len(dAtA) - i, nil
  5285. }
  5286. func (m *RequestProcessProposal) Marshal() (dAtA []byte, err error) {
  5287. size := m.Size()
  5288. dAtA = make([]byte, size)
  5289. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5290. if err != nil {
  5291. return nil, err
  5292. }
  5293. return dAtA[:n], nil
  5294. }
  5295. func (m *RequestProcessProposal) MarshalTo(dAtA []byte) (int, error) {
  5296. size := m.Size()
  5297. return m.MarshalToSizedBuffer(dAtA[:size])
  5298. }
  5299. func (m *RequestProcessProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5300. i := len(dAtA)
  5301. _ = i
  5302. var l int
  5303. _ = l
  5304. if len(m.ByzantineValidators) > 0 {
  5305. for iNdEx := len(m.ByzantineValidators) - 1; iNdEx >= 0; iNdEx-- {
  5306. {
  5307. size, err := m.ByzantineValidators[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  5308. if err != nil {
  5309. return 0, err
  5310. }
  5311. i -= size
  5312. i = encodeVarintTypes(dAtA, i, uint64(size))
  5313. }
  5314. i--
  5315. dAtA[i] = 0x2a
  5316. }
  5317. }
  5318. {
  5319. size, err := m.ProposedLastCommit.MarshalToSizedBuffer(dAtA[:i])
  5320. if err != nil {
  5321. return 0, err
  5322. }
  5323. i -= size
  5324. i = encodeVarintTypes(dAtA, i, uint64(size))
  5325. }
  5326. i--
  5327. dAtA[i] = 0x22
  5328. if len(m.Txs) > 0 {
  5329. for iNdEx := len(m.Txs) - 1; iNdEx >= 0; iNdEx-- {
  5330. i -= len(m.Txs[iNdEx])
  5331. copy(dAtA[i:], m.Txs[iNdEx])
  5332. i = encodeVarintTypes(dAtA, i, uint64(len(m.Txs[iNdEx])))
  5333. i--
  5334. dAtA[i] = 0x1a
  5335. }
  5336. }
  5337. {
  5338. size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
  5339. if err != nil {
  5340. return 0, err
  5341. }
  5342. i -= size
  5343. i = encodeVarintTypes(dAtA, i, uint64(size))
  5344. }
  5345. i--
  5346. dAtA[i] = 0x12
  5347. if len(m.Hash) > 0 {
  5348. i -= len(m.Hash)
  5349. copy(dAtA[i:], m.Hash)
  5350. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  5351. i--
  5352. dAtA[i] = 0xa
  5353. }
  5354. return len(dAtA) - i, nil
  5355. }
  5356. func (m *RequestFinalizeBlock) Marshal() (dAtA []byte, err error) {
  5357. size := m.Size()
  5358. dAtA = make([]byte, size)
  5359. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5360. if err != nil {
  5361. return nil, err
  5362. }
  5363. return dAtA[:n], nil
  5364. }
  5365. func (m *RequestFinalizeBlock) MarshalTo(dAtA []byte) (int, error) {
  5366. size := m.Size()
  5367. return m.MarshalToSizedBuffer(dAtA[:size])
  5368. }
  5369. func (m *RequestFinalizeBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5370. i := len(dAtA)
  5371. _ = i
  5372. var l int
  5373. _ = l
  5374. if len(m.ByzantineValidators) > 0 {
  5375. for iNdEx := len(m.ByzantineValidators) - 1; iNdEx >= 0; iNdEx-- {
  5376. {
  5377. size, err := m.ByzantineValidators[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  5378. if err != nil {
  5379. return 0, err
  5380. }
  5381. i -= size
  5382. i = encodeVarintTypes(dAtA, i, uint64(size))
  5383. }
  5384. i--
  5385. dAtA[i] = 0x2a
  5386. }
  5387. }
  5388. {
  5389. size, err := m.DecidedLastCommit.MarshalToSizedBuffer(dAtA[:i])
  5390. if err != nil {
  5391. return 0, err
  5392. }
  5393. i -= size
  5394. i = encodeVarintTypes(dAtA, i, uint64(size))
  5395. }
  5396. i--
  5397. dAtA[i] = 0x22
  5398. if len(m.Txs) > 0 {
  5399. for iNdEx := len(m.Txs) - 1; iNdEx >= 0; iNdEx-- {
  5400. i -= len(m.Txs[iNdEx])
  5401. copy(dAtA[i:], m.Txs[iNdEx])
  5402. i = encodeVarintTypes(dAtA, i, uint64(len(m.Txs[iNdEx])))
  5403. i--
  5404. dAtA[i] = 0x1a
  5405. }
  5406. }
  5407. {
  5408. size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
  5409. if err != nil {
  5410. return 0, err
  5411. }
  5412. i -= size
  5413. i = encodeVarintTypes(dAtA, i, uint64(size))
  5414. }
  5415. i--
  5416. dAtA[i] = 0x12
  5417. if len(m.Hash) > 0 {
  5418. i -= len(m.Hash)
  5419. copy(dAtA[i:], m.Hash)
  5420. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  5421. i--
  5422. dAtA[i] = 0xa
  5423. }
  5424. return len(dAtA) - i, nil
  5425. }
  5426. func (m *Response) Marshal() (dAtA []byte, err error) {
  5427. size := m.Size()
  5428. dAtA = make([]byte, size)
  5429. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5430. if err != nil {
  5431. return nil, err
  5432. }
  5433. return dAtA[:n], nil
  5434. }
  5435. func (m *Response) MarshalTo(dAtA []byte) (int, error) {
  5436. size := m.Size()
  5437. return m.MarshalToSizedBuffer(dAtA[:size])
  5438. }
  5439. func (m *Response) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5440. i := len(dAtA)
  5441. _ = i
  5442. var l int
  5443. _ = l
  5444. if m.Value != nil {
  5445. {
  5446. size := m.Value.Size()
  5447. i -= size
  5448. if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil {
  5449. return 0, err
  5450. }
  5451. }
  5452. }
  5453. return len(dAtA) - i, nil
  5454. }
  5455. func (m *Response_Exception) MarshalTo(dAtA []byte) (int, error) {
  5456. size := m.Size()
  5457. return m.MarshalToSizedBuffer(dAtA[:size])
  5458. }
  5459. func (m *Response_Exception) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5460. i := len(dAtA)
  5461. if m.Exception != nil {
  5462. {
  5463. size, err := m.Exception.MarshalToSizedBuffer(dAtA[:i])
  5464. if err != nil {
  5465. return 0, err
  5466. }
  5467. i -= size
  5468. i = encodeVarintTypes(dAtA, i, uint64(size))
  5469. }
  5470. i--
  5471. dAtA[i] = 0xa
  5472. }
  5473. return len(dAtA) - i, nil
  5474. }
  5475. func (m *Response_Echo) MarshalTo(dAtA []byte) (int, error) {
  5476. size := m.Size()
  5477. return m.MarshalToSizedBuffer(dAtA[:size])
  5478. }
  5479. func (m *Response_Echo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5480. i := len(dAtA)
  5481. if m.Echo != nil {
  5482. {
  5483. size, err := m.Echo.MarshalToSizedBuffer(dAtA[:i])
  5484. if err != nil {
  5485. return 0, err
  5486. }
  5487. i -= size
  5488. i = encodeVarintTypes(dAtA, i, uint64(size))
  5489. }
  5490. i--
  5491. dAtA[i] = 0x12
  5492. }
  5493. return len(dAtA) - i, nil
  5494. }
  5495. func (m *Response_Flush) MarshalTo(dAtA []byte) (int, error) {
  5496. size := m.Size()
  5497. return m.MarshalToSizedBuffer(dAtA[:size])
  5498. }
  5499. func (m *Response_Flush) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5500. i := len(dAtA)
  5501. if m.Flush != nil {
  5502. {
  5503. size, err := m.Flush.MarshalToSizedBuffer(dAtA[:i])
  5504. if err != nil {
  5505. return 0, err
  5506. }
  5507. i -= size
  5508. i = encodeVarintTypes(dAtA, i, uint64(size))
  5509. }
  5510. i--
  5511. dAtA[i] = 0x1a
  5512. }
  5513. return len(dAtA) - i, nil
  5514. }
  5515. func (m *Response_Info) MarshalTo(dAtA []byte) (int, error) {
  5516. size := m.Size()
  5517. return m.MarshalToSizedBuffer(dAtA[:size])
  5518. }
  5519. func (m *Response_Info) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5520. i := len(dAtA)
  5521. if m.Info != nil {
  5522. {
  5523. size, err := m.Info.MarshalToSizedBuffer(dAtA[:i])
  5524. if err != nil {
  5525. return 0, err
  5526. }
  5527. i -= size
  5528. i = encodeVarintTypes(dAtA, i, uint64(size))
  5529. }
  5530. i--
  5531. dAtA[i] = 0x22
  5532. }
  5533. return len(dAtA) - i, nil
  5534. }
  5535. func (m *Response_InitChain) MarshalTo(dAtA []byte) (int, error) {
  5536. size := m.Size()
  5537. return m.MarshalToSizedBuffer(dAtA[:size])
  5538. }
  5539. func (m *Response_InitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5540. i := len(dAtA)
  5541. if m.InitChain != nil {
  5542. {
  5543. size, err := m.InitChain.MarshalToSizedBuffer(dAtA[:i])
  5544. if err != nil {
  5545. return 0, err
  5546. }
  5547. i -= size
  5548. i = encodeVarintTypes(dAtA, i, uint64(size))
  5549. }
  5550. i--
  5551. dAtA[i] = 0x2a
  5552. }
  5553. return len(dAtA) - i, nil
  5554. }
  5555. func (m *Response_Query) MarshalTo(dAtA []byte) (int, error) {
  5556. size := m.Size()
  5557. return m.MarshalToSizedBuffer(dAtA[:size])
  5558. }
  5559. func (m *Response_Query) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5560. i := len(dAtA)
  5561. if m.Query != nil {
  5562. {
  5563. size, err := m.Query.MarshalToSizedBuffer(dAtA[:i])
  5564. if err != nil {
  5565. return 0, err
  5566. }
  5567. i -= size
  5568. i = encodeVarintTypes(dAtA, i, uint64(size))
  5569. }
  5570. i--
  5571. dAtA[i] = 0x32
  5572. }
  5573. return len(dAtA) - i, nil
  5574. }
  5575. func (m *Response_BeginBlock) MarshalTo(dAtA []byte) (int, error) {
  5576. size := m.Size()
  5577. return m.MarshalToSizedBuffer(dAtA[:size])
  5578. }
  5579. func (m *Response_BeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5580. i := len(dAtA)
  5581. if m.BeginBlock != nil {
  5582. {
  5583. size, err := m.BeginBlock.MarshalToSizedBuffer(dAtA[:i])
  5584. if err != nil {
  5585. return 0, err
  5586. }
  5587. i -= size
  5588. i = encodeVarintTypes(dAtA, i, uint64(size))
  5589. }
  5590. i--
  5591. dAtA[i] = 0x3a
  5592. }
  5593. return len(dAtA) - i, nil
  5594. }
  5595. func (m *Response_CheckTx) MarshalTo(dAtA []byte) (int, error) {
  5596. size := m.Size()
  5597. return m.MarshalToSizedBuffer(dAtA[:size])
  5598. }
  5599. func (m *Response_CheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5600. i := len(dAtA)
  5601. if m.CheckTx != nil {
  5602. {
  5603. size, err := m.CheckTx.MarshalToSizedBuffer(dAtA[:i])
  5604. if err != nil {
  5605. return 0, err
  5606. }
  5607. i -= size
  5608. i = encodeVarintTypes(dAtA, i, uint64(size))
  5609. }
  5610. i--
  5611. dAtA[i] = 0x42
  5612. }
  5613. return len(dAtA) - i, nil
  5614. }
  5615. func (m *Response_DeliverTx) MarshalTo(dAtA []byte) (int, error) {
  5616. size := m.Size()
  5617. return m.MarshalToSizedBuffer(dAtA[:size])
  5618. }
  5619. func (m *Response_DeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5620. i := len(dAtA)
  5621. if m.DeliverTx != nil {
  5622. {
  5623. size, err := m.DeliverTx.MarshalToSizedBuffer(dAtA[:i])
  5624. if err != nil {
  5625. return 0, err
  5626. }
  5627. i -= size
  5628. i = encodeVarintTypes(dAtA, i, uint64(size))
  5629. }
  5630. i--
  5631. dAtA[i] = 0x4a
  5632. }
  5633. return len(dAtA) - i, nil
  5634. }
  5635. func (m *Response_EndBlock) MarshalTo(dAtA []byte) (int, error) {
  5636. size := m.Size()
  5637. return m.MarshalToSizedBuffer(dAtA[:size])
  5638. }
  5639. func (m *Response_EndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5640. i := len(dAtA)
  5641. if m.EndBlock != nil {
  5642. {
  5643. size, err := m.EndBlock.MarshalToSizedBuffer(dAtA[:i])
  5644. if err != nil {
  5645. return 0, err
  5646. }
  5647. i -= size
  5648. i = encodeVarintTypes(dAtA, i, uint64(size))
  5649. }
  5650. i--
  5651. dAtA[i] = 0x52
  5652. }
  5653. return len(dAtA) - i, nil
  5654. }
  5655. func (m *Response_Commit) MarshalTo(dAtA []byte) (int, error) {
  5656. size := m.Size()
  5657. return m.MarshalToSizedBuffer(dAtA[:size])
  5658. }
  5659. func (m *Response_Commit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5660. i := len(dAtA)
  5661. if m.Commit != nil {
  5662. {
  5663. size, err := m.Commit.MarshalToSizedBuffer(dAtA[:i])
  5664. if err != nil {
  5665. return 0, err
  5666. }
  5667. i -= size
  5668. i = encodeVarintTypes(dAtA, i, uint64(size))
  5669. }
  5670. i--
  5671. dAtA[i] = 0x5a
  5672. }
  5673. return len(dAtA) - i, nil
  5674. }
  5675. func (m *Response_ListSnapshots) MarshalTo(dAtA []byte) (int, error) {
  5676. size := m.Size()
  5677. return m.MarshalToSizedBuffer(dAtA[:size])
  5678. }
  5679. func (m *Response_ListSnapshots) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5680. i := len(dAtA)
  5681. if m.ListSnapshots != nil {
  5682. {
  5683. size, err := m.ListSnapshots.MarshalToSizedBuffer(dAtA[:i])
  5684. if err != nil {
  5685. return 0, err
  5686. }
  5687. i -= size
  5688. i = encodeVarintTypes(dAtA, i, uint64(size))
  5689. }
  5690. i--
  5691. dAtA[i] = 0x62
  5692. }
  5693. return len(dAtA) - i, nil
  5694. }
  5695. func (m *Response_OfferSnapshot) MarshalTo(dAtA []byte) (int, error) {
  5696. size := m.Size()
  5697. return m.MarshalToSizedBuffer(dAtA[:size])
  5698. }
  5699. func (m *Response_OfferSnapshot) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5700. i := len(dAtA)
  5701. if m.OfferSnapshot != nil {
  5702. {
  5703. size, err := m.OfferSnapshot.MarshalToSizedBuffer(dAtA[:i])
  5704. if err != nil {
  5705. return 0, err
  5706. }
  5707. i -= size
  5708. i = encodeVarintTypes(dAtA, i, uint64(size))
  5709. }
  5710. i--
  5711. dAtA[i] = 0x6a
  5712. }
  5713. return len(dAtA) - i, nil
  5714. }
  5715. func (m *Response_LoadSnapshotChunk) MarshalTo(dAtA []byte) (int, error) {
  5716. size := m.Size()
  5717. return m.MarshalToSizedBuffer(dAtA[:size])
  5718. }
  5719. func (m *Response_LoadSnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5720. i := len(dAtA)
  5721. if m.LoadSnapshotChunk != nil {
  5722. {
  5723. size, err := m.LoadSnapshotChunk.MarshalToSizedBuffer(dAtA[:i])
  5724. if err != nil {
  5725. return 0, err
  5726. }
  5727. i -= size
  5728. i = encodeVarintTypes(dAtA, i, uint64(size))
  5729. }
  5730. i--
  5731. dAtA[i] = 0x72
  5732. }
  5733. return len(dAtA) - i, nil
  5734. }
  5735. func (m *Response_ApplySnapshotChunk) MarshalTo(dAtA []byte) (int, error) {
  5736. size := m.Size()
  5737. return m.MarshalToSizedBuffer(dAtA[:size])
  5738. }
  5739. func (m *Response_ApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5740. i := len(dAtA)
  5741. if m.ApplySnapshotChunk != nil {
  5742. {
  5743. size, err := m.ApplySnapshotChunk.MarshalToSizedBuffer(dAtA[:i])
  5744. if err != nil {
  5745. return 0, err
  5746. }
  5747. i -= size
  5748. i = encodeVarintTypes(dAtA, i, uint64(size))
  5749. }
  5750. i--
  5751. dAtA[i] = 0x7a
  5752. }
  5753. return len(dAtA) - i, nil
  5754. }
  5755. func (m *Response_PrepareProposal) MarshalTo(dAtA []byte) (int, error) {
  5756. size := m.Size()
  5757. return m.MarshalToSizedBuffer(dAtA[:size])
  5758. }
  5759. func (m *Response_PrepareProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5760. i := len(dAtA)
  5761. if m.PrepareProposal != nil {
  5762. {
  5763. size, err := m.PrepareProposal.MarshalToSizedBuffer(dAtA[:i])
  5764. if err != nil {
  5765. return 0, err
  5766. }
  5767. i -= size
  5768. i = encodeVarintTypes(dAtA, i, uint64(size))
  5769. }
  5770. i--
  5771. dAtA[i] = 0x1
  5772. i--
  5773. dAtA[i] = 0x82
  5774. }
  5775. return len(dAtA) - i, nil
  5776. }
  5777. func (m *Response_ProcessProposal) MarshalTo(dAtA []byte) (int, error) {
  5778. size := m.Size()
  5779. return m.MarshalToSizedBuffer(dAtA[:size])
  5780. }
  5781. func (m *Response_ProcessProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5782. i := len(dAtA)
  5783. if m.ProcessProposal != nil {
  5784. {
  5785. size, err := m.ProcessProposal.MarshalToSizedBuffer(dAtA[:i])
  5786. if err != nil {
  5787. return 0, err
  5788. }
  5789. i -= size
  5790. i = encodeVarintTypes(dAtA, i, uint64(size))
  5791. }
  5792. i--
  5793. dAtA[i] = 0x1
  5794. i--
  5795. dAtA[i] = 0x8a
  5796. }
  5797. return len(dAtA) - i, nil
  5798. }
  5799. func (m *Response_ExtendVote) MarshalTo(dAtA []byte) (int, error) {
  5800. size := m.Size()
  5801. return m.MarshalToSizedBuffer(dAtA[:size])
  5802. }
  5803. func (m *Response_ExtendVote) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5804. i := len(dAtA)
  5805. if m.ExtendVote != nil {
  5806. {
  5807. size, err := m.ExtendVote.MarshalToSizedBuffer(dAtA[:i])
  5808. if err != nil {
  5809. return 0, err
  5810. }
  5811. i -= size
  5812. i = encodeVarintTypes(dAtA, i, uint64(size))
  5813. }
  5814. i--
  5815. dAtA[i] = 0x1
  5816. i--
  5817. dAtA[i] = 0x92
  5818. }
  5819. return len(dAtA) - i, nil
  5820. }
  5821. func (m *Response_VerifyVoteExtension) MarshalTo(dAtA []byte) (int, error) {
  5822. size := m.Size()
  5823. return m.MarshalToSizedBuffer(dAtA[:size])
  5824. }
  5825. func (m *Response_VerifyVoteExtension) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5826. i := len(dAtA)
  5827. if m.VerifyVoteExtension != nil {
  5828. {
  5829. size, err := m.VerifyVoteExtension.MarshalToSizedBuffer(dAtA[:i])
  5830. if err != nil {
  5831. return 0, err
  5832. }
  5833. i -= size
  5834. i = encodeVarintTypes(dAtA, i, uint64(size))
  5835. }
  5836. i--
  5837. dAtA[i] = 0x1
  5838. i--
  5839. dAtA[i] = 0x9a
  5840. }
  5841. return len(dAtA) - i, nil
  5842. }
  5843. func (m *Response_FinalizeBlock) MarshalTo(dAtA []byte) (int, error) {
  5844. size := m.Size()
  5845. return m.MarshalToSizedBuffer(dAtA[:size])
  5846. }
  5847. func (m *Response_FinalizeBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5848. i := len(dAtA)
  5849. if m.FinalizeBlock != nil {
  5850. {
  5851. size, err := m.FinalizeBlock.MarshalToSizedBuffer(dAtA[:i])
  5852. if err != nil {
  5853. return 0, err
  5854. }
  5855. i -= size
  5856. i = encodeVarintTypes(dAtA, i, uint64(size))
  5857. }
  5858. i--
  5859. dAtA[i] = 0x1
  5860. i--
  5861. dAtA[i] = 0xa2
  5862. }
  5863. return len(dAtA) - i, nil
  5864. }
  5865. func (m *ResponseException) Marshal() (dAtA []byte, err error) {
  5866. size := m.Size()
  5867. dAtA = make([]byte, size)
  5868. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5869. if err != nil {
  5870. return nil, err
  5871. }
  5872. return dAtA[:n], nil
  5873. }
  5874. func (m *ResponseException) MarshalTo(dAtA []byte) (int, error) {
  5875. size := m.Size()
  5876. return m.MarshalToSizedBuffer(dAtA[:size])
  5877. }
  5878. func (m *ResponseException) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5879. i := len(dAtA)
  5880. _ = i
  5881. var l int
  5882. _ = l
  5883. if len(m.Error) > 0 {
  5884. i -= len(m.Error)
  5885. copy(dAtA[i:], m.Error)
  5886. i = encodeVarintTypes(dAtA, i, uint64(len(m.Error)))
  5887. i--
  5888. dAtA[i] = 0xa
  5889. }
  5890. return len(dAtA) - i, nil
  5891. }
  5892. func (m *ResponseEcho) Marshal() (dAtA []byte, err error) {
  5893. size := m.Size()
  5894. dAtA = make([]byte, size)
  5895. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5896. if err != nil {
  5897. return nil, err
  5898. }
  5899. return dAtA[:n], nil
  5900. }
  5901. func (m *ResponseEcho) MarshalTo(dAtA []byte) (int, error) {
  5902. size := m.Size()
  5903. return m.MarshalToSizedBuffer(dAtA[:size])
  5904. }
  5905. func (m *ResponseEcho) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5906. i := len(dAtA)
  5907. _ = i
  5908. var l int
  5909. _ = l
  5910. if len(m.Message) > 0 {
  5911. i -= len(m.Message)
  5912. copy(dAtA[i:], m.Message)
  5913. i = encodeVarintTypes(dAtA, i, uint64(len(m.Message)))
  5914. i--
  5915. dAtA[i] = 0xa
  5916. }
  5917. return len(dAtA) - i, nil
  5918. }
  5919. func (m *ResponseFlush) Marshal() (dAtA []byte, err error) {
  5920. size := m.Size()
  5921. dAtA = make([]byte, size)
  5922. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5923. if err != nil {
  5924. return nil, err
  5925. }
  5926. return dAtA[:n], nil
  5927. }
  5928. func (m *ResponseFlush) MarshalTo(dAtA []byte) (int, error) {
  5929. size := m.Size()
  5930. return m.MarshalToSizedBuffer(dAtA[:size])
  5931. }
  5932. func (m *ResponseFlush) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5933. i := len(dAtA)
  5934. _ = i
  5935. var l int
  5936. _ = l
  5937. return len(dAtA) - i, nil
  5938. }
  5939. func (m *ResponseInfo) Marshal() (dAtA []byte, err error) {
  5940. size := m.Size()
  5941. dAtA = make([]byte, size)
  5942. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5943. if err != nil {
  5944. return nil, err
  5945. }
  5946. return dAtA[:n], nil
  5947. }
  5948. func (m *ResponseInfo) MarshalTo(dAtA []byte) (int, error) {
  5949. size := m.Size()
  5950. return m.MarshalToSizedBuffer(dAtA[:size])
  5951. }
  5952. func (m *ResponseInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5953. i := len(dAtA)
  5954. _ = i
  5955. var l int
  5956. _ = l
  5957. if len(m.LastBlockAppHash) > 0 {
  5958. i -= len(m.LastBlockAppHash)
  5959. copy(dAtA[i:], m.LastBlockAppHash)
  5960. i = encodeVarintTypes(dAtA, i, uint64(len(m.LastBlockAppHash)))
  5961. i--
  5962. dAtA[i] = 0x2a
  5963. }
  5964. if m.LastBlockHeight != 0 {
  5965. i = encodeVarintTypes(dAtA, i, uint64(m.LastBlockHeight))
  5966. i--
  5967. dAtA[i] = 0x20
  5968. }
  5969. if m.AppVersion != 0 {
  5970. i = encodeVarintTypes(dAtA, i, uint64(m.AppVersion))
  5971. i--
  5972. dAtA[i] = 0x18
  5973. }
  5974. if len(m.Version) > 0 {
  5975. i -= len(m.Version)
  5976. copy(dAtA[i:], m.Version)
  5977. i = encodeVarintTypes(dAtA, i, uint64(len(m.Version)))
  5978. i--
  5979. dAtA[i] = 0x12
  5980. }
  5981. if len(m.Data) > 0 {
  5982. i -= len(m.Data)
  5983. copy(dAtA[i:], m.Data)
  5984. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  5985. i--
  5986. dAtA[i] = 0xa
  5987. }
  5988. return len(dAtA) - i, nil
  5989. }
  5990. func (m *ResponseInitChain) Marshal() (dAtA []byte, err error) {
  5991. size := m.Size()
  5992. dAtA = make([]byte, size)
  5993. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5994. if err != nil {
  5995. return nil, err
  5996. }
  5997. return dAtA[:n], nil
  5998. }
  5999. func (m *ResponseInitChain) MarshalTo(dAtA []byte) (int, error) {
  6000. size := m.Size()
  6001. return m.MarshalToSizedBuffer(dAtA[:size])
  6002. }
  6003. func (m *ResponseInitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6004. i := len(dAtA)
  6005. _ = i
  6006. var l int
  6007. _ = l
  6008. if len(m.AppHash) > 0 {
  6009. i -= len(m.AppHash)
  6010. copy(dAtA[i:], m.AppHash)
  6011. i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash)))
  6012. i--
  6013. dAtA[i] = 0x1a
  6014. }
  6015. if len(m.Validators) > 0 {
  6016. for iNdEx := len(m.Validators) - 1; iNdEx >= 0; iNdEx-- {
  6017. {
  6018. size, err := m.Validators[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6019. if err != nil {
  6020. return 0, err
  6021. }
  6022. i -= size
  6023. i = encodeVarintTypes(dAtA, i, uint64(size))
  6024. }
  6025. i--
  6026. dAtA[i] = 0x12
  6027. }
  6028. }
  6029. if m.ConsensusParams != nil {
  6030. {
  6031. size, err := m.ConsensusParams.MarshalToSizedBuffer(dAtA[:i])
  6032. if err != nil {
  6033. return 0, err
  6034. }
  6035. i -= size
  6036. i = encodeVarintTypes(dAtA, i, uint64(size))
  6037. }
  6038. i--
  6039. dAtA[i] = 0xa
  6040. }
  6041. return len(dAtA) - i, nil
  6042. }
  6043. func (m *ResponseQuery) Marshal() (dAtA []byte, err error) {
  6044. size := m.Size()
  6045. dAtA = make([]byte, size)
  6046. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6047. if err != nil {
  6048. return nil, err
  6049. }
  6050. return dAtA[:n], nil
  6051. }
  6052. func (m *ResponseQuery) MarshalTo(dAtA []byte) (int, error) {
  6053. size := m.Size()
  6054. return m.MarshalToSizedBuffer(dAtA[:size])
  6055. }
  6056. func (m *ResponseQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6057. i := len(dAtA)
  6058. _ = i
  6059. var l int
  6060. _ = l
  6061. if len(m.Codespace) > 0 {
  6062. i -= len(m.Codespace)
  6063. copy(dAtA[i:], m.Codespace)
  6064. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6065. i--
  6066. dAtA[i] = 0x52
  6067. }
  6068. if m.Height != 0 {
  6069. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  6070. i--
  6071. dAtA[i] = 0x48
  6072. }
  6073. if m.ProofOps != nil {
  6074. {
  6075. size, err := m.ProofOps.MarshalToSizedBuffer(dAtA[:i])
  6076. if err != nil {
  6077. return 0, err
  6078. }
  6079. i -= size
  6080. i = encodeVarintTypes(dAtA, i, uint64(size))
  6081. }
  6082. i--
  6083. dAtA[i] = 0x42
  6084. }
  6085. if len(m.Value) > 0 {
  6086. i -= len(m.Value)
  6087. copy(dAtA[i:], m.Value)
  6088. i = encodeVarintTypes(dAtA, i, uint64(len(m.Value)))
  6089. i--
  6090. dAtA[i] = 0x3a
  6091. }
  6092. if len(m.Key) > 0 {
  6093. i -= len(m.Key)
  6094. copy(dAtA[i:], m.Key)
  6095. i = encodeVarintTypes(dAtA, i, uint64(len(m.Key)))
  6096. i--
  6097. dAtA[i] = 0x32
  6098. }
  6099. if m.Index != 0 {
  6100. i = encodeVarintTypes(dAtA, i, uint64(m.Index))
  6101. i--
  6102. dAtA[i] = 0x28
  6103. }
  6104. if len(m.Info) > 0 {
  6105. i -= len(m.Info)
  6106. copy(dAtA[i:], m.Info)
  6107. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6108. i--
  6109. dAtA[i] = 0x22
  6110. }
  6111. if len(m.Log) > 0 {
  6112. i -= len(m.Log)
  6113. copy(dAtA[i:], m.Log)
  6114. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6115. i--
  6116. dAtA[i] = 0x1a
  6117. }
  6118. if m.Code != 0 {
  6119. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6120. i--
  6121. dAtA[i] = 0x8
  6122. }
  6123. return len(dAtA) - i, nil
  6124. }
  6125. func (m *ResponseBeginBlock) Marshal() (dAtA []byte, err error) {
  6126. size := m.Size()
  6127. dAtA = make([]byte, size)
  6128. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6129. if err != nil {
  6130. return nil, err
  6131. }
  6132. return dAtA[:n], nil
  6133. }
  6134. func (m *ResponseBeginBlock) MarshalTo(dAtA []byte) (int, error) {
  6135. size := m.Size()
  6136. return m.MarshalToSizedBuffer(dAtA[:size])
  6137. }
  6138. func (m *ResponseBeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6139. i := len(dAtA)
  6140. _ = i
  6141. var l int
  6142. _ = l
  6143. if len(m.Events) > 0 {
  6144. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6145. {
  6146. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6147. if err != nil {
  6148. return 0, err
  6149. }
  6150. i -= size
  6151. i = encodeVarintTypes(dAtA, i, uint64(size))
  6152. }
  6153. i--
  6154. dAtA[i] = 0xa
  6155. }
  6156. }
  6157. return len(dAtA) - i, nil
  6158. }
  6159. func (m *ResponseCheckTx) Marshal() (dAtA []byte, err error) {
  6160. size := m.Size()
  6161. dAtA = make([]byte, size)
  6162. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6163. if err != nil {
  6164. return nil, err
  6165. }
  6166. return dAtA[:n], nil
  6167. }
  6168. func (m *ResponseCheckTx) MarshalTo(dAtA []byte) (int, error) {
  6169. size := m.Size()
  6170. return m.MarshalToSizedBuffer(dAtA[:size])
  6171. }
  6172. func (m *ResponseCheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6173. i := len(dAtA)
  6174. _ = i
  6175. var l int
  6176. _ = l
  6177. if len(m.MempoolError) > 0 {
  6178. i -= len(m.MempoolError)
  6179. copy(dAtA[i:], m.MempoolError)
  6180. i = encodeVarintTypes(dAtA, i, uint64(len(m.MempoolError)))
  6181. i--
  6182. dAtA[i] = 0x5a
  6183. }
  6184. if m.Priority != 0 {
  6185. i = encodeVarintTypes(dAtA, i, uint64(m.Priority))
  6186. i--
  6187. dAtA[i] = 0x50
  6188. }
  6189. if len(m.Sender) > 0 {
  6190. i -= len(m.Sender)
  6191. copy(dAtA[i:], m.Sender)
  6192. i = encodeVarintTypes(dAtA, i, uint64(len(m.Sender)))
  6193. i--
  6194. dAtA[i] = 0x4a
  6195. }
  6196. if len(m.Codespace) > 0 {
  6197. i -= len(m.Codespace)
  6198. copy(dAtA[i:], m.Codespace)
  6199. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6200. i--
  6201. dAtA[i] = 0x42
  6202. }
  6203. if len(m.Events) > 0 {
  6204. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6205. {
  6206. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6207. if err != nil {
  6208. return 0, err
  6209. }
  6210. i -= size
  6211. i = encodeVarintTypes(dAtA, i, uint64(size))
  6212. }
  6213. i--
  6214. dAtA[i] = 0x3a
  6215. }
  6216. }
  6217. if m.GasUsed != 0 {
  6218. i = encodeVarintTypes(dAtA, i, uint64(m.GasUsed))
  6219. i--
  6220. dAtA[i] = 0x30
  6221. }
  6222. if m.GasWanted != 0 {
  6223. i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted))
  6224. i--
  6225. dAtA[i] = 0x28
  6226. }
  6227. if len(m.Info) > 0 {
  6228. i -= len(m.Info)
  6229. copy(dAtA[i:], m.Info)
  6230. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6231. i--
  6232. dAtA[i] = 0x22
  6233. }
  6234. if len(m.Log) > 0 {
  6235. i -= len(m.Log)
  6236. copy(dAtA[i:], m.Log)
  6237. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6238. i--
  6239. dAtA[i] = 0x1a
  6240. }
  6241. if len(m.Data) > 0 {
  6242. i -= len(m.Data)
  6243. copy(dAtA[i:], m.Data)
  6244. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6245. i--
  6246. dAtA[i] = 0x12
  6247. }
  6248. if m.Code != 0 {
  6249. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6250. i--
  6251. dAtA[i] = 0x8
  6252. }
  6253. return len(dAtA) - i, nil
  6254. }
  6255. func (m *ResponseDeliverTx) Marshal() (dAtA []byte, err error) {
  6256. size := m.Size()
  6257. dAtA = make([]byte, size)
  6258. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6259. if err != nil {
  6260. return nil, err
  6261. }
  6262. return dAtA[:n], nil
  6263. }
  6264. func (m *ResponseDeliverTx) MarshalTo(dAtA []byte) (int, error) {
  6265. size := m.Size()
  6266. return m.MarshalToSizedBuffer(dAtA[:size])
  6267. }
  6268. func (m *ResponseDeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6269. i := len(dAtA)
  6270. _ = i
  6271. var l int
  6272. _ = l
  6273. if len(m.Codespace) > 0 {
  6274. i -= len(m.Codespace)
  6275. copy(dAtA[i:], m.Codespace)
  6276. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6277. i--
  6278. dAtA[i] = 0x42
  6279. }
  6280. if len(m.Events) > 0 {
  6281. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6282. {
  6283. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6284. if err != nil {
  6285. return 0, err
  6286. }
  6287. i -= size
  6288. i = encodeVarintTypes(dAtA, i, uint64(size))
  6289. }
  6290. i--
  6291. dAtA[i] = 0x3a
  6292. }
  6293. }
  6294. if m.GasUsed != 0 {
  6295. i = encodeVarintTypes(dAtA, i, uint64(m.GasUsed))
  6296. i--
  6297. dAtA[i] = 0x30
  6298. }
  6299. if m.GasWanted != 0 {
  6300. i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted))
  6301. i--
  6302. dAtA[i] = 0x28
  6303. }
  6304. if len(m.Info) > 0 {
  6305. i -= len(m.Info)
  6306. copy(dAtA[i:], m.Info)
  6307. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6308. i--
  6309. dAtA[i] = 0x22
  6310. }
  6311. if len(m.Log) > 0 {
  6312. i -= len(m.Log)
  6313. copy(dAtA[i:], m.Log)
  6314. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6315. i--
  6316. dAtA[i] = 0x1a
  6317. }
  6318. if len(m.Data) > 0 {
  6319. i -= len(m.Data)
  6320. copy(dAtA[i:], m.Data)
  6321. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6322. i--
  6323. dAtA[i] = 0x12
  6324. }
  6325. if m.Code != 0 {
  6326. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6327. i--
  6328. dAtA[i] = 0x8
  6329. }
  6330. return len(dAtA) - i, nil
  6331. }
  6332. func (m *ResponseEndBlock) Marshal() (dAtA []byte, err error) {
  6333. size := m.Size()
  6334. dAtA = make([]byte, size)
  6335. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6336. if err != nil {
  6337. return nil, err
  6338. }
  6339. return dAtA[:n], nil
  6340. }
  6341. func (m *ResponseEndBlock) MarshalTo(dAtA []byte) (int, error) {
  6342. size := m.Size()
  6343. return m.MarshalToSizedBuffer(dAtA[:size])
  6344. }
  6345. func (m *ResponseEndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6346. i := len(dAtA)
  6347. _ = i
  6348. var l int
  6349. _ = l
  6350. if len(m.Events) > 0 {
  6351. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6352. {
  6353. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6354. if err != nil {
  6355. return 0, err
  6356. }
  6357. i -= size
  6358. i = encodeVarintTypes(dAtA, i, uint64(size))
  6359. }
  6360. i--
  6361. dAtA[i] = 0x1a
  6362. }
  6363. }
  6364. if m.ConsensusParamUpdates != nil {
  6365. {
  6366. size, err := m.ConsensusParamUpdates.MarshalToSizedBuffer(dAtA[:i])
  6367. if err != nil {
  6368. return 0, err
  6369. }
  6370. i -= size
  6371. i = encodeVarintTypes(dAtA, i, uint64(size))
  6372. }
  6373. i--
  6374. dAtA[i] = 0x12
  6375. }
  6376. if len(m.ValidatorUpdates) > 0 {
  6377. for iNdEx := len(m.ValidatorUpdates) - 1; iNdEx >= 0; iNdEx-- {
  6378. {
  6379. size, err := m.ValidatorUpdates[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6380. if err != nil {
  6381. return 0, err
  6382. }
  6383. i -= size
  6384. i = encodeVarintTypes(dAtA, i, uint64(size))
  6385. }
  6386. i--
  6387. dAtA[i] = 0xa
  6388. }
  6389. }
  6390. return len(dAtA) - i, nil
  6391. }
  6392. func (m *ResponseCommit) Marshal() (dAtA []byte, err error) {
  6393. size := m.Size()
  6394. dAtA = make([]byte, size)
  6395. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6396. if err != nil {
  6397. return nil, err
  6398. }
  6399. return dAtA[:n], nil
  6400. }
  6401. func (m *ResponseCommit) MarshalTo(dAtA []byte) (int, error) {
  6402. size := m.Size()
  6403. return m.MarshalToSizedBuffer(dAtA[:size])
  6404. }
  6405. func (m *ResponseCommit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6406. i := len(dAtA)
  6407. _ = i
  6408. var l int
  6409. _ = l
  6410. if m.RetainHeight != 0 {
  6411. i = encodeVarintTypes(dAtA, i, uint64(m.RetainHeight))
  6412. i--
  6413. dAtA[i] = 0x18
  6414. }
  6415. if len(m.Data) > 0 {
  6416. i -= len(m.Data)
  6417. copy(dAtA[i:], m.Data)
  6418. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6419. i--
  6420. dAtA[i] = 0x12
  6421. }
  6422. return len(dAtA) - i, nil
  6423. }
  6424. func (m *ResponseListSnapshots) Marshal() (dAtA []byte, err error) {
  6425. size := m.Size()
  6426. dAtA = make([]byte, size)
  6427. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6428. if err != nil {
  6429. return nil, err
  6430. }
  6431. return dAtA[:n], nil
  6432. }
  6433. func (m *ResponseListSnapshots) MarshalTo(dAtA []byte) (int, error) {
  6434. size := m.Size()
  6435. return m.MarshalToSizedBuffer(dAtA[:size])
  6436. }
  6437. func (m *ResponseListSnapshots) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6438. i := len(dAtA)
  6439. _ = i
  6440. var l int
  6441. _ = l
  6442. if len(m.Snapshots) > 0 {
  6443. for iNdEx := len(m.Snapshots) - 1; iNdEx >= 0; iNdEx-- {
  6444. {
  6445. size, err := m.Snapshots[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6446. if err != nil {
  6447. return 0, err
  6448. }
  6449. i -= size
  6450. i = encodeVarintTypes(dAtA, i, uint64(size))
  6451. }
  6452. i--
  6453. dAtA[i] = 0xa
  6454. }
  6455. }
  6456. return len(dAtA) - i, nil
  6457. }
  6458. func (m *ResponseOfferSnapshot) Marshal() (dAtA []byte, err error) {
  6459. size := m.Size()
  6460. dAtA = make([]byte, size)
  6461. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6462. if err != nil {
  6463. return nil, err
  6464. }
  6465. return dAtA[:n], nil
  6466. }
  6467. func (m *ResponseOfferSnapshot) MarshalTo(dAtA []byte) (int, error) {
  6468. size := m.Size()
  6469. return m.MarshalToSizedBuffer(dAtA[:size])
  6470. }
  6471. func (m *ResponseOfferSnapshot) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6472. i := len(dAtA)
  6473. _ = i
  6474. var l int
  6475. _ = l
  6476. if m.Result != 0 {
  6477. i = encodeVarintTypes(dAtA, i, uint64(m.Result))
  6478. i--
  6479. dAtA[i] = 0x8
  6480. }
  6481. return len(dAtA) - i, nil
  6482. }
  6483. func (m *ResponseLoadSnapshotChunk) Marshal() (dAtA []byte, err error) {
  6484. size := m.Size()
  6485. dAtA = make([]byte, size)
  6486. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6487. if err != nil {
  6488. return nil, err
  6489. }
  6490. return dAtA[:n], nil
  6491. }
  6492. func (m *ResponseLoadSnapshotChunk) MarshalTo(dAtA []byte) (int, error) {
  6493. size := m.Size()
  6494. return m.MarshalToSizedBuffer(dAtA[:size])
  6495. }
  6496. func (m *ResponseLoadSnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6497. i := len(dAtA)
  6498. _ = i
  6499. var l int
  6500. _ = l
  6501. if len(m.Chunk) > 0 {
  6502. i -= len(m.Chunk)
  6503. copy(dAtA[i:], m.Chunk)
  6504. i = encodeVarintTypes(dAtA, i, uint64(len(m.Chunk)))
  6505. i--
  6506. dAtA[i] = 0xa
  6507. }
  6508. return len(dAtA) - i, nil
  6509. }
  6510. func (m *ResponseApplySnapshotChunk) Marshal() (dAtA []byte, err error) {
  6511. size := m.Size()
  6512. dAtA = make([]byte, size)
  6513. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6514. if err != nil {
  6515. return nil, err
  6516. }
  6517. return dAtA[:n], nil
  6518. }
  6519. func (m *ResponseApplySnapshotChunk) MarshalTo(dAtA []byte) (int, error) {
  6520. size := m.Size()
  6521. return m.MarshalToSizedBuffer(dAtA[:size])
  6522. }
  6523. func (m *ResponseApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6524. i := len(dAtA)
  6525. _ = i
  6526. var l int
  6527. _ = l
  6528. if len(m.RejectSenders) > 0 {
  6529. for iNdEx := len(m.RejectSenders) - 1; iNdEx >= 0; iNdEx-- {
  6530. i -= len(m.RejectSenders[iNdEx])
  6531. copy(dAtA[i:], m.RejectSenders[iNdEx])
  6532. i = encodeVarintTypes(dAtA, i, uint64(len(m.RejectSenders[iNdEx])))
  6533. i--
  6534. dAtA[i] = 0x1a
  6535. }
  6536. }
  6537. if len(m.RefetchChunks) > 0 {
  6538. dAtA55 := make([]byte, len(m.RefetchChunks)*10)
  6539. var j54 int
  6540. for _, num := range m.RefetchChunks {
  6541. for num >= 1<<7 {
  6542. dAtA55[j54] = uint8(uint64(num)&0x7f | 0x80)
  6543. num >>= 7
  6544. j54++
  6545. }
  6546. dAtA55[j54] = uint8(num)
  6547. j54++
  6548. }
  6549. i -= j54
  6550. copy(dAtA[i:], dAtA55[:j54])
  6551. i = encodeVarintTypes(dAtA, i, uint64(j54))
  6552. i--
  6553. dAtA[i] = 0x12
  6554. }
  6555. if m.Result != 0 {
  6556. i = encodeVarintTypes(dAtA, i, uint64(m.Result))
  6557. i--
  6558. dAtA[i] = 0x8
  6559. }
  6560. return len(dAtA) - i, nil
  6561. }
  6562. func (m *ResponseExtendVote) Marshal() (dAtA []byte, err error) {
  6563. size := m.Size()
  6564. dAtA = make([]byte, size)
  6565. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6566. if err != nil {
  6567. return nil, err
  6568. }
  6569. return dAtA[:n], nil
  6570. }
  6571. func (m *ResponseExtendVote) MarshalTo(dAtA []byte) (int, error) {
  6572. size := m.Size()
  6573. return m.MarshalToSizedBuffer(dAtA[:size])
  6574. }
  6575. func (m *ResponseExtendVote) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6576. i := len(dAtA)
  6577. _ = i
  6578. var l int
  6579. _ = l
  6580. if m.VoteExtension != nil {
  6581. {
  6582. size, err := m.VoteExtension.MarshalToSizedBuffer(dAtA[:i])
  6583. if err != nil {
  6584. return 0, err
  6585. }
  6586. i -= size
  6587. i = encodeVarintTypes(dAtA, i, uint64(size))
  6588. }
  6589. i--
  6590. dAtA[i] = 0xa
  6591. }
  6592. return len(dAtA) - i, nil
  6593. }
  6594. func (m *ResponseVerifyVoteExtension) Marshal() (dAtA []byte, err error) {
  6595. size := m.Size()
  6596. dAtA = make([]byte, size)
  6597. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6598. if err != nil {
  6599. return nil, err
  6600. }
  6601. return dAtA[:n], nil
  6602. }
  6603. func (m *ResponseVerifyVoteExtension) MarshalTo(dAtA []byte) (int, error) {
  6604. size := m.Size()
  6605. return m.MarshalToSizedBuffer(dAtA[:size])
  6606. }
  6607. func (m *ResponseVerifyVoteExtension) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6608. i := len(dAtA)
  6609. _ = i
  6610. var l int
  6611. _ = l
  6612. if m.Result != 0 {
  6613. i = encodeVarintTypes(dAtA, i, uint64(m.Result))
  6614. i--
  6615. dAtA[i] = 0x8
  6616. }
  6617. return len(dAtA) - i, nil
  6618. }
  6619. func (m *ResponsePrepareProposal) Marshal() (dAtA []byte, err error) {
  6620. size := m.Size()
  6621. dAtA = make([]byte, size)
  6622. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6623. if err != nil {
  6624. return nil, err
  6625. }
  6626. return dAtA[:n], nil
  6627. }
  6628. func (m *ResponsePrepareProposal) MarshalTo(dAtA []byte) (int, error) {
  6629. size := m.Size()
  6630. return m.MarshalToSizedBuffer(dAtA[:size])
  6631. }
  6632. func (m *ResponsePrepareProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6633. i := len(dAtA)
  6634. _ = i
  6635. var l int
  6636. _ = l
  6637. if len(m.BlockData) > 0 {
  6638. for iNdEx := len(m.BlockData) - 1; iNdEx >= 0; iNdEx-- {
  6639. i -= len(m.BlockData[iNdEx])
  6640. copy(dAtA[i:], m.BlockData[iNdEx])
  6641. i = encodeVarintTypes(dAtA, i, uint64(len(m.BlockData[iNdEx])))
  6642. i--
  6643. dAtA[i] = 0xa
  6644. }
  6645. }
  6646. return len(dAtA) - i, nil
  6647. }
  6648. func (m *ResponseProcessProposal) Marshal() (dAtA []byte, err error) {
  6649. size := m.Size()
  6650. dAtA = make([]byte, size)
  6651. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6652. if err != nil {
  6653. return nil, err
  6654. }
  6655. return dAtA[:n], nil
  6656. }
  6657. func (m *ResponseProcessProposal) MarshalTo(dAtA []byte) (int, error) {
  6658. size := m.Size()
  6659. return m.MarshalToSizedBuffer(dAtA[:size])
  6660. }
  6661. func (m *ResponseProcessProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6662. i := len(dAtA)
  6663. _ = i
  6664. var l int
  6665. _ = l
  6666. if m.ConsensusParamUpdates != nil {
  6667. {
  6668. size, err := m.ConsensusParamUpdates.MarshalToSizedBuffer(dAtA[:i])
  6669. if err != nil {
  6670. return 0, err
  6671. }
  6672. i -= size
  6673. i = encodeVarintTypes(dAtA, i, uint64(size))
  6674. }
  6675. i--
  6676. dAtA[i] = 0x2a
  6677. }
  6678. if len(m.ValidatorUpdates) > 0 {
  6679. for iNdEx := len(m.ValidatorUpdates) - 1; iNdEx >= 0; iNdEx-- {
  6680. {
  6681. size, err := m.ValidatorUpdates[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6682. if err != nil {
  6683. return 0, err
  6684. }
  6685. i -= size
  6686. i = encodeVarintTypes(dAtA, i, uint64(size))
  6687. }
  6688. i--
  6689. dAtA[i] = 0x22
  6690. }
  6691. }
  6692. if len(m.TxResults) > 0 {
  6693. for iNdEx := len(m.TxResults) - 1; iNdEx >= 0; iNdEx-- {
  6694. {
  6695. size, err := m.TxResults[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6696. if err != nil {
  6697. return 0, err
  6698. }
  6699. i -= size
  6700. i = encodeVarintTypes(dAtA, i, uint64(size))
  6701. }
  6702. i--
  6703. dAtA[i] = 0x1a
  6704. }
  6705. }
  6706. if len(m.AppHash) > 0 {
  6707. i -= len(m.AppHash)
  6708. copy(dAtA[i:], m.AppHash)
  6709. i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash)))
  6710. i--
  6711. dAtA[i] = 0x12
  6712. }
  6713. if m.Accept {
  6714. i--
  6715. if m.Accept {
  6716. dAtA[i] = 1
  6717. } else {
  6718. dAtA[i] = 0
  6719. }
  6720. i--
  6721. dAtA[i] = 0x8
  6722. }
  6723. return len(dAtA) - i, nil
  6724. }
  6725. func (m *ResponseFinalizeBlock) Marshal() (dAtA []byte, err error) {
  6726. size := m.Size()
  6727. dAtA = make([]byte, size)
  6728. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6729. if err != nil {
  6730. return nil, err
  6731. }
  6732. return dAtA[:n], nil
  6733. }
  6734. func (m *ResponseFinalizeBlock) MarshalTo(dAtA []byte) (int, error) {
  6735. size := m.Size()
  6736. return m.MarshalToSizedBuffer(dAtA[:size])
  6737. }
  6738. func (m *ResponseFinalizeBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6739. i := len(dAtA)
  6740. _ = i
  6741. var l int
  6742. _ = l
  6743. if m.RetainHeight != 0 {
  6744. i = encodeVarintTypes(dAtA, i, uint64(m.RetainHeight))
  6745. i--
  6746. dAtA[i] = 0x30
  6747. }
  6748. if len(m.AppHash) > 0 {
  6749. i -= len(m.AppHash)
  6750. copy(dAtA[i:], m.AppHash)
  6751. i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash)))
  6752. i--
  6753. dAtA[i] = 0x2a
  6754. }
  6755. if m.ConsensusParamUpdates != nil {
  6756. {
  6757. size, err := m.ConsensusParamUpdates.MarshalToSizedBuffer(dAtA[:i])
  6758. if err != nil {
  6759. return 0, err
  6760. }
  6761. i -= size
  6762. i = encodeVarintTypes(dAtA, i, uint64(size))
  6763. }
  6764. i--
  6765. dAtA[i] = 0x22
  6766. }
  6767. if len(m.ValidatorUpdates) > 0 {
  6768. for iNdEx := len(m.ValidatorUpdates) - 1; iNdEx >= 0; iNdEx-- {
  6769. {
  6770. size, err := m.ValidatorUpdates[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6771. if err != nil {
  6772. return 0, err
  6773. }
  6774. i -= size
  6775. i = encodeVarintTypes(dAtA, i, uint64(size))
  6776. }
  6777. i--
  6778. dAtA[i] = 0x1a
  6779. }
  6780. }
  6781. if len(m.TxResults) > 0 {
  6782. for iNdEx := len(m.TxResults) - 1; iNdEx >= 0; iNdEx-- {
  6783. {
  6784. size, err := m.TxResults[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6785. if err != nil {
  6786. return 0, err
  6787. }
  6788. i -= size
  6789. i = encodeVarintTypes(dAtA, i, uint64(size))
  6790. }
  6791. i--
  6792. dAtA[i] = 0x12
  6793. }
  6794. }
  6795. if len(m.Events) > 0 {
  6796. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6797. {
  6798. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6799. if err != nil {
  6800. return 0, err
  6801. }
  6802. i -= size
  6803. i = encodeVarintTypes(dAtA, i, uint64(size))
  6804. }
  6805. i--
  6806. dAtA[i] = 0xa
  6807. }
  6808. }
  6809. return len(dAtA) - i, nil
  6810. }
  6811. func (m *CommitInfo) Marshal() (dAtA []byte, err error) {
  6812. size := m.Size()
  6813. dAtA = make([]byte, size)
  6814. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6815. if err != nil {
  6816. return nil, err
  6817. }
  6818. return dAtA[:n], nil
  6819. }
  6820. func (m *CommitInfo) MarshalTo(dAtA []byte) (int, error) {
  6821. size := m.Size()
  6822. return m.MarshalToSizedBuffer(dAtA[:size])
  6823. }
  6824. func (m *CommitInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6825. i := len(dAtA)
  6826. _ = i
  6827. var l int
  6828. _ = l
  6829. if len(m.Votes) > 0 {
  6830. for iNdEx := len(m.Votes) - 1; iNdEx >= 0; iNdEx-- {
  6831. {
  6832. size, err := m.Votes[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6833. if err != nil {
  6834. return 0, err
  6835. }
  6836. i -= size
  6837. i = encodeVarintTypes(dAtA, i, uint64(size))
  6838. }
  6839. i--
  6840. dAtA[i] = 0x12
  6841. }
  6842. }
  6843. if m.Round != 0 {
  6844. i = encodeVarintTypes(dAtA, i, uint64(m.Round))
  6845. i--
  6846. dAtA[i] = 0x8
  6847. }
  6848. return len(dAtA) - i, nil
  6849. }
  6850. func (m *Event) Marshal() (dAtA []byte, err error) {
  6851. size := m.Size()
  6852. dAtA = make([]byte, size)
  6853. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6854. if err != nil {
  6855. return nil, err
  6856. }
  6857. return dAtA[:n], nil
  6858. }
  6859. func (m *Event) MarshalTo(dAtA []byte) (int, error) {
  6860. size := m.Size()
  6861. return m.MarshalToSizedBuffer(dAtA[:size])
  6862. }
  6863. func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6864. i := len(dAtA)
  6865. _ = i
  6866. var l int
  6867. _ = l
  6868. if len(m.Attributes) > 0 {
  6869. for iNdEx := len(m.Attributes) - 1; iNdEx >= 0; iNdEx-- {
  6870. {
  6871. size, err := m.Attributes[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6872. if err != nil {
  6873. return 0, err
  6874. }
  6875. i -= size
  6876. i = encodeVarintTypes(dAtA, i, uint64(size))
  6877. }
  6878. i--
  6879. dAtA[i] = 0x12
  6880. }
  6881. }
  6882. if len(m.Type) > 0 {
  6883. i -= len(m.Type)
  6884. copy(dAtA[i:], m.Type)
  6885. i = encodeVarintTypes(dAtA, i, uint64(len(m.Type)))
  6886. i--
  6887. dAtA[i] = 0xa
  6888. }
  6889. return len(dAtA) - i, nil
  6890. }
  6891. func (m *EventAttribute) Marshal() (dAtA []byte, err error) {
  6892. size := m.Size()
  6893. dAtA = make([]byte, size)
  6894. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6895. if err != nil {
  6896. return nil, err
  6897. }
  6898. return dAtA[:n], nil
  6899. }
  6900. func (m *EventAttribute) MarshalTo(dAtA []byte) (int, error) {
  6901. size := m.Size()
  6902. return m.MarshalToSizedBuffer(dAtA[:size])
  6903. }
  6904. func (m *EventAttribute) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6905. i := len(dAtA)
  6906. _ = i
  6907. var l int
  6908. _ = l
  6909. if m.Index {
  6910. i--
  6911. if m.Index {
  6912. dAtA[i] = 1
  6913. } else {
  6914. dAtA[i] = 0
  6915. }
  6916. i--
  6917. dAtA[i] = 0x18
  6918. }
  6919. if len(m.Value) > 0 {
  6920. i -= len(m.Value)
  6921. copy(dAtA[i:], m.Value)
  6922. i = encodeVarintTypes(dAtA, i, uint64(len(m.Value)))
  6923. i--
  6924. dAtA[i] = 0x12
  6925. }
  6926. if len(m.Key) > 0 {
  6927. i -= len(m.Key)
  6928. copy(dAtA[i:], m.Key)
  6929. i = encodeVarintTypes(dAtA, i, uint64(len(m.Key)))
  6930. i--
  6931. dAtA[i] = 0xa
  6932. }
  6933. return len(dAtA) - i, nil
  6934. }
  6935. func (m *ExecTxResult) Marshal() (dAtA []byte, err error) {
  6936. size := m.Size()
  6937. dAtA = make([]byte, size)
  6938. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6939. if err != nil {
  6940. return nil, err
  6941. }
  6942. return dAtA[:n], nil
  6943. }
  6944. func (m *ExecTxResult) MarshalTo(dAtA []byte) (int, error) {
  6945. size := m.Size()
  6946. return m.MarshalToSizedBuffer(dAtA[:size])
  6947. }
  6948. func (m *ExecTxResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6949. i := len(dAtA)
  6950. _ = i
  6951. var l int
  6952. _ = l
  6953. if len(m.Codespace) > 0 {
  6954. i -= len(m.Codespace)
  6955. copy(dAtA[i:], m.Codespace)
  6956. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6957. i--
  6958. dAtA[i] = 0x42
  6959. }
  6960. if len(m.Events) > 0 {
  6961. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6962. {
  6963. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6964. if err != nil {
  6965. return 0, err
  6966. }
  6967. i -= size
  6968. i = encodeVarintTypes(dAtA, i, uint64(size))
  6969. }
  6970. i--
  6971. dAtA[i] = 0x3a
  6972. }
  6973. }
  6974. if m.GasUsed != 0 {
  6975. i = encodeVarintTypes(dAtA, i, uint64(m.GasUsed))
  6976. i--
  6977. dAtA[i] = 0x30
  6978. }
  6979. if m.GasWanted != 0 {
  6980. i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted))
  6981. i--
  6982. dAtA[i] = 0x28
  6983. }
  6984. if len(m.Info) > 0 {
  6985. i -= len(m.Info)
  6986. copy(dAtA[i:], m.Info)
  6987. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6988. i--
  6989. dAtA[i] = 0x22
  6990. }
  6991. if len(m.Log) > 0 {
  6992. i -= len(m.Log)
  6993. copy(dAtA[i:], m.Log)
  6994. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6995. i--
  6996. dAtA[i] = 0x1a
  6997. }
  6998. if len(m.Data) > 0 {
  6999. i -= len(m.Data)
  7000. copy(dAtA[i:], m.Data)
  7001. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  7002. i--
  7003. dAtA[i] = 0x12
  7004. }
  7005. if m.Code != 0 {
  7006. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  7007. i--
  7008. dAtA[i] = 0x8
  7009. }
  7010. return len(dAtA) - i, nil
  7011. }
  7012. func (m *TxResult) Marshal() (dAtA []byte, err error) {
  7013. size := m.Size()
  7014. dAtA = make([]byte, size)
  7015. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7016. if err != nil {
  7017. return nil, err
  7018. }
  7019. return dAtA[:n], nil
  7020. }
  7021. func (m *TxResult) MarshalTo(dAtA []byte) (int, error) {
  7022. size := m.Size()
  7023. return m.MarshalToSizedBuffer(dAtA[:size])
  7024. }
  7025. func (m *TxResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7026. i := len(dAtA)
  7027. _ = i
  7028. var l int
  7029. _ = l
  7030. {
  7031. size, err := m.Result.MarshalToSizedBuffer(dAtA[:i])
  7032. if err != nil {
  7033. return 0, err
  7034. }
  7035. i -= size
  7036. i = encodeVarintTypes(dAtA, i, uint64(size))
  7037. }
  7038. i--
  7039. dAtA[i] = 0x22
  7040. if len(m.Tx) > 0 {
  7041. i -= len(m.Tx)
  7042. copy(dAtA[i:], m.Tx)
  7043. i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx)))
  7044. i--
  7045. dAtA[i] = 0x1a
  7046. }
  7047. if m.Index != 0 {
  7048. i = encodeVarintTypes(dAtA, i, uint64(m.Index))
  7049. i--
  7050. dAtA[i] = 0x10
  7051. }
  7052. if m.Height != 0 {
  7053. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  7054. i--
  7055. dAtA[i] = 0x8
  7056. }
  7057. return len(dAtA) - i, nil
  7058. }
  7059. func (m *Validator) Marshal() (dAtA []byte, err error) {
  7060. size := m.Size()
  7061. dAtA = make([]byte, size)
  7062. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7063. if err != nil {
  7064. return nil, err
  7065. }
  7066. return dAtA[:n], nil
  7067. }
  7068. func (m *Validator) MarshalTo(dAtA []byte) (int, error) {
  7069. size := m.Size()
  7070. return m.MarshalToSizedBuffer(dAtA[:size])
  7071. }
  7072. func (m *Validator) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7073. i := len(dAtA)
  7074. _ = i
  7075. var l int
  7076. _ = l
  7077. if m.Power != 0 {
  7078. i = encodeVarintTypes(dAtA, i, uint64(m.Power))
  7079. i--
  7080. dAtA[i] = 0x18
  7081. }
  7082. if len(m.Address) > 0 {
  7083. i -= len(m.Address)
  7084. copy(dAtA[i:], m.Address)
  7085. i = encodeVarintTypes(dAtA, i, uint64(len(m.Address)))
  7086. i--
  7087. dAtA[i] = 0xa
  7088. }
  7089. return len(dAtA) - i, nil
  7090. }
  7091. func (m *ValidatorUpdate) Marshal() (dAtA []byte, err error) {
  7092. size := m.Size()
  7093. dAtA = make([]byte, size)
  7094. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7095. if err != nil {
  7096. return nil, err
  7097. }
  7098. return dAtA[:n], nil
  7099. }
  7100. func (m *ValidatorUpdate) MarshalTo(dAtA []byte) (int, error) {
  7101. size := m.Size()
  7102. return m.MarshalToSizedBuffer(dAtA[:size])
  7103. }
  7104. func (m *ValidatorUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7105. i := len(dAtA)
  7106. _ = i
  7107. var l int
  7108. _ = l
  7109. if m.Power != 0 {
  7110. i = encodeVarintTypes(dAtA, i, uint64(m.Power))
  7111. i--
  7112. dAtA[i] = 0x10
  7113. }
  7114. {
  7115. size, err := m.PubKey.MarshalToSizedBuffer(dAtA[:i])
  7116. if err != nil {
  7117. return 0, err
  7118. }
  7119. i -= size
  7120. i = encodeVarintTypes(dAtA, i, uint64(size))
  7121. }
  7122. i--
  7123. dAtA[i] = 0xa
  7124. return len(dAtA) - i, nil
  7125. }
  7126. func (m *VoteInfo) Marshal() (dAtA []byte, err error) {
  7127. size := m.Size()
  7128. dAtA = make([]byte, size)
  7129. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7130. if err != nil {
  7131. return nil, err
  7132. }
  7133. return dAtA[:n], nil
  7134. }
  7135. func (m *VoteInfo) MarshalTo(dAtA []byte) (int, error) {
  7136. size := m.Size()
  7137. return m.MarshalToSizedBuffer(dAtA[:size])
  7138. }
  7139. func (m *VoteInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7140. i := len(dAtA)
  7141. _ = i
  7142. var l int
  7143. _ = l
  7144. if m.SignedLastBlock {
  7145. i--
  7146. if m.SignedLastBlock {
  7147. dAtA[i] = 1
  7148. } else {
  7149. dAtA[i] = 0
  7150. }
  7151. i--
  7152. dAtA[i] = 0x10
  7153. }
  7154. {
  7155. size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i])
  7156. if err != nil {
  7157. return 0, err
  7158. }
  7159. i -= size
  7160. i = encodeVarintTypes(dAtA, i, uint64(size))
  7161. }
  7162. i--
  7163. dAtA[i] = 0xa
  7164. return len(dAtA) - i, nil
  7165. }
  7166. func (m *Evidence) Marshal() (dAtA []byte, err error) {
  7167. size := m.Size()
  7168. dAtA = make([]byte, size)
  7169. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7170. if err != nil {
  7171. return nil, err
  7172. }
  7173. return dAtA[:n], nil
  7174. }
  7175. func (m *Evidence) MarshalTo(dAtA []byte) (int, error) {
  7176. size := m.Size()
  7177. return m.MarshalToSizedBuffer(dAtA[:size])
  7178. }
  7179. func (m *Evidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7180. i := len(dAtA)
  7181. _ = i
  7182. var l int
  7183. _ = l
  7184. if m.TotalVotingPower != 0 {
  7185. i = encodeVarintTypes(dAtA, i, uint64(m.TotalVotingPower))
  7186. i--
  7187. dAtA[i] = 0x28
  7188. }
  7189. n62, err62 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
  7190. if err62 != nil {
  7191. return 0, err62
  7192. }
  7193. i -= n62
  7194. i = encodeVarintTypes(dAtA, i, uint64(n62))
  7195. i--
  7196. dAtA[i] = 0x22
  7197. if m.Height != 0 {
  7198. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  7199. i--
  7200. dAtA[i] = 0x18
  7201. }
  7202. {
  7203. size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i])
  7204. if err != nil {
  7205. return 0, err
  7206. }
  7207. i -= size
  7208. i = encodeVarintTypes(dAtA, i, uint64(size))
  7209. }
  7210. i--
  7211. dAtA[i] = 0x12
  7212. if m.Type != 0 {
  7213. i = encodeVarintTypes(dAtA, i, uint64(m.Type))
  7214. i--
  7215. dAtA[i] = 0x8
  7216. }
  7217. return len(dAtA) - i, nil
  7218. }
  7219. func (m *Snapshot) Marshal() (dAtA []byte, err error) {
  7220. size := m.Size()
  7221. dAtA = make([]byte, size)
  7222. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7223. if err != nil {
  7224. return nil, err
  7225. }
  7226. return dAtA[:n], nil
  7227. }
  7228. func (m *Snapshot) MarshalTo(dAtA []byte) (int, error) {
  7229. size := m.Size()
  7230. return m.MarshalToSizedBuffer(dAtA[:size])
  7231. }
  7232. func (m *Snapshot) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7233. i := len(dAtA)
  7234. _ = i
  7235. var l int
  7236. _ = l
  7237. if len(m.Metadata) > 0 {
  7238. i -= len(m.Metadata)
  7239. copy(dAtA[i:], m.Metadata)
  7240. i = encodeVarintTypes(dAtA, i, uint64(len(m.Metadata)))
  7241. i--
  7242. dAtA[i] = 0x2a
  7243. }
  7244. if len(m.Hash) > 0 {
  7245. i -= len(m.Hash)
  7246. copy(dAtA[i:], m.Hash)
  7247. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  7248. i--
  7249. dAtA[i] = 0x22
  7250. }
  7251. if m.Chunks != 0 {
  7252. i = encodeVarintTypes(dAtA, i, uint64(m.Chunks))
  7253. i--
  7254. dAtA[i] = 0x18
  7255. }
  7256. if m.Format != 0 {
  7257. i = encodeVarintTypes(dAtA, i, uint64(m.Format))
  7258. i--
  7259. dAtA[i] = 0x10
  7260. }
  7261. if m.Height != 0 {
  7262. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  7263. i--
  7264. dAtA[i] = 0x8
  7265. }
  7266. return len(dAtA) - i, nil
  7267. }
  7268. func encodeVarintTypes(dAtA []byte, offset int, v uint64) int {
  7269. offset -= sovTypes(v)
  7270. base := offset
  7271. for v >= 1<<7 {
  7272. dAtA[offset] = uint8(v&0x7f | 0x80)
  7273. v >>= 7
  7274. offset++
  7275. }
  7276. dAtA[offset] = uint8(v)
  7277. return base
  7278. }
  7279. func (m *Request) Size() (n int) {
  7280. if m == nil {
  7281. return 0
  7282. }
  7283. var l int
  7284. _ = l
  7285. if m.Value != nil {
  7286. n += m.Value.Size()
  7287. }
  7288. return n
  7289. }
  7290. func (m *Request_Echo) Size() (n int) {
  7291. if m == nil {
  7292. return 0
  7293. }
  7294. var l int
  7295. _ = l
  7296. if m.Echo != nil {
  7297. l = m.Echo.Size()
  7298. n += 1 + l + sovTypes(uint64(l))
  7299. }
  7300. return n
  7301. }
  7302. func (m *Request_Flush) Size() (n int) {
  7303. if m == nil {
  7304. return 0
  7305. }
  7306. var l int
  7307. _ = l
  7308. if m.Flush != nil {
  7309. l = m.Flush.Size()
  7310. n += 1 + l + sovTypes(uint64(l))
  7311. }
  7312. return n
  7313. }
  7314. func (m *Request_Info) Size() (n int) {
  7315. if m == nil {
  7316. return 0
  7317. }
  7318. var l int
  7319. _ = l
  7320. if m.Info != nil {
  7321. l = m.Info.Size()
  7322. n += 1 + l + sovTypes(uint64(l))
  7323. }
  7324. return n
  7325. }
  7326. func (m *Request_InitChain) Size() (n int) {
  7327. if m == nil {
  7328. return 0
  7329. }
  7330. var l int
  7331. _ = l
  7332. if m.InitChain != nil {
  7333. l = m.InitChain.Size()
  7334. n += 1 + l + sovTypes(uint64(l))
  7335. }
  7336. return n
  7337. }
  7338. func (m *Request_Query) Size() (n int) {
  7339. if m == nil {
  7340. return 0
  7341. }
  7342. var l int
  7343. _ = l
  7344. if m.Query != nil {
  7345. l = m.Query.Size()
  7346. n += 1 + l + sovTypes(uint64(l))
  7347. }
  7348. return n
  7349. }
  7350. func (m *Request_BeginBlock) Size() (n int) {
  7351. if m == nil {
  7352. return 0
  7353. }
  7354. var l int
  7355. _ = l
  7356. if m.BeginBlock != nil {
  7357. l = m.BeginBlock.Size()
  7358. n += 1 + l + sovTypes(uint64(l))
  7359. }
  7360. return n
  7361. }
  7362. func (m *Request_CheckTx) Size() (n int) {
  7363. if m == nil {
  7364. return 0
  7365. }
  7366. var l int
  7367. _ = l
  7368. if m.CheckTx != nil {
  7369. l = m.CheckTx.Size()
  7370. n += 1 + l + sovTypes(uint64(l))
  7371. }
  7372. return n
  7373. }
  7374. func (m *Request_DeliverTx) Size() (n int) {
  7375. if m == nil {
  7376. return 0
  7377. }
  7378. var l int
  7379. _ = l
  7380. if m.DeliverTx != nil {
  7381. l = m.DeliverTx.Size()
  7382. n += 1 + l + sovTypes(uint64(l))
  7383. }
  7384. return n
  7385. }
  7386. func (m *Request_EndBlock) Size() (n int) {
  7387. if m == nil {
  7388. return 0
  7389. }
  7390. var l int
  7391. _ = l
  7392. if m.EndBlock != nil {
  7393. l = m.EndBlock.Size()
  7394. n += 1 + l + sovTypes(uint64(l))
  7395. }
  7396. return n
  7397. }
  7398. func (m *Request_Commit) Size() (n int) {
  7399. if m == nil {
  7400. return 0
  7401. }
  7402. var l int
  7403. _ = l
  7404. if m.Commit != nil {
  7405. l = m.Commit.Size()
  7406. n += 1 + l + sovTypes(uint64(l))
  7407. }
  7408. return n
  7409. }
  7410. func (m *Request_ListSnapshots) Size() (n int) {
  7411. if m == nil {
  7412. return 0
  7413. }
  7414. var l int
  7415. _ = l
  7416. if m.ListSnapshots != nil {
  7417. l = m.ListSnapshots.Size()
  7418. n += 1 + l + sovTypes(uint64(l))
  7419. }
  7420. return n
  7421. }
  7422. func (m *Request_OfferSnapshot) Size() (n int) {
  7423. if m == nil {
  7424. return 0
  7425. }
  7426. var l int
  7427. _ = l
  7428. if m.OfferSnapshot != nil {
  7429. l = m.OfferSnapshot.Size()
  7430. n += 1 + l + sovTypes(uint64(l))
  7431. }
  7432. return n
  7433. }
  7434. func (m *Request_LoadSnapshotChunk) Size() (n int) {
  7435. if m == nil {
  7436. return 0
  7437. }
  7438. var l int
  7439. _ = l
  7440. if m.LoadSnapshotChunk != nil {
  7441. l = m.LoadSnapshotChunk.Size()
  7442. n += 1 + l + sovTypes(uint64(l))
  7443. }
  7444. return n
  7445. }
  7446. func (m *Request_ApplySnapshotChunk) Size() (n int) {
  7447. if m == nil {
  7448. return 0
  7449. }
  7450. var l int
  7451. _ = l
  7452. if m.ApplySnapshotChunk != nil {
  7453. l = m.ApplySnapshotChunk.Size()
  7454. n += 1 + l + sovTypes(uint64(l))
  7455. }
  7456. return n
  7457. }
  7458. func (m *Request_PrepareProposal) Size() (n int) {
  7459. if m == nil {
  7460. return 0
  7461. }
  7462. var l int
  7463. _ = l
  7464. if m.PrepareProposal != nil {
  7465. l = m.PrepareProposal.Size()
  7466. n += 1 + l + sovTypes(uint64(l))
  7467. }
  7468. return n
  7469. }
  7470. func (m *Request_ProcessProposal) Size() (n int) {
  7471. if m == nil {
  7472. return 0
  7473. }
  7474. var l int
  7475. _ = l
  7476. if m.ProcessProposal != nil {
  7477. l = m.ProcessProposal.Size()
  7478. n += 2 + l + sovTypes(uint64(l))
  7479. }
  7480. return n
  7481. }
  7482. func (m *Request_ExtendVote) Size() (n int) {
  7483. if m == nil {
  7484. return 0
  7485. }
  7486. var l int
  7487. _ = l
  7488. if m.ExtendVote != nil {
  7489. l = m.ExtendVote.Size()
  7490. n += 2 + l + sovTypes(uint64(l))
  7491. }
  7492. return n
  7493. }
  7494. func (m *Request_VerifyVoteExtension) Size() (n int) {
  7495. if m == nil {
  7496. return 0
  7497. }
  7498. var l int
  7499. _ = l
  7500. if m.VerifyVoteExtension != nil {
  7501. l = m.VerifyVoteExtension.Size()
  7502. n += 2 + l + sovTypes(uint64(l))
  7503. }
  7504. return n
  7505. }
  7506. func (m *Request_FinalizeBlock) Size() (n int) {
  7507. if m == nil {
  7508. return 0
  7509. }
  7510. var l int
  7511. _ = l
  7512. if m.FinalizeBlock != nil {
  7513. l = m.FinalizeBlock.Size()
  7514. n += 2 + l + sovTypes(uint64(l))
  7515. }
  7516. return n
  7517. }
  7518. func (m *RequestEcho) Size() (n int) {
  7519. if m == nil {
  7520. return 0
  7521. }
  7522. var l int
  7523. _ = l
  7524. l = len(m.Message)
  7525. if l > 0 {
  7526. n += 1 + l + sovTypes(uint64(l))
  7527. }
  7528. return n
  7529. }
  7530. func (m *RequestFlush) Size() (n int) {
  7531. if m == nil {
  7532. return 0
  7533. }
  7534. var l int
  7535. _ = l
  7536. return n
  7537. }
  7538. func (m *RequestInfo) Size() (n int) {
  7539. if m == nil {
  7540. return 0
  7541. }
  7542. var l int
  7543. _ = l
  7544. l = len(m.Version)
  7545. if l > 0 {
  7546. n += 1 + l + sovTypes(uint64(l))
  7547. }
  7548. if m.BlockVersion != 0 {
  7549. n += 1 + sovTypes(uint64(m.BlockVersion))
  7550. }
  7551. if m.P2PVersion != 0 {
  7552. n += 1 + sovTypes(uint64(m.P2PVersion))
  7553. }
  7554. l = len(m.AbciVersion)
  7555. if l > 0 {
  7556. n += 1 + l + sovTypes(uint64(l))
  7557. }
  7558. return n
  7559. }
  7560. func (m *RequestInitChain) Size() (n int) {
  7561. if m == nil {
  7562. return 0
  7563. }
  7564. var l int
  7565. _ = l
  7566. l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)
  7567. n += 1 + l + sovTypes(uint64(l))
  7568. l = len(m.ChainId)
  7569. if l > 0 {
  7570. n += 1 + l + sovTypes(uint64(l))
  7571. }
  7572. if m.ConsensusParams != nil {
  7573. l = m.ConsensusParams.Size()
  7574. n += 1 + l + sovTypes(uint64(l))
  7575. }
  7576. if len(m.Validators) > 0 {
  7577. for _, e := range m.Validators {
  7578. l = e.Size()
  7579. n += 1 + l + sovTypes(uint64(l))
  7580. }
  7581. }
  7582. l = len(m.AppStateBytes)
  7583. if l > 0 {
  7584. n += 1 + l + sovTypes(uint64(l))
  7585. }
  7586. if m.InitialHeight != 0 {
  7587. n += 1 + sovTypes(uint64(m.InitialHeight))
  7588. }
  7589. return n
  7590. }
  7591. func (m *RequestQuery) Size() (n int) {
  7592. if m == nil {
  7593. return 0
  7594. }
  7595. var l int
  7596. _ = l
  7597. l = len(m.Data)
  7598. if l > 0 {
  7599. n += 1 + l + sovTypes(uint64(l))
  7600. }
  7601. l = len(m.Path)
  7602. if l > 0 {
  7603. n += 1 + l + sovTypes(uint64(l))
  7604. }
  7605. if m.Height != 0 {
  7606. n += 1 + sovTypes(uint64(m.Height))
  7607. }
  7608. if m.Prove {
  7609. n += 2
  7610. }
  7611. return n
  7612. }
  7613. func (m *RequestBeginBlock) Size() (n int) {
  7614. if m == nil {
  7615. return 0
  7616. }
  7617. var l int
  7618. _ = l
  7619. l = len(m.Hash)
  7620. if l > 0 {
  7621. n += 1 + l + sovTypes(uint64(l))
  7622. }
  7623. l = m.Header.Size()
  7624. n += 1 + l + sovTypes(uint64(l))
  7625. l = m.LastCommitInfo.Size()
  7626. n += 1 + l + sovTypes(uint64(l))
  7627. if len(m.ByzantineValidators) > 0 {
  7628. for _, e := range m.ByzantineValidators {
  7629. l = e.Size()
  7630. n += 1 + l + sovTypes(uint64(l))
  7631. }
  7632. }
  7633. return n
  7634. }
  7635. func (m *RequestCheckTx) Size() (n int) {
  7636. if m == nil {
  7637. return 0
  7638. }
  7639. var l int
  7640. _ = l
  7641. l = len(m.Tx)
  7642. if l > 0 {
  7643. n += 1 + l + sovTypes(uint64(l))
  7644. }
  7645. if m.Type != 0 {
  7646. n += 1 + sovTypes(uint64(m.Type))
  7647. }
  7648. return n
  7649. }
  7650. func (m *RequestDeliverTx) Size() (n int) {
  7651. if m == nil {
  7652. return 0
  7653. }
  7654. var l int
  7655. _ = l
  7656. l = len(m.Tx)
  7657. if l > 0 {
  7658. n += 1 + l + sovTypes(uint64(l))
  7659. }
  7660. return n
  7661. }
  7662. func (m *RequestEndBlock) Size() (n int) {
  7663. if m == nil {
  7664. return 0
  7665. }
  7666. var l int
  7667. _ = l
  7668. if m.Height != 0 {
  7669. n += 1 + sovTypes(uint64(m.Height))
  7670. }
  7671. return n
  7672. }
  7673. func (m *RequestCommit) Size() (n int) {
  7674. if m == nil {
  7675. return 0
  7676. }
  7677. var l int
  7678. _ = l
  7679. return n
  7680. }
  7681. func (m *RequestListSnapshots) Size() (n int) {
  7682. if m == nil {
  7683. return 0
  7684. }
  7685. var l int
  7686. _ = l
  7687. return n
  7688. }
  7689. func (m *RequestOfferSnapshot) Size() (n int) {
  7690. if m == nil {
  7691. return 0
  7692. }
  7693. var l int
  7694. _ = l
  7695. if m.Snapshot != nil {
  7696. l = m.Snapshot.Size()
  7697. n += 1 + l + sovTypes(uint64(l))
  7698. }
  7699. l = len(m.AppHash)
  7700. if l > 0 {
  7701. n += 1 + l + sovTypes(uint64(l))
  7702. }
  7703. return n
  7704. }
  7705. func (m *RequestLoadSnapshotChunk) Size() (n int) {
  7706. if m == nil {
  7707. return 0
  7708. }
  7709. var l int
  7710. _ = l
  7711. if m.Height != 0 {
  7712. n += 1 + sovTypes(uint64(m.Height))
  7713. }
  7714. if m.Format != 0 {
  7715. n += 1 + sovTypes(uint64(m.Format))
  7716. }
  7717. if m.Chunk != 0 {
  7718. n += 1 + sovTypes(uint64(m.Chunk))
  7719. }
  7720. return n
  7721. }
  7722. func (m *RequestApplySnapshotChunk) Size() (n int) {
  7723. if m == nil {
  7724. return 0
  7725. }
  7726. var l int
  7727. _ = l
  7728. if m.Index != 0 {
  7729. n += 1 + sovTypes(uint64(m.Index))
  7730. }
  7731. l = len(m.Chunk)
  7732. if l > 0 {
  7733. n += 1 + l + sovTypes(uint64(l))
  7734. }
  7735. l = len(m.Sender)
  7736. if l > 0 {
  7737. n += 1 + l + sovTypes(uint64(l))
  7738. }
  7739. return n
  7740. }
  7741. func (m *RequestExtendVote) Size() (n int) {
  7742. if m == nil {
  7743. return 0
  7744. }
  7745. var l int
  7746. _ = l
  7747. if m.Vote != nil {
  7748. l = m.Vote.Size()
  7749. n += 1 + l + sovTypes(uint64(l))
  7750. }
  7751. return n
  7752. }
  7753. func (m *RequestVerifyVoteExtension) Size() (n int) {
  7754. if m == nil {
  7755. return 0
  7756. }
  7757. var l int
  7758. _ = l
  7759. if m.Vote != nil {
  7760. l = m.Vote.Size()
  7761. n += 1 + l + sovTypes(uint64(l))
  7762. }
  7763. return n
  7764. }
  7765. func (m *RequestPrepareProposal) Size() (n int) {
  7766. if m == nil {
  7767. return 0
  7768. }
  7769. var l int
  7770. _ = l
  7771. if len(m.BlockData) > 0 {
  7772. for _, b := range m.BlockData {
  7773. l = len(b)
  7774. n += 1 + l + sovTypes(uint64(l))
  7775. }
  7776. }
  7777. if m.BlockDataSize != 0 {
  7778. n += 1 + sovTypes(uint64(m.BlockDataSize))
  7779. }
  7780. if len(m.Votes) > 0 {
  7781. for _, e := range m.Votes {
  7782. l = e.Size()
  7783. n += 1 + l + sovTypes(uint64(l))
  7784. }
  7785. }
  7786. return n
  7787. }
  7788. func (m *RequestProcessProposal) Size() (n int) {
  7789. if m == nil {
  7790. return 0
  7791. }
  7792. var l int
  7793. _ = l
  7794. l = len(m.Hash)
  7795. if l > 0 {
  7796. n += 1 + l + sovTypes(uint64(l))
  7797. }
  7798. l = m.Header.Size()
  7799. n += 1 + l + sovTypes(uint64(l))
  7800. if len(m.Txs) > 0 {
  7801. for _, b := range m.Txs {
  7802. l = len(b)
  7803. n += 1 + l + sovTypes(uint64(l))
  7804. }
  7805. }
  7806. l = m.ProposedLastCommit.Size()
  7807. n += 1 + l + sovTypes(uint64(l))
  7808. if len(m.ByzantineValidators) > 0 {
  7809. for _, e := range m.ByzantineValidators {
  7810. l = e.Size()
  7811. n += 1 + l + sovTypes(uint64(l))
  7812. }
  7813. }
  7814. return n
  7815. }
  7816. func (m *RequestFinalizeBlock) Size() (n int) {
  7817. if m == nil {
  7818. return 0
  7819. }
  7820. var l int
  7821. _ = l
  7822. l = len(m.Hash)
  7823. if l > 0 {
  7824. n += 1 + l + sovTypes(uint64(l))
  7825. }
  7826. l = m.Header.Size()
  7827. n += 1 + l + sovTypes(uint64(l))
  7828. if len(m.Txs) > 0 {
  7829. for _, b := range m.Txs {
  7830. l = len(b)
  7831. n += 1 + l + sovTypes(uint64(l))
  7832. }
  7833. }
  7834. l = m.DecidedLastCommit.Size()
  7835. n += 1 + l + sovTypes(uint64(l))
  7836. if len(m.ByzantineValidators) > 0 {
  7837. for _, e := range m.ByzantineValidators {
  7838. l = e.Size()
  7839. n += 1 + l + sovTypes(uint64(l))
  7840. }
  7841. }
  7842. return n
  7843. }
  7844. func (m *Response) Size() (n int) {
  7845. if m == nil {
  7846. return 0
  7847. }
  7848. var l int
  7849. _ = l
  7850. if m.Value != nil {
  7851. n += m.Value.Size()
  7852. }
  7853. return n
  7854. }
  7855. func (m *Response_Exception) Size() (n int) {
  7856. if m == nil {
  7857. return 0
  7858. }
  7859. var l int
  7860. _ = l
  7861. if m.Exception != nil {
  7862. l = m.Exception.Size()
  7863. n += 1 + l + sovTypes(uint64(l))
  7864. }
  7865. return n
  7866. }
  7867. func (m *Response_Echo) Size() (n int) {
  7868. if m == nil {
  7869. return 0
  7870. }
  7871. var l int
  7872. _ = l
  7873. if m.Echo != nil {
  7874. l = m.Echo.Size()
  7875. n += 1 + l + sovTypes(uint64(l))
  7876. }
  7877. return n
  7878. }
  7879. func (m *Response_Flush) Size() (n int) {
  7880. if m == nil {
  7881. return 0
  7882. }
  7883. var l int
  7884. _ = l
  7885. if m.Flush != nil {
  7886. l = m.Flush.Size()
  7887. n += 1 + l + sovTypes(uint64(l))
  7888. }
  7889. return n
  7890. }
  7891. func (m *Response_Info) Size() (n int) {
  7892. if m == nil {
  7893. return 0
  7894. }
  7895. var l int
  7896. _ = l
  7897. if m.Info != nil {
  7898. l = m.Info.Size()
  7899. n += 1 + l + sovTypes(uint64(l))
  7900. }
  7901. return n
  7902. }
  7903. func (m *Response_InitChain) Size() (n int) {
  7904. if m == nil {
  7905. return 0
  7906. }
  7907. var l int
  7908. _ = l
  7909. if m.InitChain != nil {
  7910. l = m.InitChain.Size()
  7911. n += 1 + l + sovTypes(uint64(l))
  7912. }
  7913. return n
  7914. }
  7915. func (m *Response_Query) Size() (n int) {
  7916. if m == nil {
  7917. return 0
  7918. }
  7919. var l int
  7920. _ = l
  7921. if m.Query != nil {
  7922. l = m.Query.Size()
  7923. n += 1 + l + sovTypes(uint64(l))
  7924. }
  7925. return n
  7926. }
  7927. func (m *Response_BeginBlock) Size() (n int) {
  7928. if m == nil {
  7929. return 0
  7930. }
  7931. var l int
  7932. _ = l
  7933. if m.BeginBlock != nil {
  7934. l = m.BeginBlock.Size()
  7935. n += 1 + l + sovTypes(uint64(l))
  7936. }
  7937. return n
  7938. }
  7939. func (m *Response_CheckTx) Size() (n int) {
  7940. if m == nil {
  7941. return 0
  7942. }
  7943. var l int
  7944. _ = l
  7945. if m.CheckTx != nil {
  7946. l = m.CheckTx.Size()
  7947. n += 1 + l + sovTypes(uint64(l))
  7948. }
  7949. return n
  7950. }
  7951. func (m *Response_DeliverTx) Size() (n int) {
  7952. if m == nil {
  7953. return 0
  7954. }
  7955. var l int
  7956. _ = l
  7957. if m.DeliverTx != nil {
  7958. l = m.DeliverTx.Size()
  7959. n += 1 + l + sovTypes(uint64(l))
  7960. }
  7961. return n
  7962. }
  7963. func (m *Response_EndBlock) Size() (n int) {
  7964. if m == nil {
  7965. return 0
  7966. }
  7967. var l int
  7968. _ = l
  7969. if m.EndBlock != nil {
  7970. l = m.EndBlock.Size()
  7971. n += 1 + l + sovTypes(uint64(l))
  7972. }
  7973. return n
  7974. }
  7975. func (m *Response_Commit) Size() (n int) {
  7976. if m == nil {
  7977. return 0
  7978. }
  7979. var l int
  7980. _ = l
  7981. if m.Commit != nil {
  7982. l = m.Commit.Size()
  7983. n += 1 + l + sovTypes(uint64(l))
  7984. }
  7985. return n
  7986. }
  7987. func (m *Response_ListSnapshots) Size() (n int) {
  7988. if m == nil {
  7989. return 0
  7990. }
  7991. var l int
  7992. _ = l
  7993. if m.ListSnapshots != nil {
  7994. l = m.ListSnapshots.Size()
  7995. n += 1 + l + sovTypes(uint64(l))
  7996. }
  7997. return n
  7998. }
  7999. func (m *Response_OfferSnapshot) Size() (n int) {
  8000. if m == nil {
  8001. return 0
  8002. }
  8003. var l int
  8004. _ = l
  8005. if m.OfferSnapshot != nil {
  8006. l = m.OfferSnapshot.Size()
  8007. n += 1 + l + sovTypes(uint64(l))
  8008. }
  8009. return n
  8010. }
  8011. func (m *Response_LoadSnapshotChunk) Size() (n int) {
  8012. if m == nil {
  8013. return 0
  8014. }
  8015. var l int
  8016. _ = l
  8017. if m.LoadSnapshotChunk != nil {
  8018. l = m.LoadSnapshotChunk.Size()
  8019. n += 1 + l + sovTypes(uint64(l))
  8020. }
  8021. return n
  8022. }
  8023. func (m *Response_ApplySnapshotChunk) Size() (n int) {
  8024. if m == nil {
  8025. return 0
  8026. }
  8027. var l int
  8028. _ = l
  8029. if m.ApplySnapshotChunk != nil {
  8030. l = m.ApplySnapshotChunk.Size()
  8031. n += 1 + l + sovTypes(uint64(l))
  8032. }
  8033. return n
  8034. }
  8035. func (m *Response_PrepareProposal) Size() (n int) {
  8036. if m == nil {
  8037. return 0
  8038. }
  8039. var l int
  8040. _ = l
  8041. if m.PrepareProposal != nil {
  8042. l = m.PrepareProposal.Size()
  8043. n += 2 + l + sovTypes(uint64(l))
  8044. }
  8045. return n
  8046. }
  8047. func (m *Response_ProcessProposal) Size() (n int) {
  8048. if m == nil {
  8049. return 0
  8050. }
  8051. var l int
  8052. _ = l
  8053. if m.ProcessProposal != nil {
  8054. l = m.ProcessProposal.Size()
  8055. n += 2 + l + sovTypes(uint64(l))
  8056. }
  8057. return n
  8058. }
  8059. func (m *Response_ExtendVote) Size() (n int) {
  8060. if m == nil {
  8061. return 0
  8062. }
  8063. var l int
  8064. _ = l
  8065. if m.ExtendVote != nil {
  8066. l = m.ExtendVote.Size()
  8067. n += 2 + l + sovTypes(uint64(l))
  8068. }
  8069. return n
  8070. }
  8071. func (m *Response_VerifyVoteExtension) Size() (n int) {
  8072. if m == nil {
  8073. return 0
  8074. }
  8075. var l int
  8076. _ = l
  8077. if m.VerifyVoteExtension != nil {
  8078. l = m.VerifyVoteExtension.Size()
  8079. n += 2 + l + sovTypes(uint64(l))
  8080. }
  8081. return n
  8082. }
  8083. func (m *Response_FinalizeBlock) Size() (n int) {
  8084. if m == nil {
  8085. return 0
  8086. }
  8087. var l int
  8088. _ = l
  8089. if m.FinalizeBlock != nil {
  8090. l = m.FinalizeBlock.Size()
  8091. n += 2 + l + sovTypes(uint64(l))
  8092. }
  8093. return n
  8094. }
  8095. func (m *ResponseException) Size() (n int) {
  8096. if m == nil {
  8097. return 0
  8098. }
  8099. var l int
  8100. _ = l
  8101. l = len(m.Error)
  8102. if l > 0 {
  8103. n += 1 + l + sovTypes(uint64(l))
  8104. }
  8105. return n
  8106. }
  8107. func (m *ResponseEcho) Size() (n int) {
  8108. if m == nil {
  8109. return 0
  8110. }
  8111. var l int
  8112. _ = l
  8113. l = len(m.Message)
  8114. if l > 0 {
  8115. n += 1 + l + sovTypes(uint64(l))
  8116. }
  8117. return n
  8118. }
  8119. func (m *ResponseFlush) Size() (n int) {
  8120. if m == nil {
  8121. return 0
  8122. }
  8123. var l int
  8124. _ = l
  8125. return n
  8126. }
  8127. func (m *ResponseInfo) Size() (n int) {
  8128. if m == nil {
  8129. return 0
  8130. }
  8131. var l int
  8132. _ = l
  8133. l = len(m.Data)
  8134. if l > 0 {
  8135. n += 1 + l + sovTypes(uint64(l))
  8136. }
  8137. l = len(m.Version)
  8138. if l > 0 {
  8139. n += 1 + l + sovTypes(uint64(l))
  8140. }
  8141. if m.AppVersion != 0 {
  8142. n += 1 + sovTypes(uint64(m.AppVersion))
  8143. }
  8144. if m.LastBlockHeight != 0 {
  8145. n += 1 + sovTypes(uint64(m.LastBlockHeight))
  8146. }
  8147. l = len(m.LastBlockAppHash)
  8148. if l > 0 {
  8149. n += 1 + l + sovTypes(uint64(l))
  8150. }
  8151. return n
  8152. }
  8153. func (m *ResponseInitChain) Size() (n int) {
  8154. if m == nil {
  8155. return 0
  8156. }
  8157. var l int
  8158. _ = l
  8159. if m.ConsensusParams != nil {
  8160. l = m.ConsensusParams.Size()
  8161. n += 1 + l + sovTypes(uint64(l))
  8162. }
  8163. if len(m.Validators) > 0 {
  8164. for _, e := range m.Validators {
  8165. l = e.Size()
  8166. n += 1 + l + sovTypes(uint64(l))
  8167. }
  8168. }
  8169. l = len(m.AppHash)
  8170. if l > 0 {
  8171. n += 1 + l + sovTypes(uint64(l))
  8172. }
  8173. return n
  8174. }
  8175. func (m *ResponseQuery) Size() (n int) {
  8176. if m == nil {
  8177. return 0
  8178. }
  8179. var l int
  8180. _ = l
  8181. if m.Code != 0 {
  8182. n += 1 + sovTypes(uint64(m.Code))
  8183. }
  8184. l = len(m.Log)
  8185. if l > 0 {
  8186. n += 1 + l + sovTypes(uint64(l))
  8187. }
  8188. l = len(m.Info)
  8189. if l > 0 {
  8190. n += 1 + l + sovTypes(uint64(l))
  8191. }
  8192. if m.Index != 0 {
  8193. n += 1 + sovTypes(uint64(m.Index))
  8194. }
  8195. l = len(m.Key)
  8196. if l > 0 {
  8197. n += 1 + l + sovTypes(uint64(l))
  8198. }
  8199. l = len(m.Value)
  8200. if l > 0 {
  8201. n += 1 + l + sovTypes(uint64(l))
  8202. }
  8203. if m.ProofOps != nil {
  8204. l = m.ProofOps.Size()
  8205. n += 1 + l + sovTypes(uint64(l))
  8206. }
  8207. if m.Height != 0 {
  8208. n += 1 + sovTypes(uint64(m.Height))
  8209. }
  8210. l = len(m.Codespace)
  8211. if l > 0 {
  8212. n += 1 + l + sovTypes(uint64(l))
  8213. }
  8214. return n
  8215. }
  8216. func (m *ResponseBeginBlock) Size() (n int) {
  8217. if m == nil {
  8218. return 0
  8219. }
  8220. var l int
  8221. _ = l
  8222. if len(m.Events) > 0 {
  8223. for _, e := range m.Events {
  8224. l = e.Size()
  8225. n += 1 + l + sovTypes(uint64(l))
  8226. }
  8227. }
  8228. return n
  8229. }
  8230. func (m *ResponseCheckTx) Size() (n int) {
  8231. if m == nil {
  8232. return 0
  8233. }
  8234. var l int
  8235. _ = l
  8236. if m.Code != 0 {
  8237. n += 1 + sovTypes(uint64(m.Code))
  8238. }
  8239. l = len(m.Data)
  8240. if l > 0 {
  8241. n += 1 + l + sovTypes(uint64(l))
  8242. }
  8243. l = len(m.Log)
  8244. if l > 0 {
  8245. n += 1 + l + sovTypes(uint64(l))
  8246. }
  8247. l = len(m.Info)
  8248. if l > 0 {
  8249. n += 1 + l + sovTypes(uint64(l))
  8250. }
  8251. if m.GasWanted != 0 {
  8252. n += 1 + sovTypes(uint64(m.GasWanted))
  8253. }
  8254. if m.GasUsed != 0 {
  8255. n += 1 + sovTypes(uint64(m.GasUsed))
  8256. }
  8257. if len(m.Events) > 0 {
  8258. for _, e := range m.Events {
  8259. l = e.Size()
  8260. n += 1 + l + sovTypes(uint64(l))
  8261. }
  8262. }
  8263. l = len(m.Codespace)
  8264. if l > 0 {
  8265. n += 1 + l + sovTypes(uint64(l))
  8266. }
  8267. l = len(m.Sender)
  8268. if l > 0 {
  8269. n += 1 + l + sovTypes(uint64(l))
  8270. }
  8271. if m.Priority != 0 {
  8272. n += 1 + sovTypes(uint64(m.Priority))
  8273. }
  8274. l = len(m.MempoolError)
  8275. if l > 0 {
  8276. n += 1 + l + sovTypes(uint64(l))
  8277. }
  8278. return n
  8279. }
  8280. func (m *ResponseDeliverTx) Size() (n int) {
  8281. if m == nil {
  8282. return 0
  8283. }
  8284. var l int
  8285. _ = l
  8286. if m.Code != 0 {
  8287. n += 1 + sovTypes(uint64(m.Code))
  8288. }
  8289. l = len(m.Data)
  8290. if l > 0 {
  8291. n += 1 + l + sovTypes(uint64(l))
  8292. }
  8293. l = len(m.Log)
  8294. if l > 0 {
  8295. n += 1 + l + sovTypes(uint64(l))
  8296. }
  8297. l = len(m.Info)
  8298. if l > 0 {
  8299. n += 1 + l + sovTypes(uint64(l))
  8300. }
  8301. if m.GasWanted != 0 {
  8302. n += 1 + sovTypes(uint64(m.GasWanted))
  8303. }
  8304. if m.GasUsed != 0 {
  8305. n += 1 + sovTypes(uint64(m.GasUsed))
  8306. }
  8307. if len(m.Events) > 0 {
  8308. for _, e := range m.Events {
  8309. l = e.Size()
  8310. n += 1 + l + sovTypes(uint64(l))
  8311. }
  8312. }
  8313. l = len(m.Codespace)
  8314. if l > 0 {
  8315. n += 1 + l + sovTypes(uint64(l))
  8316. }
  8317. return n
  8318. }
  8319. func (m *ResponseEndBlock) Size() (n int) {
  8320. if m == nil {
  8321. return 0
  8322. }
  8323. var l int
  8324. _ = l
  8325. if len(m.ValidatorUpdates) > 0 {
  8326. for _, e := range m.ValidatorUpdates {
  8327. l = e.Size()
  8328. n += 1 + l + sovTypes(uint64(l))
  8329. }
  8330. }
  8331. if m.ConsensusParamUpdates != nil {
  8332. l = m.ConsensusParamUpdates.Size()
  8333. n += 1 + l + sovTypes(uint64(l))
  8334. }
  8335. if len(m.Events) > 0 {
  8336. for _, e := range m.Events {
  8337. l = e.Size()
  8338. n += 1 + l + sovTypes(uint64(l))
  8339. }
  8340. }
  8341. return n
  8342. }
  8343. func (m *ResponseCommit) Size() (n int) {
  8344. if m == nil {
  8345. return 0
  8346. }
  8347. var l int
  8348. _ = l
  8349. l = len(m.Data)
  8350. if l > 0 {
  8351. n += 1 + l + sovTypes(uint64(l))
  8352. }
  8353. if m.RetainHeight != 0 {
  8354. n += 1 + sovTypes(uint64(m.RetainHeight))
  8355. }
  8356. return n
  8357. }
  8358. func (m *ResponseListSnapshots) Size() (n int) {
  8359. if m == nil {
  8360. return 0
  8361. }
  8362. var l int
  8363. _ = l
  8364. if len(m.Snapshots) > 0 {
  8365. for _, e := range m.Snapshots {
  8366. l = e.Size()
  8367. n += 1 + l + sovTypes(uint64(l))
  8368. }
  8369. }
  8370. return n
  8371. }
  8372. func (m *ResponseOfferSnapshot) Size() (n int) {
  8373. if m == nil {
  8374. return 0
  8375. }
  8376. var l int
  8377. _ = l
  8378. if m.Result != 0 {
  8379. n += 1 + sovTypes(uint64(m.Result))
  8380. }
  8381. return n
  8382. }
  8383. func (m *ResponseLoadSnapshotChunk) Size() (n int) {
  8384. if m == nil {
  8385. return 0
  8386. }
  8387. var l int
  8388. _ = l
  8389. l = len(m.Chunk)
  8390. if l > 0 {
  8391. n += 1 + l + sovTypes(uint64(l))
  8392. }
  8393. return n
  8394. }
  8395. func (m *ResponseApplySnapshotChunk) Size() (n int) {
  8396. if m == nil {
  8397. return 0
  8398. }
  8399. var l int
  8400. _ = l
  8401. if m.Result != 0 {
  8402. n += 1 + sovTypes(uint64(m.Result))
  8403. }
  8404. if len(m.RefetchChunks) > 0 {
  8405. l = 0
  8406. for _, e := range m.RefetchChunks {
  8407. l += sovTypes(uint64(e))
  8408. }
  8409. n += 1 + sovTypes(uint64(l)) + l
  8410. }
  8411. if len(m.RejectSenders) > 0 {
  8412. for _, s := range m.RejectSenders {
  8413. l = len(s)
  8414. n += 1 + l + sovTypes(uint64(l))
  8415. }
  8416. }
  8417. return n
  8418. }
  8419. func (m *ResponseExtendVote) Size() (n int) {
  8420. if m == nil {
  8421. return 0
  8422. }
  8423. var l int
  8424. _ = l
  8425. if m.VoteExtension != nil {
  8426. l = m.VoteExtension.Size()
  8427. n += 1 + l + sovTypes(uint64(l))
  8428. }
  8429. return n
  8430. }
  8431. func (m *ResponseVerifyVoteExtension) Size() (n int) {
  8432. if m == nil {
  8433. return 0
  8434. }
  8435. var l int
  8436. _ = l
  8437. if m.Result != 0 {
  8438. n += 1 + sovTypes(uint64(m.Result))
  8439. }
  8440. return n
  8441. }
  8442. func (m *ResponsePrepareProposal) Size() (n int) {
  8443. if m == nil {
  8444. return 0
  8445. }
  8446. var l int
  8447. _ = l
  8448. if len(m.BlockData) > 0 {
  8449. for _, b := range m.BlockData {
  8450. l = len(b)
  8451. n += 1 + l + sovTypes(uint64(l))
  8452. }
  8453. }
  8454. return n
  8455. }
  8456. func (m *ResponseProcessProposal) Size() (n int) {
  8457. if m == nil {
  8458. return 0
  8459. }
  8460. var l int
  8461. _ = l
  8462. if m.Accept {
  8463. n += 2
  8464. }
  8465. l = len(m.AppHash)
  8466. if l > 0 {
  8467. n += 1 + l + sovTypes(uint64(l))
  8468. }
  8469. if len(m.TxResults) > 0 {
  8470. for _, e := range m.TxResults {
  8471. l = e.Size()
  8472. n += 1 + l + sovTypes(uint64(l))
  8473. }
  8474. }
  8475. if len(m.ValidatorUpdates) > 0 {
  8476. for _, e := range m.ValidatorUpdates {
  8477. l = e.Size()
  8478. n += 1 + l + sovTypes(uint64(l))
  8479. }
  8480. }
  8481. if m.ConsensusParamUpdates != nil {
  8482. l = m.ConsensusParamUpdates.Size()
  8483. n += 1 + l + sovTypes(uint64(l))
  8484. }
  8485. return n
  8486. }
  8487. func (m *ResponseFinalizeBlock) Size() (n int) {
  8488. if m == nil {
  8489. return 0
  8490. }
  8491. var l int
  8492. _ = l
  8493. if len(m.Events) > 0 {
  8494. for _, e := range m.Events {
  8495. l = e.Size()
  8496. n += 1 + l + sovTypes(uint64(l))
  8497. }
  8498. }
  8499. if len(m.TxResults) > 0 {
  8500. for _, e := range m.TxResults {
  8501. l = e.Size()
  8502. n += 1 + l + sovTypes(uint64(l))
  8503. }
  8504. }
  8505. if len(m.ValidatorUpdates) > 0 {
  8506. for _, e := range m.ValidatorUpdates {
  8507. l = e.Size()
  8508. n += 1 + l + sovTypes(uint64(l))
  8509. }
  8510. }
  8511. if m.ConsensusParamUpdates != nil {
  8512. l = m.ConsensusParamUpdates.Size()
  8513. n += 1 + l + sovTypes(uint64(l))
  8514. }
  8515. l = len(m.AppHash)
  8516. if l > 0 {
  8517. n += 1 + l + sovTypes(uint64(l))
  8518. }
  8519. if m.RetainHeight != 0 {
  8520. n += 1 + sovTypes(uint64(m.RetainHeight))
  8521. }
  8522. return n
  8523. }
  8524. func (m *CommitInfo) Size() (n int) {
  8525. if m == nil {
  8526. return 0
  8527. }
  8528. var l int
  8529. _ = l
  8530. if m.Round != 0 {
  8531. n += 1 + sovTypes(uint64(m.Round))
  8532. }
  8533. if len(m.Votes) > 0 {
  8534. for _, e := range m.Votes {
  8535. l = e.Size()
  8536. n += 1 + l + sovTypes(uint64(l))
  8537. }
  8538. }
  8539. return n
  8540. }
  8541. func (m *Event) Size() (n int) {
  8542. if m == nil {
  8543. return 0
  8544. }
  8545. var l int
  8546. _ = l
  8547. l = len(m.Type)
  8548. if l > 0 {
  8549. n += 1 + l + sovTypes(uint64(l))
  8550. }
  8551. if len(m.Attributes) > 0 {
  8552. for _, e := range m.Attributes {
  8553. l = e.Size()
  8554. n += 1 + l + sovTypes(uint64(l))
  8555. }
  8556. }
  8557. return n
  8558. }
  8559. func (m *EventAttribute) Size() (n int) {
  8560. if m == nil {
  8561. return 0
  8562. }
  8563. var l int
  8564. _ = l
  8565. l = len(m.Key)
  8566. if l > 0 {
  8567. n += 1 + l + sovTypes(uint64(l))
  8568. }
  8569. l = len(m.Value)
  8570. if l > 0 {
  8571. n += 1 + l + sovTypes(uint64(l))
  8572. }
  8573. if m.Index {
  8574. n += 2
  8575. }
  8576. return n
  8577. }
  8578. func (m *ExecTxResult) Size() (n int) {
  8579. if m == nil {
  8580. return 0
  8581. }
  8582. var l int
  8583. _ = l
  8584. if m.Code != 0 {
  8585. n += 1 + sovTypes(uint64(m.Code))
  8586. }
  8587. l = len(m.Data)
  8588. if l > 0 {
  8589. n += 1 + l + sovTypes(uint64(l))
  8590. }
  8591. l = len(m.Log)
  8592. if l > 0 {
  8593. n += 1 + l + sovTypes(uint64(l))
  8594. }
  8595. l = len(m.Info)
  8596. if l > 0 {
  8597. n += 1 + l + sovTypes(uint64(l))
  8598. }
  8599. if m.GasWanted != 0 {
  8600. n += 1 + sovTypes(uint64(m.GasWanted))
  8601. }
  8602. if m.GasUsed != 0 {
  8603. n += 1 + sovTypes(uint64(m.GasUsed))
  8604. }
  8605. if len(m.Events) > 0 {
  8606. for _, e := range m.Events {
  8607. l = e.Size()
  8608. n += 1 + l + sovTypes(uint64(l))
  8609. }
  8610. }
  8611. l = len(m.Codespace)
  8612. if l > 0 {
  8613. n += 1 + l + sovTypes(uint64(l))
  8614. }
  8615. return n
  8616. }
  8617. func (m *TxResult) Size() (n int) {
  8618. if m == nil {
  8619. return 0
  8620. }
  8621. var l int
  8622. _ = l
  8623. if m.Height != 0 {
  8624. n += 1 + sovTypes(uint64(m.Height))
  8625. }
  8626. if m.Index != 0 {
  8627. n += 1 + sovTypes(uint64(m.Index))
  8628. }
  8629. l = len(m.Tx)
  8630. if l > 0 {
  8631. n += 1 + l + sovTypes(uint64(l))
  8632. }
  8633. l = m.Result.Size()
  8634. n += 1 + l + sovTypes(uint64(l))
  8635. return n
  8636. }
  8637. func (m *Validator) Size() (n int) {
  8638. if m == nil {
  8639. return 0
  8640. }
  8641. var l int
  8642. _ = l
  8643. l = len(m.Address)
  8644. if l > 0 {
  8645. n += 1 + l + sovTypes(uint64(l))
  8646. }
  8647. if m.Power != 0 {
  8648. n += 1 + sovTypes(uint64(m.Power))
  8649. }
  8650. return n
  8651. }
  8652. func (m *ValidatorUpdate) Size() (n int) {
  8653. if m == nil {
  8654. return 0
  8655. }
  8656. var l int
  8657. _ = l
  8658. l = m.PubKey.Size()
  8659. n += 1 + l + sovTypes(uint64(l))
  8660. if m.Power != 0 {
  8661. n += 1 + sovTypes(uint64(m.Power))
  8662. }
  8663. return n
  8664. }
  8665. func (m *VoteInfo) Size() (n int) {
  8666. if m == nil {
  8667. return 0
  8668. }
  8669. var l int
  8670. _ = l
  8671. l = m.Validator.Size()
  8672. n += 1 + l + sovTypes(uint64(l))
  8673. if m.SignedLastBlock {
  8674. n += 2
  8675. }
  8676. return n
  8677. }
  8678. func (m *Evidence) Size() (n int) {
  8679. if m == nil {
  8680. return 0
  8681. }
  8682. var l int
  8683. _ = l
  8684. if m.Type != 0 {
  8685. n += 1 + sovTypes(uint64(m.Type))
  8686. }
  8687. l = m.Validator.Size()
  8688. n += 1 + l + sovTypes(uint64(l))
  8689. if m.Height != 0 {
  8690. n += 1 + sovTypes(uint64(m.Height))
  8691. }
  8692. l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)
  8693. n += 1 + l + sovTypes(uint64(l))
  8694. if m.TotalVotingPower != 0 {
  8695. n += 1 + sovTypes(uint64(m.TotalVotingPower))
  8696. }
  8697. return n
  8698. }
  8699. func (m *Snapshot) Size() (n int) {
  8700. if m == nil {
  8701. return 0
  8702. }
  8703. var l int
  8704. _ = l
  8705. if m.Height != 0 {
  8706. n += 1 + sovTypes(uint64(m.Height))
  8707. }
  8708. if m.Format != 0 {
  8709. n += 1 + sovTypes(uint64(m.Format))
  8710. }
  8711. if m.Chunks != 0 {
  8712. n += 1 + sovTypes(uint64(m.Chunks))
  8713. }
  8714. l = len(m.Hash)
  8715. if l > 0 {
  8716. n += 1 + l + sovTypes(uint64(l))
  8717. }
  8718. l = len(m.Metadata)
  8719. if l > 0 {
  8720. n += 1 + l + sovTypes(uint64(l))
  8721. }
  8722. return n
  8723. }
  8724. func sovTypes(x uint64) (n int) {
  8725. return (math_bits.Len64(x|1) + 6) / 7
  8726. }
  8727. func sozTypes(x uint64) (n int) {
  8728. return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  8729. }
  8730. func (m *Request) Unmarshal(dAtA []byte) error {
  8731. l := len(dAtA)
  8732. iNdEx := 0
  8733. for iNdEx < l {
  8734. preIndex := iNdEx
  8735. var wire uint64
  8736. for shift := uint(0); ; shift += 7 {
  8737. if shift >= 64 {
  8738. return ErrIntOverflowTypes
  8739. }
  8740. if iNdEx >= l {
  8741. return io.ErrUnexpectedEOF
  8742. }
  8743. b := dAtA[iNdEx]
  8744. iNdEx++
  8745. wire |= uint64(b&0x7F) << shift
  8746. if b < 0x80 {
  8747. break
  8748. }
  8749. }
  8750. fieldNum := int32(wire >> 3)
  8751. wireType := int(wire & 0x7)
  8752. if wireType == 4 {
  8753. return fmt.Errorf("proto: Request: wiretype end group for non-group")
  8754. }
  8755. if fieldNum <= 0 {
  8756. return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
  8757. }
  8758. switch fieldNum {
  8759. case 1:
  8760. if wireType != 2 {
  8761. return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType)
  8762. }
  8763. var msglen int
  8764. for shift := uint(0); ; shift += 7 {
  8765. if shift >= 64 {
  8766. return ErrIntOverflowTypes
  8767. }
  8768. if iNdEx >= l {
  8769. return io.ErrUnexpectedEOF
  8770. }
  8771. b := dAtA[iNdEx]
  8772. iNdEx++
  8773. msglen |= int(b&0x7F) << shift
  8774. if b < 0x80 {
  8775. break
  8776. }
  8777. }
  8778. if msglen < 0 {
  8779. return ErrInvalidLengthTypes
  8780. }
  8781. postIndex := iNdEx + msglen
  8782. if postIndex < 0 {
  8783. return ErrInvalidLengthTypes
  8784. }
  8785. if postIndex > l {
  8786. return io.ErrUnexpectedEOF
  8787. }
  8788. v := &RequestEcho{}
  8789. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  8790. return err
  8791. }
  8792. m.Value = &Request_Echo{v}
  8793. iNdEx = postIndex
  8794. case 2:
  8795. if wireType != 2 {
  8796. return fmt.Errorf("proto: wrong wireType = %d for field Flush", wireType)
  8797. }
  8798. var msglen int
  8799. for shift := uint(0); ; shift += 7 {
  8800. if shift >= 64 {
  8801. return ErrIntOverflowTypes
  8802. }
  8803. if iNdEx >= l {
  8804. return io.ErrUnexpectedEOF
  8805. }
  8806. b := dAtA[iNdEx]
  8807. iNdEx++
  8808. msglen |= int(b&0x7F) << shift
  8809. if b < 0x80 {
  8810. break
  8811. }
  8812. }
  8813. if msglen < 0 {
  8814. return ErrInvalidLengthTypes
  8815. }
  8816. postIndex := iNdEx + msglen
  8817. if postIndex < 0 {
  8818. return ErrInvalidLengthTypes
  8819. }
  8820. if postIndex > l {
  8821. return io.ErrUnexpectedEOF
  8822. }
  8823. v := &RequestFlush{}
  8824. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  8825. return err
  8826. }
  8827. m.Value = &Request_Flush{v}
  8828. iNdEx = postIndex
  8829. case 3:
  8830. if wireType != 2 {
  8831. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  8832. }
  8833. var msglen int
  8834. for shift := uint(0); ; shift += 7 {
  8835. if shift >= 64 {
  8836. return ErrIntOverflowTypes
  8837. }
  8838. if iNdEx >= l {
  8839. return io.ErrUnexpectedEOF
  8840. }
  8841. b := dAtA[iNdEx]
  8842. iNdEx++
  8843. msglen |= int(b&0x7F) << shift
  8844. if b < 0x80 {
  8845. break
  8846. }
  8847. }
  8848. if msglen < 0 {
  8849. return ErrInvalidLengthTypes
  8850. }
  8851. postIndex := iNdEx + msglen
  8852. if postIndex < 0 {
  8853. return ErrInvalidLengthTypes
  8854. }
  8855. if postIndex > l {
  8856. return io.ErrUnexpectedEOF
  8857. }
  8858. v := &RequestInfo{}
  8859. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  8860. return err
  8861. }
  8862. m.Value = &Request_Info{v}
  8863. iNdEx = postIndex
  8864. case 4:
  8865. if wireType != 2 {
  8866. return fmt.Errorf("proto: wrong wireType = %d for field InitChain", wireType)
  8867. }
  8868. var msglen int
  8869. for shift := uint(0); ; shift += 7 {
  8870. if shift >= 64 {
  8871. return ErrIntOverflowTypes
  8872. }
  8873. if iNdEx >= l {
  8874. return io.ErrUnexpectedEOF
  8875. }
  8876. b := dAtA[iNdEx]
  8877. iNdEx++
  8878. msglen |= int(b&0x7F) << shift
  8879. if b < 0x80 {
  8880. break
  8881. }
  8882. }
  8883. if msglen < 0 {
  8884. return ErrInvalidLengthTypes
  8885. }
  8886. postIndex := iNdEx + msglen
  8887. if postIndex < 0 {
  8888. return ErrInvalidLengthTypes
  8889. }
  8890. if postIndex > l {
  8891. return io.ErrUnexpectedEOF
  8892. }
  8893. v := &RequestInitChain{}
  8894. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  8895. return err
  8896. }
  8897. m.Value = &Request_InitChain{v}
  8898. iNdEx = postIndex
  8899. case 5:
  8900. if wireType != 2 {
  8901. return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType)
  8902. }
  8903. var msglen int
  8904. for shift := uint(0); ; shift += 7 {
  8905. if shift >= 64 {
  8906. return ErrIntOverflowTypes
  8907. }
  8908. if iNdEx >= l {
  8909. return io.ErrUnexpectedEOF
  8910. }
  8911. b := dAtA[iNdEx]
  8912. iNdEx++
  8913. msglen |= int(b&0x7F) << shift
  8914. if b < 0x80 {
  8915. break
  8916. }
  8917. }
  8918. if msglen < 0 {
  8919. return ErrInvalidLengthTypes
  8920. }
  8921. postIndex := iNdEx + msglen
  8922. if postIndex < 0 {
  8923. return ErrInvalidLengthTypes
  8924. }
  8925. if postIndex > l {
  8926. return io.ErrUnexpectedEOF
  8927. }
  8928. v := &RequestQuery{}
  8929. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  8930. return err
  8931. }
  8932. m.Value = &Request_Query{v}
  8933. iNdEx = postIndex
  8934. case 6:
  8935. if wireType != 2 {
  8936. return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType)
  8937. }
  8938. var msglen int
  8939. for shift := uint(0); ; shift += 7 {
  8940. if shift >= 64 {
  8941. return ErrIntOverflowTypes
  8942. }
  8943. if iNdEx >= l {
  8944. return io.ErrUnexpectedEOF
  8945. }
  8946. b := dAtA[iNdEx]
  8947. iNdEx++
  8948. msglen |= int(b&0x7F) << shift
  8949. if b < 0x80 {
  8950. break
  8951. }
  8952. }
  8953. if msglen < 0 {
  8954. return ErrInvalidLengthTypes
  8955. }
  8956. postIndex := iNdEx + msglen
  8957. if postIndex < 0 {
  8958. return ErrInvalidLengthTypes
  8959. }
  8960. if postIndex > l {
  8961. return io.ErrUnexpectedEOF
  8962. }
  8963. v := &RequestBeginBlock{}
  8964. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  8965. return err
  8966. }
  8967. m.Value = &Request_BeginBlock{v}
  8968. iNdEx = postIndex
  8969. case 7:
  8970. if wireType != 2 {
  8971. return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType)
  8972. }
  8973. var msglen int
  8974. for shift := uint(0); ; shift += 7 {
  8975. if shift >= 64 {
  8976. return ErrIntOverflowTypes
  8977. }
  8978. if iNdEx >= l {
  8979. return io.ErrUnexpectedEOF
  8980. }
  8981. b := dAtA[iNdEx]
  8982. iNdEx++
  8983. msglen |= int(b&0x7F) << shift
  8984. if b < 0x80 {
  8985. break
  8986. }
  8987. }
  8988. if msglen < 0 {
  8989. return ErrInvalidLengthTypes
  8990. }
  8991. postIndex := iNdEx + msglen
  8992. if postIndex < 0 {
  8993. return ErrInvalidLengthTypes
  8994. }
  8995. if postIndex > l {
  8996. return io.ErrUnexpectedEOF
  8997. }
  8998. v := &RequestCheckTx{}
  8999. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9000. return err
  9001. }
  9002. m.Value = &Request_CheckTx{v}
  9003. iNdEx = postIndex
  9004. case 8:
  9005. if wireType != 2 {
  9006. return fmt.Errorf("proto: wrong wireType = %d for field DeliverTx", wireType)
  9007. }
  9008. var msglen int
  9009. for shift := uint(0); ; shift += 7 {
  9010. if shift >= 64 {
  9011. return ErrIntOverflowTypes
  9012. }
  9013. if iNdEx >= l {
  9014. return io.ErrUnexpectedEOF
  9015. }
  9016. b := dAtA[iNdEx]
  9017. iNdEx++
  9018. msglen |= int(b&0x7F) << shift
  9019. if b < 0x80 {
  9020. break
  9021. }
  9022. }
  9023. if msglen < 0 {
  9024. return ErrInvalidLengthTypes
  9025. }
  9026. postIndex := iNdEx + msglen
  9027. if postIndex < 0 {
  9028. return ErrInvalidLengthTypes
  9029. }
  9030. if postIndex > l {
  9031. return io.ErrUnexpectedEOF
  9032. }
  9033. v := &RequestDeliverTx{}
  9034. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9035. return err
  9036. }
  9037. m.Value = &Request_DeliverTx{v}
  9038. iNdEx = postIndex
  9039. case 9:
  9040. if wireType != 2 {
  9041. return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType)
  9042. }
  9043. var msglen int
  9044. for shift := uint(0); ; shift += 7 {
  9045. if shift >= 64 {
  9046. return ErrIntOverflowTypes
  9047. }
  9048. if iNdEx >= l {
  9049. return io.ErrUnexpectedEOF
  9050. }
  9051. b := dAtA[iNdEx]
  9052. iNdEx++
  9053. msglen |= int(b&0x7F) << shift
  9054. if b < 0x80 {
  9055. break
  9056. }
  9057. }
  9058. if msglen < 0 {
  9059. return ErrInvalidLengthTypes
  9060. }
  9061. postIndex := iNdEx + msglen
  9062. if postIndex < 0 {
  9063. return ErrInvalidLengthTypes
  9064. }
  9065. if postIndex > l {
  9066. return io.ErrUnexpectedEOF
  9067. }
  9068. v := &RequestEndBlock{}
  9069. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9070. return err
  9071. }
  9072. m.Value = &Request_EndBlock{v}
  9073. iNdEx = postIndex
  9074. case 10:
  9075. if wireType != 2 {
  9076. return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType)
  9077. }
  9078. var msglen int
  9079. for shift := uint(0); ; shift += 7 {
  9080. if shift >= 64 {
  9081. return ErrIntOverflowTypes
  9082. }
  9083. if iNdEx >= l {
  9084. return io.ErrUnexpectedEOF
  9085. }
  9086. b := dAtA[iNdEx]
  9087. iNdEx++
  9088. msglen |= int(b&0x7F) << shift
  9089. if b < 0x80 {
  9090. break
  9091. }
  9092. }
  9093. if msglen < 0 {
  9094. return ErrInvalidLengthTypes
  9095. }
  9096. postIndex := iNdEx + msglen
  9097. if postIndex < 0 {
  9098. return ErrInvalidLengthTypes
  9099. }
  9100. if postIndex > l {
  9101. return io.ErrUnexpectedEOF
  9102. }
  9103. v := &RequestCommit{}
  9104. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9105. return err
  9106. }
  9107. m.Value = &Request_Commit{v}
  9108. iNdEx = postIndex
  9109. case 11:
  9110. if wireType != 2 {
  9111. return fmt.Errorf("proto: wrong wireType = %d for field ListSnapshots", wireType)
  9112. }
  9113. var msglen int
  9114. for shift := uint(0); ; shift += 7 {
  9115. if shift >= 64 {
  9116. return ErrIntOverflowTypes
  9117. }
  9118. if iNdEx >= l {
  9119. return io.ErrUnexpectedEOF
  9120. }
  9121. b := dAtA[iNdEx]
  9122. iNdEx++
  9123. msglen |= int(b&0x7F) << shift
  9124. if b < 0x80 {
  9125. break
  9126. }
  9127. }
  9128. if msglen < 0 {
  9129. return ErrInvalidLengthTypes
  9130. }
  9131. postIndex := iNdEx + msglen
  9132. if postIndex < 0 {
  9133. return ErrInvalidLengthTypes
  9134. }
  9135. if postIndex > l {
  9136. return io.ErrUnexpectedEOF
  9137. }
  9138. v := &RequestListSnapshots{}
  9139. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9140. return err
  9141. }
  9142. m.Value = &Request_ListSnapshots{v}
  9143. iNdEx = postIndex
  9144. case 12:
  9145. if wireType != 2 {
  9146. return fmt.Errorf("proto: wrong wireType = %d for field OfferSnapshot", wireType)
  9147. }
  9148. var msglen int
  9149. for shift := uint(0); ; shift += 7 {
  9150. if shift >= 64 {
  9151. return ErrIntOverflowTypes
  9152. }
  9153. if iNdEx >= l {
  9154. return io.ErrUnexpectedEOF
  9155. }
  9156. b := dAtA[iNdEx]
  9157. iNdEx++
  9158. msglen |= int(b&0x7F) << shift
  9159. if b < 0x80 {
  9160. break
  9161. }
  9162. }
  9163. if msglen < 0 {
  9164. return ErrInvalidLengthTypes
  9165. }
  9166. postIndex := iNdEx + msglen
  9167. if postIndex < 0 {
  9168. return ErrInvalidLengthTypes
  9169. }
  9170. if postIndex > l {
  9171. return io.ErrUnexpectedEOF
  9172. }
  9173. v := &RequestOfferSnapshot{}
  9174. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9175. return err
  9176. }
  9177. m.Value = &Request_OfferSnapshot{v}
  9178. iNdEx = postIndex
  9179. case 13:
  9180. if wireType != 2 {
  9181. return fmt.Errorf("proto: wrong wireType = %d for field LoadSnapshotChunk", wireType)
  9182. }
  9183. var msglen int
  9184. for shift := uint(0); ; shift += 7 {
  9185. if shift >= 64 {
  9186. return ErrIntOverflowTypes
  9187. }
  9188. if iNdEx >= l {
  9189. return io.ErrUnexpectedEOF
  9190. }
  9191. b := dAtA[iNdEx]
  9192. iNdEx++
  9193. msglen |= int(b&0x7F) << shift
  9194. if b < 0x80 {
  9195. break
  9196. }
  9197. }
  9198. if msglen < 0 {
  9199. return ErrInvalidLengthTypes
  9200. }
  9201. postIndex := iNdEx + msglen
  9202. if postIndex < 0 {
  9203. return ErrInvalidLengthTypes
  9204. }
  9205. if postIndex > l {
  9206. return io.ErrUnexpectedEOF
  9207. }
  9208. v := &RequestLoadSnapshotChunk{}
  9209. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9210. return err
  9211. }
  9212. m.Value = &Request_LoadSnapshotChunk{v}
  9213. iNdEx = postIndex
  9214. case 14:
  9215. if wireType != 2 {
  9216. return fmt.Errorf("proto: wrong wireType = %d for field ApplySnapshotChunk", wireType)
  9217. }
  9218. var msglen int
  9219. for shift := uint(0); ; shift += 7 {
  9220. if shift >= 64 {
  9221. return ErrIntOverflowTypes
  9222. }
  9223. if iNdEx >= l {
  9224. return io.ErrUnexpectedEOF
  9225. }
  9226. b := dAtA[iNdEx]
  9227. iNdEx++
  9228. msglen |= int(b&0x7F) << shift
  9229. if b < 0x80 {
  9230. break
  9231. }
  9232. }
  9233. if msglen < 0 {
  9234. return ErrInvalidLengthTypes
  9235. }
  9236. postIndex := iNdEx + msglen
  9237. if postIndex < 0 {
  9238. return ErrInvalidLengthTypes
  9239. }
  9240. if postIndex > l {
  9241. return io.ErrUnexpectedEOF
  9242. }
  9243. v := &RequestApplySnapshotChunk{}
  9244. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9245. return err
  9246. }
  9247. m.Value = &Request_ApplySnapshotChunk{v}
  9248. iNdEx = postIndex
  9249. case 15:
  9250. if wireType != 2 {
  9251. return fmt.Errorf("proto: wrong wireType = %d for field PrepareProposal", wireType)
  9252. }
  9253. var msglen int
  9254. for shift := uint(0); ; shift += 7 {
  9255. if shift >= 64 {
  9256. return ErrIntOverflowTypes
  9257. }
  9258. if iNdEx >= l {
  9259. return io.ErrUnexpectedEOF
  9260. }
  9261. b := dAtA[iNdEx]
  9262. iNdEx++
  9263. msglen |= int(b&0x7F) << shift
  9264. if b < 0x80 {
  9265. break
  9266. }
  9267. }
  9268. if msglen < 0 {
  9269. return ErrInvalidLengthTypes
  9270. }
  9271. postIndex := iNdEx + msglen
  9272. if postIndex < 0 {
  9273. return ErrInvalidLengthTypes
  9274. }
  9275. if postIndex > l {
  9276. return io.ErrUnexpectedEOF
  9277. }
  9278. v := &RequestPrepareProposal{}
  9279. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9280. return err
  9281. }
  9282. m.Value = &Request_PrepareProposal{v}
  9283. iNdEx = postIndex
  9284. case 16:
  9285. if wireType != 2 {
  9286. return fmt.Errorf("proto: wrong wireType = %d for field ProcessProposal", wireType)
  9287. }
  9288. var msglen int
  9289. for shift := uint(0); ; shift += 7 {
  9290. if shift >= 64 {
  9291. return ErrIntOverflowTypes
  9292. }
  9293. if iNdEx >= l {
  9294. return io.ErrUnexpectedEOF
  9295. }
  9296. b := dAtA[iNdEx]
  9297. iNdEx++
  9298. msglen |= int(b&0x7F) << shift
  9299. if b < 0x80 {
  9300. break
  9301. }
  9302. }
  9303. if msglen < 0 {
  9304. return ErrInvalidLengthTypes
  9305. }
  9306. postIndex := iNdEx + msglen
  9307. if postIndex < 0 {
  9308. return ErrInvalidLengthTypes
  9309. }
  9310. if postIndex > l {
  9311. return io.ErrUnexpectedEOF
  9312. }
  9313. v := &RequestProcessProposal{}
  9314. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9315. return err
  9316. }
  9317. m.Value = &Request_ProcessProposal{v}
  9318. iNdEx = postIndex
  9319. case 17:
  9320. if wireType != 2 {
  9321. return fmt.Errorf("proto: wrong wireType = %d for field ExtendVote", wireType)
  9322. }
  9323. var msglen int
  9324. for shift := uint(0); ; shift += 7 {
  9325. if shift >= 64 {
  9326. return ErrIntOverflowTypes
  9327. }
  9328. if iNdEx >= l {
  9329. return io.ErrUnexpectedEOF
  9330. }
  9331. b := dAtA[iNdEx]
  9332. iNdEx++
  9333. msglen |= int(b&0x7F) << shift
  9334. if b < 0x80 {
  9335. break
  9336. }
  9337. }
  9338. if msglen < 0 {
  9339. return ErrInvalidLengthTypes
  9340. }
  9341. postIndex := iNdEx + msglen
  9342. if postIndex < 0 {
  9343. return ErrInvalidLengthTypes
  9344. }
  9345. if postIndex > l {
  9346. return io.ErrUnexpectedEOF
  9347. }
  9348. v := &RequestExtendVote{}
  9349. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9350. return err
  9351. }
  9352. m.Value = &Request_ExtendVote{v}
  9353. iNdEx = postIndex
  9354. case 18:
  9355. if wireType != 2 {
  9356. return fmt.Errorf("proto: wrong wireType = %d for field VerifyVoteExtension", wireType)
  9357. }
  9358. var msglen int
  9359. for shift := uint(0); ; shift += 7 {
  9360. if shift >= 64 {
  9361. return ErrIntOverflowTypes
  9362. }
  9363. if iNdEx >= l {
  9364. return io.ErrUnexpectedEOF
  9365. }
  9366. b := dAtA[iNdEx]
  9367. iNdEx++
  9368. msglen |= int(b&0x7F) << shift
  9369. if b < 0x80 {
  9370. break
  9371. }
  9372. }
  9373. if msglen < 0 {
  9374. return ErrInvalidLengthTypes
  9375. }
  9376. postIndex := iNdEx + msglen
  9377. if postIndex < 0 {
  9378. return ErrInvalidLengthTypes
  9379. }
  9380. if postIndex > l {
  9381. return io.ErrUnexpectedEOF
  9382. }
  9383. v := &RequestVerifyVoteExtension{}
  9384. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9385. return err
  9386. }
  9387. m.Value = &Request_VerifyVoteExtension{v}
  9388. iNdEx = postIndex
  9389. case 19:
  9390. if wireType != 2 {
  9391. return fmt.Errorf("proto: wrong wireType = %d for field FinalizeBlock", wireType)
  9392. }
  9393. var msglen int
  9394. for shift := uint(0); ; shift += 7 {
  9395. if shift >= 64 {
  9396. return ErrIntOverflowTypes
  9397. }
  9398. if iNdEx >= l {
  9399. return io.ErrUnexpectedEOF
  9400. }
  9401. b := dAtA[iNdEx]
  9402. iNdEx++
  9403. msglen |= int(b&0x7F) << shift
  9404. if b < 0x80 {
  9405. break
  9406. }
  9407. }
  9408. if msglen < 0 {
  9409. return ErrInvalidLengthTypes
  9410. }
  9411. postIndex := iNdEx + msglen
  9412. if postIndex < 0 {
  9413. return ErrInvalidLengthTypes
  9414. }
  9415. if postIndex > l {
  9416. return io.ErrUnexpectedEOF
  9417. }
  9418. v := &RequestFinalizeBlock{}
  9419. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9420. return err
  9421. }
  9422. m.Value = &Request_FinalizeBlock{v}
  9423. iNdEx = postIndex
  9424. default:
  9425. iNdEx = preIndex
  9426. skippy, err := skipTypes(dAtA[iNdEx:])
  9427. if err != nil {
  9428. return err
  9429. }
  9430. if (skippy < 0) || (iNdEx+skippy) < 0 {
  9431. return ErrInvalidLengthTypes
  9432. }
  9433. if (iNdEx + skippy) > l {
  9434. return io.ErrUnexpectedEOF
  9435. }
  9436. iNdEx += skippy
  9437. }
  9438. }
  9439. if iNdEx > l {
  9440. return io.ErrUnexpectedEOF
  9441. }
  9442. return nil
  9443. }
  9444. func (m *RequestEcho) Unmarshal(dAtA []byte) error {
  9445. l := len(dAtA)
  9446. iNdEx := 0
  9447. for iNdEx < l {
  9448. preIndex := iNdEx
  9449. var wire uint64
  9450. for shift := uint(0); ; shift += 7 {
  9451. if shift >= 64 {
  9452. return ErrIntOverflowTypes
  9453. }
  9454. if iNdEx >= l {
  9455. return io.ErrUnexpectedEOF
  9456. }
  9457. b := dAtA[iNdEx]
  9458. iNdEx++
  9459. wire |= uint64(b&0x7F) << shift
  9460. if b < 0x80 {
  9461. break
  9462. }
  9463. }
  9464. fieldNum := int32(wire >> 3)
  9465. wireType := int(wire & 0x7)
  9466. if wireType == 4 {
  9467. return fmt.Errorf("proto: RequestEcho: wiretype end group for non-group")
  9468. }
  9469. if fieldNum <= 0 {
  9470. return fmt.Errorf("proto: RequestEcho: illegal tag %d (wire type %d)", fieldNum, wire)
  9471. }
  9472. switch fieldNum {
  9473. case 1:
  9474. if wireType != 2 {
  9475. return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
  9476. }
  9477. var stringLen uint64
  9478. for shift := uint(0); ; shift += 7 {
  9479. if shift >= 64 {
  9480. return ErrIntOverflowTypes
  9481. }
  9482. if iNdEx >= l {
  9483. return io.ErrUnexpectedEOF
  9484. }
  9485. b := dAtA[iNdEx]
  9486. iNdEx++
  9487. stringLen |= uint64(b&0x7F) << shift
  9488. if b < 0x80 {
  9489. break
  9490. }
  9491. }
  9492. intStringLen := int(stringLen)
  9493. if intStringLen < 0 {
  9494. return ErrInvalidLengthTypes
  9495. }
  9496. postIndex := iNdEx + intStringLen
  9497. if postIndex < 0 {
  9498. return ErrInvalidLengthTypes
  9499. }
  9500. if postIndex > l {
  9501. return io.ErrUnexpectedEOF
  9502. }
  9503. m.Message = string(dAtA[iNdEx:postIndex])
  9504. iNdEx = postIndex
  9505. default:
  9506. iNdEx = preIndex
  9507. skippy, err := skipTypes(dAtA[iNdEx:])
  9508. if err != nil {
  9509. return err
  9510. }
  9511. if (skippy < 0) || (iNdEx+skippy) < 0 {
  9512. return ErrInvalidLengthTypes
  9513. }
  9514. if (iNdEx + skippy) > l {
  9515. return io.ErrUnexpectedEOF
  9516. }
  9517. iNdEx += skippy
  9518. }
  9519. }
  9520. if iNdEx > l {
  9521. return io.ErrUnexpectedEOF
  9522. }
  9523. return nil
  9524. }
  9525. func (m *RequestFlush) Unmarshal(dAtA []byte) error {
  9526. l := len(dAtA)
  9527. iNdEx := 0
  9528. for iNdEx < l {
  9529. preIndex := iNdEx
  9530. var wire uint64
  9531. for shift := uint(0); ; shift += 7 {
  9532. if shift >= 64 {
  9533. return ErrIntOverflowTypes
  9534. }
  9535. if iNdEx >= l {
  9536. return io.ErrUnexpectedEOF
  9537. }
  9538. b := dAtA[iNdEx]
  9539. iNdEx++
  9540. wire |= uint64(b&0x7F) << shift
  9541. if b < 0x80 {
  9542. break
  9543. }
  9544. }
  9545. fieldNum := int32(wire >> 3)
  9546. wireType := int(wire & 0x7)
  9547. if wireType == 4 {
  9548. return fmt.Errorf("proto: RequestFlush: wiretype end group for non-group")
  9549. }
  9550. if fieldNum <= 0 {
  9551. return fmt.Errorf("proto: RequestFlush: illegal tag %d (wire type %d)", fieldNum, wire)
  9552. }
  9553. switch fieldNum {
  9554. default:
  9555. iNdEx = preIndex
  9556. skippy, err := skipTypes(dAtA[iNdEx:])
  9557. if err != nil {
  9558. return err
  9559. }
  9560. if (skippy < 0) || (iNdEx+skippy) < 0 {
  9561. return ErrInvalidLengthTypes
  9562. }
  9563. if (iNdEx + skippy) > l {
  9564. return io.ErrUnexpectedEOF
  9565. }
  9566. iNdEx += skippy
  9567. }
  9568. }
  9569. if iNdEx > l {
  9570. return io.ErrUnexpectedEOF
  9571. }
  9572. return nil
  9573. }
  9574. func (m *RequestInfo) Unmarshal(dAtA []byte) error {
  9575. l := len(dAtA)
  9576. iNdEx := 0
  9577. for iNdEx < l {
  9578. preIndex := iNdEx
  9579. var wire uint64
  9580. for shift := uint(0); ; shift += 7 {
  9581. if shift >= 64 {
  9582. return ErrIntOverflowTypes
  9583. }
  9584. if iNdEx >= l {
  9585. return io.ErrUnexpectedEOF
  9586. }
  9587. b := dAtA[iNdEx]
  9588. iNdEx++
  9589. wire |= uint64(b&0x7F) << shift
  9590. if b < 0x80 {
  9591. break
  9592. }
  9593. }
  9594. fieldNum := int32(wire >> 3)
  9595. wireType := int(wire & 0x7)
  9596. if wireType == 4 {
  9597. return fmt.Errorf("proto: RequestInfo: wiretype end group for non-group")
  9598. }
  9599. if fieldNum <= 0 {
  9600. return fmt.Errorf("proto: RequestInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  9601. }
  9602. switch fieldNum {
  9603. case 1:
  9604. if wireType != 2 {
  9605. return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  9606. }
  9607. var stringLen uint64
  9608. for shift := uint(0); ; shift += 7 {
  9609. if shift >= 64 {
  9610. return ErrIntOverflowTypes
  9611. }
  9612. if iNdEx >= l {
  9613. return io.ErrUnexpectedEOF
  9614. }
  9615. b := dAtA[iNdEx]
  9616. iNdEx++
  9617. stringLen |= uint64(b&0x7F) << shift
  9618. if b < 0x80 {
  9619. break
  9620. }
  9621. }
  9622. intStringLen := int(stringLen)
  9623. if intStringLen < 0 {
  9624. return ErrInvalidLengthTypes
  9625. }
  9626. postIndex := iNdEx + intStringLen
  9627. if postIndex < 0 {
  9628. return ErrInvalidLengthTypes
  9629. }
  9630. if postIndex > l {
  9631. return io.ErrUnexpectedEOF
  9632. }
  9633. m.Version = string(dAtA[iNdEx:postIndex])
  9634. iNdEx = postIndex
  9635. case 2:
  9636. if wireType != 0 {
  9637. return fmt.Errorf("proto: wrong wireType = %d for field BlockVersion", wireType)
  9638. }
  9639. m.BlockVersion = 0
  9640. for shift := uint(0); ; shift += 7 {
  9641. if shift >= 64 {
  9642. return ErrIntOverflowTypes
  9643. }
  9644. if iNdEx >= l {
  9645. return io.ErrUnexpectedEOF
  9646. }
  9647. b := dAtA[iNdEx]
  9648. iNdEx++
  9649. m.BlockVersion |= uint64(b&0x7F) << shift
  9650. if b < 0x80 {
  9651. break
  9652. }
  9653. }
  9654. case 3:
  9655. if wireType != 0 {
  9656. return fmt.Errorf("proto: wrong wireType = %d for field P2PVersion", wireType)
  9657. }
  9658. m.P2PVersion = 0
  9659. for shift := uint(0); ; shift += 7 {
  9660. if shift >= 64 {
  9661. return ErrIntOverflowTypes
  9662. }
  9663. if iNdEx >= l {
  9664. return io.ErrUnexpectedEOF
  9665. }
  9666. b := dAtA[iNdEx]
  9667. iNdEx++
  9668. m.P2PVersion |= uint64(b&0x7F) << shift
  9669. if b < 0x80 {
  9670. break
  9671. }
  9672. }
  9673. case 4:
  9674. if wireType != 2 {
  9675. return fmt.Errorf("proto: wrong wireType = %d for field AbciVersion", wireType)
  9676. }
  9677. var stringLen uint64
  9678. for shift := uint(0); ; shift += 7 {
  9679. if shift >= 64 {
  9680. return ErrIntOverflowTypes
  9681. }
  9682. if iNdEx >= l {
  9683. return io.ErrUnexpectedEOF
  9684. }
  9685. b := dAtA[iNdEx]
  9686. iNdEx++
  9687. stringLen |= uint64(b&0x7F) << shift
  9688. if b < 0x80 {
  9689. break
  9690. }
  9691. }
  9692. intStringLen := int(stringLen)
  9693. if intStringLen < 0 {
  9694. return ErrInvalidLengthTypes
  9695. }
  9696. postIndex := iNdEx + intStringLen
  9697. if postIndex < 0 {
  9698. return ErrInvalidLengthTypes
  9699. }
  9700. if postIndex > l {
  9701. return io.ErrUnexpectedEOF
  9702. }
  9703. m.AbciVersion = string(dAtA[iNdEx:postIndex])
  9704. iNdEx = postIndex
  9705. default:
  9706. iNdEx = preIndex
  9707. skippy, err := skipTypes(dAtA[iNdEx:])
  9708. if err != nil {
  9709. return err
  9710. }
  9711. if (skippy < 0) || (iNdEx+skippy) < 0 {
  9712. return ErrInvalidLengthTypes
  9713. }
  9714. if (iNdEx + skippy) > l {
  9715. return io.ErrUnexpectedEOF
  9716. }
  9717. iNdEx += skippy
  9718. }
  9719. }
  9720. if iNdEx > l {
  9721. return io.ErrUnexpectedEOF
  9722. }
  9723. return nil
  9724. }
  9725. func (m *RequestInitChain) Unmarshal(dAtA []byte) error {
  9726. l := len(dAtA)
  9727. iNdEx := 0
  9728. for iNdEx < l {
  9729. preIndex := iNdEx
  9730. var wire uint64
  9731. for shift := uint(0); ; shift += 7 {
  9732. if shift >= 64 {
  9733. return ErrIntOverflowTypes
  9734. }
  9735. if iNdEx >= l {
  9736. return io.ErrUnexpectedEOF
  9737. }
  9738. b := dAtA[iNdEx]
  9739. iNdEx++
  9740. wire |= uint64(b&0x7F) << shift
  9741. if b < 0x80 {
  9742. break
  9743. }
  9744. }
  9745. fieldNum := int32(wire >> 3)
  9746. wireType := int(wire & 0x7)
  9747. if wireType == 4 {
  9748. return fmt.Errorf("proto: RequestInitChain: wiretype end group for non-group")
  9749. }
  9750. if fieldNum <= 0 {
  9751. return fmt.Errorf("proto: RequestInitChain: illegal tag %d (wire type %d)", fieldNum, wire)
  9752. }
  9753. switch fieldNum {
  9754. case 1:
  9755. if wireType != 2 {
  9756. return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
  9757. }
  9758. var msglen int
  9759. for shift := uint(0); ; shift += 7 {
  9760. if shift >= 64 {
  9761. return ErrIntOverflowTypes
  9762. }
  9763. if iNdEx >= l {
  9764. return io.ErrUnexpectedEOF
  9765. }
  9766. b := dAtA[iNdEx]
  9767. iNdEx++
  9768. msglen |= int(b&0x7F) << shift
  9769. if b < 0x80 {
  9770. break
  9771. }
  9772. }
  9773. if msglen < 0 {
  9774. return ErrInvalidLengthTypes
  9775. }
  9776. postIndex := iNdEx + msglen
  9777. if postIndex < 0 {
  9778. return ErrInvalidLengthTypes
  9779. }
  9780. if postIndex > l {
  9781. return io.ErrUnexpectedEOF
  9782. }
  9783. if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil {
  9784. return err
  9785. }
  9786. iNdEx = postIndex
  9787. case 2:
  9788. if wireType != 2 {
  9789. return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType)
  9790. }
  9791. var stringLen uint64
  9792. for shift := uint(0); ; shift += 7 {
  9793. if shift >= 64 {
  9794. return ErrIntOverflowTypes
  9795. }
  9796. if iNdEx >= l {
  9797. return io.ErrUnexpectedEOF
  9798. }
  9799. b := dAtA[iNdEx]
  9800. iNdEx++
  9801. stringLen |= uint64(b&0x7F) << shift
  9802. if b < 0x80 {
  9803. break
  9804. }
  9805. }
  9806. intStringLen := int(stringLen)
  9807. if intStringLen < 0 {
  9808. return ErrInvalidLengthTypes
  9809. }
  9810. postIndex := iNdEx + intStringLen
  9811. if postIndex < 0 {
  9812. return ErrInvalidLengthTypes
  9813. }
  9814. if postIndex > l {
  9815. return io.ErrUnexpectedEOF
  9816. }
  9817. m.ChainId = string(dAtA[iNdEx:postIndex])
  9818. iNdEx = postIndex
  9819. case 3:
  9820. if wireType != 2 {
  9821. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParams", wireType)
  9822. }
  9823. var msglen int
  9824. for shift := uint(0); ; shift += 7 {
  9825. if shift >= 64 {
  9826. return ErrIntOverflowTypes
  9827. }
  9828. if iNdEx >= l {
  9829. return io.ErrUnexpectedEOF
  9830. }
  9831. b := dAtA[iNdEx]
  9832. iNdEx++
  9833. msglen |= int(b&0x7F) << shift
  9834. if b < 0x80 {
  9835. break
  9836. }
  9837. }
  9838. if msglen < 0 {
  9839. return ErrInvalidLengthTypes
  9840. }
  9841. postIndex := iNdEx + msglen
  9842. if postIndex < 0 {
  9843. return ErrInvalidLengthTypes
  9844. }
  9845. if postIndex > l {
  9846. return io.ErrUnexpectedEOF
  9847. }
  9848. if m.ConsensusParams == nil {
  9849. m.ConsensusParams = &types1.ConsensusParams{}
  9850. }
  9851. if err := m.ConsensusParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9852. return err
  9853. }
  9854. iNdEx = postIndex
  9855. case 4:
  9856. if wireType != 2 {
  9857. return fmt.Errorf("proto: wrong wireType = %d for field Validators", wireType)
  9858. }
  9859. var msglen int
  9860. for shift := uint(0); ; shift += 7 {
  9861. if shift >= 64 {
  9862. return ErrIntOverflowTypes
  9863. }
  9864. if iNdEx >= l {
  9865. return io.ErrUnexpectedEOF
  9866. }
  9867. b := dAtA[iNdEx]
  9868. iNdEx++
  9869. msglen |= int(b&0x7F) << shift
  9870. if b < 0x80 {
  9871. break
  9872. }
  9873. }
  9874. if msglen < 0 {
  9875. return ErrInvalidLengthTypes
  9876. }
  9877. postIndex := iNdEx + msglen
  9878. if postIndex < 0 {
  9879. return ErrInvalidLengthTypes
  9880. }
  9881. if postIndex > l {
  9882. return io.ErrUnexpectedEOF
  9883. }
  9884. m.Validators = append(m.Validators, ValidatorUpdate{})
  9885. if err := m.Validators[len(m.Validators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9886. return err
  9887. }
  9888. iNdEx = postIndex
  9889. case 5:
  9890. if wireType != 2 {
  9891. return fmt.Errorf("proto: wrong wireType = %d for field AppStateBytes", wireType)
  9892. }
  9893. var byteLen int
  9894. for shift := uint(0); ; shift += 7 {
  9895. if shift >= 64 {
  9896. return ErrIntOverflowTypes
  9897. }
  9898. if iNdEx >= l {
  9899. return io.ErrUnexpectedEOF
  9900. }
  9901. b := dAtA[iNdEx]
  9902. iNdEx++
  9903. byteLen |= int(b&0x7F) << shift
  9904. if b < 0x80 {
  9905. break
  9906. }
  9907. }
  9908. if byteLen < 0 {
  9909. return ErrInvalidLengthTypes
  9910. }
  9911. postIndex := iNdEx + byteLen
  9912. if postIndex < 0 {
  9913. return ErrInvalidLengthTypes
  9914. }
  9915. if postIndex > l {
  9916. return io.ErrUnexpectedEOF
  9917. }
  9918. m.AppStateBytes = append(m.AppStateBytes[:0], dAtA[iNdEx:postIndex]...)
  9919. if m.AppStateBytes == nil {
  9920. m.AppStateBytes = []byte{}
  9921. }
  9922. iNdEx = postIndex
  9923. case 6:
  9924. if wireType != 0 {
  9925. return fmt.Errorf("proto: wrong wireType = %d for field InitialHeight", wireType)
  9926. }
  9927. m.InitialHeight = 0
  9928. for shift := uint(0); ; shift += 7 {
  9929. if shift >= 64 {
  9930. return ErrIntOverflowTypes
  9931. }
  9932. if iNdEx >= l {
  9933. return io.ErrUnexpectedEOF
  9934. }
  9935. b := dAtA[iNdEx]
  9936. iNdEx++
  9937. m.InitialHeight |= int64(b&0x7F) << shift
  9938. if b < 0x80 {
  9939. break
  9940. }
  9941. }
  9942. default:
  9943. iNdEx = preIndex
  9944. skippy, err := skipTypes(dAtA[iNdEx:])
  9945. if err != nil {
  9946. return err
  9947. }
  9948. if (skippy < 0) || (iNdEx+skippy) < 0 {
  9949. return ErrInvalidLengthTypes
  9950. }
  9951. if (iNdEx + skippy) > l {
  9952. return io.ErrUnexpectedEOF
  9953. }
  9954. iNdEx += skippy
  9955. }
  9956. }
  9957. if iNdEx > l {
  9958. return io.ErrUnexpectedEOF
  9959. }
  9960. return nil
  9961. }
  9962. func (m *RequestQuery) Unmarshal(dAtA []byte) error {
  9963. l := len(dAtA)
  9964. iNdEx := 0
  9965. for iNdEx < l {
  9966. preIndex := iNdEx
  9967. var wire uint64
  9968. for shift := uint(0); ; shift += 7 {
  9969. if shift >= 64 {
  9970. return ErrIntOverflowTypes
  9971. }
  9972. if iNdEx >= l {
  9973. return io.ErrUnexpectedEOF
  9974. }
  9975. b := dAtA[iNdEx]
  9976. iNdEx++
  9977. wire |= uint64(b&0x7F) << shift
  9978. if b < 0x80 {
  9979. break
  9980. }
  9981. }
  9982. fieldNum := int32(wire >> 3)
  9983. wireType := int(wire & 0x7)
  9984. if wireType == 4 {
  9985. return fmt.Errorf("proto: RequestQuery: wiretype end group for non-group")
  9986. }
  9987. if fieldNum <= 0 {
  9988. return fmt.Errorf("proto: RequestQuery: illegal tag %d (wire type %d)", fieldNum, wire)
  9989. }
  9990. switch fieldNum {
  9991. case 1:
  9992. if wireType != 2 {
  9993. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  9994. }
  9995. var byteLen int
  9996. for shift := uint(0); ; shift += 7 {
  9997. if shift >= 64 {
  9998. return ErrIntOverflowTypes
  9999. }
  10000. if iNdEx >= l {
  10001. return io.ErrUnexpectedEOF
  10002. }
  10003. b := dAtA[iNdEx]
  10004. iNdEx++
  10005. byteLen |= int(b&0x7F) << shift
  10006. if b < 0x80 {
  10007. break
  10008. }
  10009. }
  10010. if byteLen < 0 {
  10011. return ErrInvalidLengthTypes
  10012. }
  10013. postIndex := iNdEx + byteLen
  10014. if postIndex < 0 {
  10015. return ErrInvalidLengthTypes
  10016. }
  10017. if postIndex > l {
  10018. return io.ErrUnexpectedEOF
  10019. }
  10020. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  10021. if m.Data == nil {
  10022. m.Data = []byte{}
  10023. }
  10024. iNdEx = postIndex
  10025. case 2:
  10026. if wireType != 2 {
  10027. return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
  10028. }
  10029. var stringLen uint64
  10030. for shift := uint(0); ; shift += 7 {
  10031. if shift >= 64 {
  10032. return ErrIntOverflowTypes
  10033. }
  10034. if iNdEx >= l {
  10035. return io.ErrUnexpectedEOF
  10036. }
  10037. b := dAtA[iNdEx]
  10038. iNdEx++
  10039. stringLen |= uint64(b&0x7F) << shift
  10040. if b < 0x80 {
  10041. break
  10042. }
  10043. }
  10044. intStringLen := int(stringLen)
  10045. if intStringLen < 0 {
  10046. return ErrInvalidLengthTypes
  10047. }
  10048. postIndex := iNdEx + intStringLen
  10049. if postIndex < 0 {
  10050. return ErrInvalidLengthTypes
  10051. }
  10052. if postIndex > l {
  10053. return io.ErrUnexpectedEOF
  10054. }
  10055. m.Path = string(dAtA[iNdEx:postIndex])
  10056. iNdEx = postIndex
  10057. case 3:
  10058. if wireType != 0 {
  10059. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  10060. }
  10061. m.Height = 0
  10062. for shift := uint(0); ; shift += 7 {
  10063. if shift >= 64 {
  10064. return ErrIntOverflowTypes
  10065. }
  10066. if iNdEx >= l {
  10067. return io.ErrUnexpectedEOF
  10068. }
  10069. b := dAtA[iNdEx]
  10070. iNdEx++
  10071. m.Height |= int64(b&0x7F) << shift
  10072. if b < 0x80 {
  10073. break
  10074. }
  10075. }
  10076. case 4:
  10077. if wireType != 0 {
  10078. return fmt.Errorf("proto: wrong wireType = %d for field Prove", wireType)
  10079. }
  10080. var v int
  10081. for shift := uint(0); ; shift += 7 {
  10082. if shift >= 64 {
  10083. return ErrIntOverflowTypes
  10084. }
  10085. if iNdEx >= l {
  10086. return io.ErrUnexpectedEOF
  10087. }
  10088. b := dAtA[iNdEx]
  10089. iNdEx++
  10090. v |= int(b&0x7F) << shift
  10091. if b < 0x80 {
  10092. break
  10093. }
  10094. }
  10095. m.Prove = bool(v != 0)
  10096. default:
  10097. iNdEx = preIndex
  10098. skippy, err := skipTypes(dAtA[iNdEx:])
  10099. if err != nil {
  10100. return err
  10101. }
  10102. if (skippy < 0) || (iNdEx+skippy) < 0 {
  10103. return ErrInvalidLengthTypes
  10104. }
  10105. if (iNdEx + skippy) > l {
  10106. return io.ErrUnexpectedEOF
  10107. }
  10108. iNdEx += skippy
  10109. }
  10110. }
  10111. if iNdEx > l {
  10112. return io.ErrUnexpectedEOF
  10113. }
  10114. return nil
  10115. }
  10116. func (m *RequestBeginBlock) Unmarshal(dAtA []byte) error {
  10117. l := len(dAtA)
  10118. iNdEx := 0
  10119. for iNdEx < l {
  10120. preIndex := iNdEx
  10121. var wire uint64
  10122. for shift := uint(0); ; shift += 7 {
  10123. if shift >= 64 {
  10124. return ErrIntOverflowTypes
  10125. }
  10126. if iNdEx >= l {
  10127. return io.ErrUnexpectedEOF
  10128. }
  10129. b := dAtA[iNdEx]
  10130. iNdEx++
  10131. wire |= uint64(b&0x7F) << shift
  10132. if b < 0x80 {
  10133. break
  10134. }
  10135. }
  10136. fieldNum := int32(wire >> 3)
  10137. wireType := int(wire & 0x7)
  10138. if wireType == 4 {
  10139. return fmt.Errorf("proto: RequestBeginBlock: wiretype end group for non-group")
  10140. }
  10141. if fieldNum <= 0 {
  10142. return fmt.Errorf("proto: RequestBeginBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  10143. }
  10144. switch fieldNum {
  10145. case 1:
  10146. if wireType != 2 {
  10147. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  10148. }
  10149. var byteLen int
  10150. for shift := uint(0); ; shift += 7 {
  10151. if shift >= 64 {
  10152. return ErrIntOverflowTypes
  10153. }
  10154. if iNdEx >= l {
  10155. return io.ErrUnexpectedEOF
  10156. }
  10157. b := dAtA[iNdEx]
  10158. iNdEx++
  10159. byteLen |= int(b&0x7F) << shift
  10160. if b < 0x80 {
  10161. break
  10162. }
  10163. }
  10164. if byteLen < 0 {
  10165. return ErrInvalidLengthTypes
  10166. }
  10167. postIndex := iNdEx + byteLen
  10168. if postIndex < 0 {
  10169. return ErrInvalidLengthTypes
  10170. }
  10171. if postIndex > l {
  10172. return io.ErrUnexpectedEOF
  10173. }
  10174. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  10175. if m.Hash == nil {
  10176. m.Hash = []byte{}
  10177. }
  10178. iNdEx = postIndex
  10179. case 2:
  10180. if wireType != 2 {
  10181. return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType)
  10182. }
  10183. var msglen int
  10184. for shift := uint(0); ; shift += 7 {
  10185. if shift >= 64 {
  10186. return ErrIntOverflowTypes
  10187. }
  10188. if iNdEx >= l {
  10189. return io.ErrUnexpectedEOF
  10190. }
  10191. b := dAtA[iNdEx]
  10192. iNdEx++
  10193. msglen |= int(b&0x7F) << shift
  10194. if b < 0x80 {
  10195. break
  10196. }
  10197. }
  10198. if msglen < 0 {
  10199. return ErrInvalidLengthTypes
  10200. }
  10201. postIndex := iNdEx + msglen
  10202. if postIndex < 0 {
  10203. return ErrInvalidLengthTypes
  10204. }
  10205. if postIndex > l {
  10206. return io.ErrUnexpectedEOF
  10207. }
  10208. if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10209. return err
  10210. }
  10211. iNdEx = postIndex
  10212. case 3:
  10213. if wireType != 2 {
  10214. return fmt.Errorf("proto: wrong wireType = %d for field LastCommitInfo", wireType)
  10215. }
  10216. var msglen int
  10217. for shift := uint(0); ; shift += 7 {
  10218. if shift >= 64 {
  10219. return ErrIntOverflowTypes
  10220. }
  10221. if iNdEx >= l {
  10222. return io.ErrUnexpectedEOF
  10223. }
  10224. b := dAtA[iNdEx]
  10225. iNdEx++
  10226. msglen |= int(b&0x7F) << shift
  10227. if b < 0x80 {
  10228. break
  10229. }
  10230. }
  10231. if msglen < 0 {
  10232. return ErrInvalidLengthTypes
  10233. }
  10234. postIndex := iNdEx + msglen
  10235. if postIndex < 0 {
  10236. return ErrInvalidLengthTypes
  10237. }
  10238. if postIndex > l {
  10239. return io.ErrUnexpectedEOF
  10240. }
  10241. if err := m.LastCommitInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10242. return err
  10243. }
  10244. iNdEx = postIndex
  10245. case 4:
  10246. if wireType != 2 {
  10247. return fmt.Errorf("proto: wrong wireType = %d for field ByzantineValidators", wireType)
  10248. }
  10249. var msglen int
  10250. for shift := uint(0); ; shift += 7 {
  10251. if shift >= 64 {
  10252. return ErrIntOverflowTypes
  10253. }
  10254. if iNdEx >= l {
  10255. return io.ErrUnexpectedEOF
  10256. }
  10257. b := dAtA[iNdEx]
  10258. iNdEx++
  10259. msglen |= int(b&0x7F) << shift
  10260. if b < 0x80 {
  10261. break
  10262. }
  10263. }
  10264. if msglen < 0 {
  10265. return ErrInvalidLengthTypes
  10266. }
  10267. postIndex := iNdEx + msglen
  10268. if postIndex < 0 {
  10269. return ErrInvalidLengthTypes
  10270. }
  10271. if postIndex > l {
  10272. return io.ErrUnexpectedEOF
  10273. }
  10274. m.ByzantineValidators = append(m.ByzantineValidators, Evidence{})
  10275. if err := m.ByzantineValidators[len(m.ByzantineValidators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10276. return err
  10277. }
  10278. iNdEx = postIndex
  10279. default:
  10280. iNdEx = preIndex
  10281. skippy, err := skipTypes(dAtA[iNdEx:])
  10282. if err != nil {
  10283. return err
  10284. }
  10285. if (skippy < 0) || (iNdEx+skippy) < 0 {
  10286. return ErrInvalidLengthTypes
  10287. }
  10288. if (iNdEx + skippy) > l {
  10289. return io.ErrUnexpectedEOF
  10290. }
  10291. iNdEx += skippy
  10292. }
  10293. }
  10294. if iNdEx > l {
  10295. return io.ErrUnexpectedEOF
  10296. }
  10297. return nil
  10298. }
  10299. func (m *RequestCheckTx) Unmarshal(dAtA []byte) error {
  10300. l := len(dAtA)
  10301. iNdEx := 0
  10302. for iNdEx < l {
  10303. preIndex := iNdEx
  10304. var wire uint64
  10305. for shift := uint(0); ; shift += 7 {
  10306. if shift >= 64 {
  10307. return ErrIntOverflowTypes
  10308. }
  10309. if iNdEx >= l {
  10310. return io.ErrUnexpectedEOF
  10311. }
  10312. b := dAtA[iNdEx]
  10313. iNdEx++
  10314. wire |= uint64(b&0x7F) << shift
  10315. if b < 0x80 {
  10316. break
  10317. }
  10318. }
  10319. fieldNum := int32(wire >> 3)
  10320. wireType := int(wire & 0x7)
  10321. if wireType == 4 {
  10322. return fmt.Errorf("proto: RequestCheckTx: wiretype end group for non-group")
  10323. }
  10324. if fieldNum <= 0 {
  10325. return fmt.Errorf("proto: RequestCheckTx: illegal tag %d (wire type %d)", fieldNum, wire)
  10326. }
  10327. switch fieldNum {
  10328. case 1:
  10329. if wireType != 2 {
  10330. return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType)
  10331. }
  10332. var byteLen int
  10333. for shift := uint(0); ; shift += 7 {
  10334. if shift >= 64 {
  10335. return ErrIntOverflowTypes
  10336. }
  10337. if iNdEx >= l {
  10338. return io.ErrUnexpectedEOF
  10339. }
  10340. b := dAtA[iNdEx]
  10341. iNdEx++
  10342. byteLen |= int(b&0x7F) << shift
  10343. if b < 0x80 {
  10344. break
  10345. }
  10346. }
  10347. if byteLen < 0 {
  10348. return ErrInvalidLengthTypes
  10349. }
  10350. postIndex := iNdEx + byteLen
  10351. if postIndex < 0 {
  10352. return ErrInvalidLengthTypes
  10353. }
  10354. if postIndex > l {
  10355. return io.ErrUnexpectedEOF
  10356. }
  10357. m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...)
  10358. if m.Tx == nil {
  10359. m.Tx = []byte{}
  10360. }
  10361. iNdEx = postIndex
  10362. case 2:
  10363. if wireType != 0 {
  10364. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  10365. }
  10366. m.Type = 0
  10367. for shift := uint(0); ; shift += 7 {
  10368. if shift >= 64 {
  10369. return ErrIntOverflowTypes
  10370. }
  10371. if iNdEx >= l {
  10372. return io.ErrUnexpectedEOF
  10373. }
  10374. b := dAtA[iNdEx]
  10375. iNdEx++
  10376. m.Type |= CheckTxType(b&0x7F) << shift
  10377. if b < 0x80 {
  10378. break
  10379. }
  10380. }
  10381. default:
  10382. iNdEx = preIndex
  10383. skippy, err := skipTypes(dAtA[iNdEx:])
  10384. if err != nil {
  10385. return err
  10386. }
  10387. if (skippy < 0) || (iNdEx+skippy) < 0 {
  10388. return ErrInvalidLengthTypes
  10389. }
  10390. if (iNdEx + skippy) > l {
  10391. return io.ErrUnexpectedEOF
  10392. }
  10393. iNdEx += skippy
  10394. }
  10395. }
  10396. if iNdEx > l {
  10397. return io.ErrUnexpectedEOF
  10398. }
  10399. return nil
  10400. }
  10401. func (m *RequestDeliverTx) Unmarshal(dAtA []byte) error {
  10402. l := len(dAtA)
  10403. iNdEx := 0
  10404. for iNdEx < l {
  10405. preIndex := iNdEx
  10406. var wire uint64
  10407. for shift := uint(0); ; shift += 7 {
  10408. if shift >= 64 {
  10409. return ErrIntOverflowTypes
  10410. }
  10411. if iNdEx >= l {
  10412. return io.ErrUnexpectedEOF
  10413. }
  10414. b := dAtA[iNdEx]
  10415. iNdEx++
  10416. wire |= uint64(b&0x7F) << shift
  10417. if b < 0x80 {
  10418. break
  10419. }
  10420. }
  10421. fieldNum := int32(wire >> 3)
  10422. wireType := int(wire & 0x7)
  10423. if wireType == 4 {
  10424. return fmt.Errorf("proto: RequestDeliverTx: wiretype end group for non-group")
  10425. }
  10426. if fieldNum <= 0 {
  10427. return fmt.Errorf("proto: RequestDeliverTx: illegal tag %d (wire type %d)", fieldNum, wire)
  10428. }
  10429. switch fieldNum {
  10430. case 1:
  10431. if wireType != 2 {
  10432. return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType)
  10433. }
  10434. var byteLen int
  10435. for shift := uint(0); ; shift += 7 {
  10436. if shift >= 64 {
  10437. return ErrIntOverflowTypes
  10438. }
  10439. if iNdEx >= l {
  10440. return io.ErrUnexpectedEOF
  10441. }
  10442. b := dAtA[iNdEx]
  10443. iNdEx++
  10444. byteLen |= int(b&0x7F) << shift
  10445. if b < 0x80 {
  10446. break
  10447. }
  10448. }
  10449. if byteLen < 0 {
  10450. return ErrInvalidLengthTypes
  10451. }
  10452. postIndex := iNdEx + byteLen
  10453. if postIndex < 0 {
  10454. return ErrInvalidLengthTypes
  10455. }
  10456. if postIndex > l {
  10457. return io.ErrUnexpectedEOF
  10458. }
  10459. m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...)
  10460. if m.Tx == nil {
  10461. m.Tx = []byte{}
  10462. }
  10463. iNdEx = postIndex
  10464. default:
  10465. iNdEx = preIndex
  10466. skippy, err := skipTypes(dAtA[iNdEx:])
  10467. if err != nil {
  10468. return err
  10469. }
  10470. if (skippy < 0) || (iNdEx+skippy) < 0 {
  10471. return ErrInvalidLengthTypes
  10472. }
  10473. if (iNdEx + skippy) > l {
  10474. return io.ErrUnexpectedEOF
  10475. }
  10476. iNdEx += skippy
  10477. }
  10478. }
  10479. if iNdEx > l {
  10480. return io.ErrUnexpectedEOF
  10481. }
  10482. return nil
  10483. }
  10484. func (m *RequestEndBlock) Unmarshal(dAtA []byte) error {
  10485. l := len(dAtA)
  10486. iNdEx := 0
  10487. for iNdEx < l {
  10488. preIndex := iNdEx
  10489. var wire uint64
  10490. for shift := uint(0); ; shift += 7 {
  10491. if shift >= 64 {
  10492. return ErrIntOverflowTypes
  10493. }
  10494. if iNdEx >= l {
  10495. return io.ErrUnexpectedEOF
  10496. }
  10497. b := dAtA[iNdEx]
  10498. iNdEx++
  10499. wire |= uint64(b&0x7F) << shift
  10500. if b < 0x80 {
  10501. break
  10502. }
  10503. }
  10504. fieldNum := int32(wire >> 3)
  10505. wireType := int(wire & 0x7)
  10506. if wireType == 4 {
  10507. return fmt.Errorf("proto: RequestEndBlock: wiretype end group for non-group")
  10508. }
  10509. if fieldNum <= 0 {
  10510. return fmt.Errorf("proto: RequestEndBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  10511. }
  10512. switch fieldNum {
  10513. case 1:
  10514. if wireType != 0 {
  10515. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  10516. }
  10517. m.Height = 0
  10518. for shift := uint(0); ; shift += 7 {
  10519. if shift >= 64 {
  10520. return ErrIntOverflowTypes
  10521. }
  10522. if iNdEx >= l {
  10523. return io.ErrUnexpectedEOF
  10524. }
  10525. b := dAtA[iNdEx]
  10526. iNdEx++
  10527. m.Height |= int64(b&0x7F) << shift
  10528. if b < 0x80 {
  10529. break
  10530. }
  10531. }
  10532. default:
  10533. iNdEx = preIndex
  10534. skippy, err := skipTypes(dAtA[iNdEx:])
  10535. if err != nil {
  10536. return err
  10537. }
  10538. if (skippy < 0) || (iNdEx+skippy) < 0 {
  10539. return ErrInvalidLengthTypes
  10540. }
  10541. if (iNdEx + skippy) > l {
  10542. return io.ErrUnexpectedEOF
  10543. }
  10544. iNdEx += skippy
  10545. }
  10546. }
  10547. if iNdEx > l {
  10548. return io.ErrUnexpectedEOF
  10549. }
  10550. return nil
  10551. }
  10552. func (m *RequestCommit) Unmarshal(dAtA []byte) error {
  10553. l := len(dAtA)
  10554. iNdEx := 0
  10555. for iNdEx < l {
  10556. preIndex := iNdEx
  10557. var wire uint64
  10558. for shift := uint(0); ; shift += 7 {
  10559. if shift >= 64 {
  10560. return ErrIntOverflowTypes
  10561. }
  10562. if iNdEx >= l {
  10563. return io.ErrUnexpectedEOF
  10564. }
  10565. b := dAtA[iNdEx]
  10566. iNdEx++
  10567. wire |= uint64(b&0x7F) << shift
  10568. if b < 0x80 {
  10569. break
  10570. }
  10571. }
  10572. fieldNum := int32(wire >> 3)
  10573. wireType := int(wire & 0x7)
  10574. if wireType == 4 {
  10575. return fmt.Errorf("proto: RequestCommit: wiretype end group for non-group")
  10576. }
  10577. if fieldNum <= 0 {
  10578. return fmt.Errorf("proto: RequestCommit: illegal tag %d (wire type %d)", fieldNum, wire)
  10579. }
  10580. switch fieldNum {
  10581. default:
  10582. iNdEx = preIndex
  10583. skippy, err := skipTypes(dAtA[iNdEx:])
  10584. if err != nil {
  10585. return err
  10586. }
  10587. if (skippy < 0) || (iNdEx+skippy) < 0 {
  10588. return ErrInvalidLengthTypes
  10589. }
  10590. if (iNdEx + skippy) > l {
  10591. return io.ErrUnexpectedEOF
  10592. }
  10593. iNdEx += skippy
  10594. }
  10595. }
  10596. if iNdEx > l {
  10597. return io.ErrUnexpectedEOF
  10598. }
  10599. return nil
  10600. }
  10601. func (m *RequestListSnapshots) Unmarshal(dAtA []byte) error {
  10602. l := len(dAtA)
  10603. iNdEx := 0
  10604. for iNdEx < l {
  10605. preIndex := iNdEx
  10606. var wire uint64
  10607. for shift := uint(0); ; shift += 7 {
  10608. if shift >= 64 {
  10609. return ErrIntOverflowTypes
  10610. }
  10611. if iNdEx >= l {
  10612. return io.ErrUnexpectedEOF
  10613. }
  10614. b := dAtA[iNdEx]
  10615. iNdEx++
  10616. wire |= uint64(b&0x7F) << shift
  10617. if b < 0x80 {
  10618. break
  10619. }
  10620. }
  10621. fieldNum := int32(wire >> 3)
  10622. wireType := int(wire & 0x7)
  10623. if wireType == 4 {
  10624. return fmt.Errorf("proto: RequestListSnapshots: wiretype end group for non-group")
  10625. }
  10626. if fieldNum <= 0 {
  10627. return fmt.Errorf("proto: RequestListSnapshots: illegal tag %d (wire type %d)", fieldNum, wire)
  10628. }
  10629. switch fieldNum {
  10630. default:
  10631. iNdEx = preIndex
  10632. skippy, err := skipTypes(dAtA[iNdEx:])
  10633. if err != nil {
  10634. return err
  10635. }
  10636. if (skippy < 0) || (iNdEx+skippy) < 0 {
  10637. return ErrInvalidLengthTypes
  10638. }
  10639. if (iNdEx + skippy) > l {
  10640. return io.ErrUnexpectedEOF
  10641. }
  10642. iNdEx += skippy
  10643. }
  10644. }
  10645. if iNdEx > l {
  10646. return io.ErrUnexpectedEOF
  10647. }
  10648. return nil
  10649. }
  10650. func (m *RequestOfferSnapshot) Unmarshal(dAtA []byte) error {
  10651. l := len(dAtA)
  10652. iNdEx := 0
  10653. for iNdEx < l {
  10654. preIndex := iNdEx
  10655. var wire uint64
  10656. for shift := uint(0); ; shift += 7 {
  10657. if shift >= 64 {
  10658. return ErrIntOverflowTypes
  10659. }
  10660. if iNdEx >= l {
  10661. return io.ErrUnexpectedEOF
  10662. }
  10663. b := dAtA[iNdEx]
  10664. iNdEx++
  10665. wire |= uint64(b&0x7F) << shift
  10666. if b < 0x80 {
  10667. break
  10668. }
  10669. }
  10670. fieldNum := int32(wire >> 3)
  10671. wireType := int(wire & 0x7)
  10672. if wireType == 4 {
  10673. return fmt.Errorf("proto: RequestOfferSnapshot: wiretype end group for non-group")
  10674. }
  10675. if fieldNum <= 0 {
  10676. return fmt.Errorf("proto: RequestOfferSnapshot: illegal tag %d (wire type %d)", fieldNum, wire)
  10677. }
  10678. switch fieldNum {
  10679. case 1:
  10680. if wireType != 2 {
  10681. return fmt.Errorf("proto: wrong wireType = %d for field Snapshot", wireType)
  10682. }
  10683. var msglen int
  10684. for shift := uint(0); ; shift += 7 {
  10685. if shift >= 64 {
  10686. return ErrIntOverflowTypes
  10687. }
  10688. if iNdEx >= l {
  10689. return io.ErrUnexpectedEOF
  10690. }
  10691. b := dAtA[iNdEx]
  10692. iNdEx++
  10693. msglen |= int(b&0x7F) << shift
  10694. if b < 0x80 {
  10695. break
  10696. }
  10697. }
  10698. if msglen < 0 {
  10699. return ErrInvalidLengthTypes
  10700. }
  10701. postIndex := iNdEx + msglen
  10702. if postIndex < 0 {
  10703. return ErrInvalidLengthTypes
  10704. }
  10705. if postIndex > l {
  10706. return io.ErrUnexpectedEOF
  10707. }
  10708. if m.Snapshot == nil {
  10709. m.Snapshot = &Snapshot{}
  10710. }
  10711. if err := m.Snapshot.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10712. return err
  10713. }
  10714. iNdEx = postIndex
  10715. case 2:
  10716. if wireType != 2 {
  10717. return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType)
  10718. }
  10719. var byteLen int
  10720. for shift := uint(0); ; shift += 7 {
  10721. if shift >= 64 {
  10722. return ErrIntOverflowTypes
  10723. }
  10724. if iNdEx >= l {
  10725. return io.ErrUnexpectedEOF
  10726. }
  10727. b := dAtA[iNdEx]
  10728. iNdEx++
  10729. byteLen |= int(b&0x7F) << shift
  10730. if b < 0x80 {
  10731. break
  10732. }
  10733. }
  10734. if byteLen < 0 {
  10735. return ErrInvalidLengthTypes
  10736. }
  10737. postIndex := iNdEx + byteLen
  10738. if postIndex < 0 {
  10739. return ErrInvalidLengthTypes
  10740. }
  10741. if postIndex > l {
  10742. return io.ErrUnexpectedEOF
  10743. }
  10744. m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...)
  10745. if m.AppHash == nil {
  10746. m.AppHash = []byte{}
  10747. }
  10748. iNdEx = postIndex
  10749. default:
  10750. iNdEx = preIndex
  10751. skippy, err := skipTypes(dAtA[iNdEx:])
  10752. if err != nil {
  10753. return err
  10754. }
  10755. if (skippy < 0) || (iNdEx+skippy) < 0 {
  10756. return ErrInvalidLengthTypes
  10757. }
  10758. if (iNdEx + skippy) > l {
  10759. return io.ErrUnexpectedEOF
  10760. }
  10761. iNdEx += skippy
  10762. }
  10763. }
  10764. if iNdEx > l {
  10765. return io.ErrUnexpectedEOF
  10766. }
  10767. return nil
  10768. }
  10769. func (m *RequestLoadSnapshotChunk) Unmarshal(dAtA []byte) error {
  10770. l := len(dAtA)
  10771. iNdEx := 0
  10772. for iNdEx < l {
  10773. preIndex := iNdEx
  10774. var wire uint64
  10775. for shift := uint(0); ; shift += 7 {
  10776. if shift >= 64 {
  10777. return ErrIntOverflowTypes
  10778. }
  10779. if iNdEx >= l {
  10780. return io.ErrUnexpectedEOF
  10781. }
  10782. b := dAtA[iNdEx]
  10783. iNdEx++
  10784. wire |= uint64(b&0x7F) << shift
  10785. if b < 0x80 {
  10786. break
  10787. }
  10788. }
  10789. fieldNum := int32(wire >> 3)
  10790. wireType := int(wire & 0x7)
  10791. if wireType == 4 {
  10792. return fmt.Errorf("proto: RequestLoadSnapshotChunk: wiretype end group for non-group")
  10793. }
  10794. if fieldNum <= 0 {
  10795. return fmt.Errorf("proto: RequestLoadSnapshotChunk: illegal tag %d (wire type %d)", fieldNum, wire)
  10796. }
  10797. switch fieldNum {
  10798. case 1:
  10799. if wireType != 0 {
  10800. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  10801. }
  10802. m.Height = 0
  10803. for shift := uint(0); ; shift += 7 {
  10804. if shift >= 64 {
  10805. return ErrIntOverflowTypes
  10806. }
  10807. if iNdEx >= l {
  10808. return io.ErrUnexpectedEOF
  10809. }
  10810. b := dAtA[iNdEx]
  10811. iNdEx++
  10812. m.Height |= uint64(b&0x7F) << shift
  10813. if b < 0x80 {
  10814. break
  10815. }
  10816. }
  10817. case 2:
  10818. if wireType != 0 {
  10819. return fmt.Errorf("proto: wrong wireType = %d for field Format", wireType)
  10820. }
  10821. m.Format = 0
  10822. for shift := uint(0); ; shift += 7 {
  10823. if shift >= 64 {
  10824. return ErrIntOverflowTypes
  10825. }
  10826. if iNdEx >= l {
  10827. return io.ErrUnexpectedEOF
  10828. }
  10829. b := dAtA[iNdEx]
  10830. iNdEx++
  10831. m.Format |= uint32(b&0x7F) << shift
  10832. if b < 0x80 {
  10833. break
  10834. }
  10835. }
  10836. case 3:
  10837. if wireType != 0 {
  10838. return fmt.Errorf("proto: wrong wireType = %d for field Chunk", wireType)
  10839. }
  10840. m.Chunk = 0
  10841. for shift := uint(0); ; shift += 7 {
  10842. if shift >= 64 {
  10843. return ErrIntOverflowTypes
  10844. }
  10845. if iNdEx >= l {
  10846. return io.ErrUnexpectedEOF
  10847. }
  10848. b := dAtA[iNdEx]
  10849. iNdEx++
  10850. m.Chunk |= uint32(b&0x7F) << shift
  10851. if b < 0x80 {
  10852. break
  10853. }
  10854. }
  10855. default:
  10856. iNdEx = preIndex
  10857. skippy, err := skipTypes(dAtA[iNdEx:])
  10858. if err != nil {
  10859. return err
  10860. }
  10861. if (skippy < 0) || (iNdEx+skippy) < 0 {
  10862. return ErrInvalidLengthTypes
  10863. }
  10864. if (iNdEx + skippy) > l {
  10865. return io.ErrUnexpectedEOF
  10866. }
  10867. iNdEx += skippy
  10868. }
  10869. }
  10870. if iNdEx > l {
  10871. return io.ErrUnexpectedEOF
  10872. }
  10873. return nil
  10874. }
  10875. func (m *RequestApplySnapshotChunk) Unmarshal(dAtA []byte) error {
  10876. l := len(dAtA)
  10877. iNdEx := 0
  10878. for iNdEx < l {
  10879. preIndex := iNdEx
  10880. var wire uint64
  10881. for shift := uint(0); ; shift += 7 {
  10882. if shift >= 64 {
  10883. return ErrIntOverflowTypes
  10884. }
  10885. if iNdEx >= l {
  10886. return io.ErrUnexpectedEOF
  10887. }
  10888. b := dAtA[iNdEx]
  10889. iNdEx++
  10890. wire |= uint64(b&0x7F) << shift
  10891. if b < 0x80 {
  10892. break
  10893. }
  10894. }
  10895. fieldNum := int32(wire >> 3)
  10896. wireType := int(wire & 0x7)
  10897. if wireType == 4 {
  10898. return fmt.Errorf("proto: RequestApplySnapshotChunk: wiretype end group for non-group")
  10899. }
  10900. if fieldNum <= 0 {
  10901. return fmt.Errorf("proto: RequestApplySnapshotChunk: illegal tag %d (wire type %d)", fieldNum, wire)
  10902. }
  10903. switch fieldNum {
  10904. case 1:
  10905. if wireType != 0 {
  10906. return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
  10907. }
  10908. m.Index = 0
  10909. for shift := uint(0); ; shift += 7 {
  10910. if shift >= 64 {
  10911. return ErrIntOverflowTypes
  10912. }
  10913. if iNdEx >= l {
  10914. return io.ErrUnexpectedEOF
  10915. }
  10916. b := dAtA[iNdEx]
  10917. iNdEx++
  10918. m.Index |= uint32(b&0x7F) << shift
  10919. if b < 0x80 {
  10920. break
  10921. }
  10922. }
  10923. case 2:
  10924. if wireType != 2 {
  10925. return fmt.Errorf("proto: wrong wireType = %d for field Chunk", wireType)
  10926. }
  10927. var byteLen int
  10928. for shift := uint(0); ; shift += 7 {
  10929. if shift >= 64 {
  10930. return ErrIntOverflowTypes
  10931. }
  10932. if iNdEx >= l {
  10933. return io.ErrUnexpectedEOF
  10934. }
  10935. b := dAtA[iNdEx]
  10936. iNdEx++
  10937. byteLen |= int(b&0x7F) << shift
  10938. if b < 0x80 {
  10939. break
  10940. }
  10941. }
  10942. if byteLen < 0 {
  10943. return ErrInvalidLengthTypes
  10944. }
  10945. postIndex := iNdEx + byteLen
  10946. if postIndex < 0 {
  10947. return ErrInvalidLengthTypes
  10948. }
  10949. if postIndex > l {
  10950. return io.ErrUnexpectedEOF
  10951. }
  10952. m.Chunk = append(m.Chunk[:0], dAtA[iNdEx:postIndex]...)
  10953. if m.Chunk == nil {
  10954. m.Chunk = []byte{}
  10955. }
  10956. iNdEx = postIndex
  10957. case 3:
  10958. if wireType != 2 {
  10959. return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType)
  10960. }
  10961. var stringLen uint64
  10962. for shift := uint(0); ; shift += 7 {
  10963. if shift >= 64 {
  10964. return ErrIntOverflowTypes
  10965. }
  10966. if iNdEx >= l {
  10967. return io.ErrUnexpectedEOF
  10968. }
  10969. b := dAtA[iNdEx]
  10970. iNdEx++
  10971. stringLen |= uint64(b&0x7F) << shift
  10972. if b < 0x80 {
  10973. break
  10974. }
  10975. }
  10976. intStringLen := int(stringLen)
  10977. if intStringLen < 0 {
  10978. return ErrInvalidLengthTypes
  10979. }
  10980. postIndex := iNdEx + intStringLen
  10981. if postIndex < 0 {
  10982. return ErrInvalidLengthTypes
  10983. }
  10984. if postIndex > l {
  10985. return io.ErrUnexpectedEOF
  10986. }
  10987. m.Sender = string(dAtA[iNdEx:postIndex])
  10988. iNdEx = postIndex
  10989. default:
  10990. iNdEx = preIndex
  10991. skippy, err := skipTypes(dAtA[iNdEx:])
  10992. if err != nil {
  10993. return err
  10994. }
  10995. if (skippy < 0) || (iNdEx+skippy) < 0 {
  10996. return ErrInvalidLengthTypes
  10997. }
  10998. if (iNdEx + skippy) > l {
  10999. return io.ErrUnexpectedEOF
  11000. }
  11001. iNdEx += skippy
  11002. }
  11003. }
  11004. if iNdEx > l {
  11005. return io.ErrUnexpectedEOF
  11006. }
  11007. return nil
  11008. }
  11009. func (m *RequestExtendVote) Unmarshal(dAtA []byte) error {
  11010. l := len(dAtA)
  11011. iNdEx := 0
  11012. for iNdEx < l {
  11013. preIndex := iNdEx
  11014. var wire uint64
  11015. for shift := uint(0); ; shift += 7 {
  11016. if shift >= 64 {
  11017. return ErrIntOverflowTypes
  11018. }
  11019. if iNdEx >= l {
  11020. return io.ErrUnexpectedEOF
  11021. }
  11022. b := dAtA[iNdEx]
  11023. iNdEx++
  11024. wire |= uint64(b&0x7F) << shift
  11025. if b < 0x80 {
  11026. break
  11027. }
  11028. }
  11029. fieldNum := int32(wire >> 3)
  11030. wireType := int(wire & 0x7)
  11031. if wireType == 4 {
  11032. return fmt.Errorf("proto: RequestExtendVote: wiretype end group for non-group")
  11033. }
  11034. if fieldNum <= 0 {
  11035. return fmt.Errorf("proto: RequestExtendVote: illegal tag %d (wire type %d)", fieldNum, wire)
  11036. }
  11037. switch fieldNum {
  11038. case 1:
  11039. if wireType != 2 {
  11040. return fmt.Errorf("proto: wrong wireType = %d for field Vote", wireType)
  11041. }
  11042. var msglen int
  11043. for shift := uint(0); ; shift += 7 {
  11044. if shift >= 64 {
  11045. return ErrIntOverflowTypes
  11046. }
  11047. if iNdEx >= l {
  11048. return io.ErrUnexpectedEOF
  11049. }
  11050. b := dAtA[iNdEx]
  11051. iNdEx++
  11052. msglen |= int(b&0x7F) << shift
  11053. if b < 0x80 {
  11054. break
  11055. }
  11056. }
  11057. if msglen < 0 {
  11058. return ErrInvalidLengthTypes
  11059. }
  11060. postIndex := iNdEx + msglen
  11061. if postIndex < 0 {
  11062. return ErrInvalidLengthTypes
  11063. }
  11064. if postIndex > l {
  11065. return io.ErrUnexpectedEOF
  11066. }
  11067. if m.Vote == nil {
  11068. m.Vote = &types1.Vote{}
  11069. }
  11070. if err := m.Vote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11071. return err
  11072. }
  11073. iNdEx = postIndex
  11074. default:
  11075. iNdEx = preIndex
  11076. skippy, err := skipTypes(dAtA[iNdEx:])
  11077. if err != nil {
  11078. return err
  11079. }
  11080. if (skippy < 0) || (iNdEx+skippy) < 0 {
  11081. return ErrInvalidLengthTypes
  11082. }
  11083. if (iNdEx + skippy) > l {
  11084. return io.ErrUnexpectedEOF
  11085. }
  11086. iNdEx += skippy
  11087. }
  11088. }
  11089. if iNdEx > l {
  11090. return io.ErrUnexpectedEOF
  11091. }
  11092. return nil
  11093. }
  11094. func (m *RequestVerifyVoteExtension) Unmarshal(dAtA []byte) error {
  11095. l := len(dAtA)
  11096. iNdEx := 0
  11097. for iNdEx < l {
  11098. preIndex := iNdEx
  11099. var wire uint64
  11100. for shift := uint(0); ; shift += 7 {
  11101. if shift >= 64 {
  11102. return ErrIntOverflowTypes
  11103. }
  11104. if iNdEx >= l {
  11105. return io.ErrUnexpectedEOF
  11106. }
  11107. b := dAtA[iNdEx]
  11108. iNdEx++
  11109. wire |= uint64(b&0x7F) << shift
  11110. if b < 0x80 {
  11111. break
  11112. }
  11113. }
  11114. fieldNum := int32(wire >> 3)
  11115. wireType := int(wire & 0x7)
  11116. if wireType == 4 {
  11117. return fmt.Errorf("proto: RequestVerifyVoteExtension: wiretype end group for non-group")
  11118. }
  11119. if fieldNum <= 0 {
  11120. return fmt.Errorf("proto: RequestVerifyVoteExtension: illegal tag %d (wire type %d)", fieldNum, wire)
  11121. }
  11122. switch fieldNum {
  11123. case 1:
  11124. if wireType != 2 {
  11125. return fmt.Errorf("proto: wrong wireType = %d for field Vote", wireType)
  11126. }
  11127. var msglen int
  11128. for shift := uint(0); ; shift += 7 {
  11129. if shift >= 64 {
  11130. return ErrIntOverflowTypes
  11131. }
  11132. if iNdEx >= l {
  11133. return io.ErrUnexpectedEOF
  11134. }
  11135. b := dAtA[iNdEx]
  11136. iNdEx++
  11137. msglen |= int(b&0x7F) << shift
  11138. if b < 0x80 {
  11139. break
  11140. }
  11141. }
  11142. if msglen < 0 {
  11143. return ErrInvalidLengthTypes
  11144. }
  11145. postIndex := iNdEx + msglen
  11146. if postIndex < 0 {
  11147. return ErrInvalidLengthTypes
  11148. }
  11149. if postIndex > l {
  11150. return io.ErrUnexpectedEOF
  11151. }
  11152. if m.Vote == nil {
  11153. m.Vote = &types1.Vote{}
  11154. }
  11155. if err := m.Vote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11156. return err
  11157. }
  11158. iNdEx = postIndex
  11159. default:
  11160. iNdEx = preIndex
  11161. skippy, err := skipTypes(dAtA[iNdEx:])
  11162. if err != nil {
  11163. return err
  11164. }
  11165. if (skippy < 0) || (iNdEx+skippy) < 0 {
  11166. return ErrInvalidLengthTypes
  11167. }
  11168. if (iNdEx + skippy) > l {
  11169. return io.ErrUnexpectedEOF
  11170. }
  11171. iNdEx += skippy
  11172. }
  11173. }
  11174. if iNdEx > l {
  11175. return io.ErrUnexpectedEOF
  11176. }
  11177. return nil
  11178. }
  11179. func (m *RequestPrepareProposal) Unmarshal(dAtA []byte) error {
  11180. l := len(dAtA)
  11181. iNdEx := 0
  11182. for iNdEx < l {
  11183. preIndex := iNdEx
  11184. var wire uint64
  11185. for shift := uint(0); ; shift += 7 {
  11186. if shift >= 64 {
  11187. return ErrIntOverflowTypes
  11188. }
  11189. if iNdEx >= l {
  11190. return io.ErrUnexpectedEOF
  11191. }
  11192. b := dAtA[iNdEx]
  11193. iNdEx++
  11194. wire |= uint64(b&0x7F) << shift
  11195. if b < 0x80 {
  11196. break
  11197. }
  11198. }
  11199. fieldNum := int32(wire >> 3)
  11200. wireType := int(wire & 0x7)
  11201. if wireType == 4 {
  11202. return fmt.Errorf("proto: RequestPrepareProposal: wiretype end group for non-group")
  11203. }
  11204. if fieldNum <= 0 {
  11205. return fmt.Errorf("proto: RequestPrepareProposal: illegal tag %d (wire type %d)", fieldNum, wire)
  11206. }
  11207. switch fieldNum {
  11208. case 1:
  11209. if wireType != 2 {
  11210. return fmt.Errorf("proto: wrong wireType = %d for field BlockData", wireType)
  11211. }
  11212. var byteLen int
  11213. for shift := uint(0); ; shift += 7 {
  11214. if shift >= 64 {
  11215. return ErrIntOverflowTypes
  11216. }
  11217. if iNdEx >= l {
  11218. return io.ErrUnexpectedEOF
  11219. }
  11220. b := dAtA[iNdEx]
  11221. iNdEx++
  11222. byteLen |= int(b&0x7F) << shift
  11223. if b < 0x80 {
  11224. break
  11225. }
  11226. }
  11227. if byteLen < 0 {
  11228. return ErrInvalidLengthTypes
  11229. }
  11230. postIndex := iNdEx + byteLen
  11231. if postIndex < 0 {
  11232. return ErrInvalidLengthTypes
  11233. }
  11234. if postIndex > l {
  11235. return io.ErrUnexpectedEOF
  11236. }
  11237. m.BlockData = append(m.BlockData, make([]byte, postIndex-iNdEx))
  11238. copy(m.BlockData[len(m.BlockData)-1], dAtA[iNdEx:postIndex])
  11239. iNdEx = postIndex
  11240. case 2:
  11241. if wireType != 0 {
  11242. return fmt.Errorf("proto: wrong wireType = %d for field BlockDataSize", wireType)
  11243. }
  11244. m.BlockDataSize = 0
  11245. for shift := uint(0); ; shift += 7 {
  11246. if shift >= 64 {
  11247. return ErrIntOverflowTypes
  11248. }
  11249. if iNdEx >= l {
  11250. return io.ErrUnexpectedEOF
  11251. }
  11252. b := dAtA[iNdEx]
  11253. iNdEx++
  11254. m.BlockDataSize |= int64(b&0x7F) << shift
  11255. if b < 0x80 {
  11256. break
  11257. }
  11258. }
  11259. case 3:
  11260. if wireType != 2 {
  11261. return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType)
  11262. }
  11263. var msglen int
  11264. for shift := uint(0); ; shift += 7 {
  11265. if shift >= 64 {
  11266. return ErrIntOverflowTypes
  11267. }
  11268. if iNdEx >= l {
  11269. return io.ErrUnexpectedEOF
  11270. }
  11271. b := dAtA[iNdEx]
  11272. iNdEx++
  11273. msglen |= int(b&0x7F) << shift
  11274. if b < 0x80 {
  11275. break
  11276. }
  11277. }
  11278. if msglen < 0 {
  11279. return ErrInvalidLengthTypes
  11280. }
  11281. postIndex := iNdEx + msglen
  11282. if postIndex < 0 {
  11283. return ErrInvalidLengthTypes
  11284. }
  11285. if postIndex > l {
  11286. return io.ErrUnexpectedEOF
  11287. }
  11288. m.Votes = append(m.Votes, &types1.Vote{})
  11289. if err := m.Votes[len(m.Votes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11290. return err
  11291. }
  11292. iNdEx = postIndex
  11293. default:
  11294. iNdEx = preIndex
  11295. skippy, err := skipTypes(dAtA[iNdEx:])
  11296. if err != nil {
  11297. return err
  11298. }
  11299. if (skippy < 0) || (iNdEx+skippy) < 0 {
  11300. return ErrInvalidLengthTypes
  11301. }
  11302. if (iNdEx + skippy) > l {
  11303. return io.ErrUnexpectedEOF
  11304. }
  11305. iNdEx += skippy
  11306. }
  11307. }
  11308. if iNdEx > l {
  11309. return io.ErrUnexpectedEOF
  11310. }
  11311. return nil
  11312. }
  11313. func (m *RequestProcessProposal) Unmarshal(dAtA []byte) error {
  11314. l := len(dAtA)
  11315. iNdEx := 0
  11316. for iNdEx < l {
  11317. preIndex := iNdEx
  11318. var wire uint64
  11319. for shift := uint(0); ; shift += 7 {
  11320. if shift >= 64 {
  11321. return ErrIntOverflowTypes
  11322. }
  11323. if iNdEx >= l {
  11324. return io.ErrUnexpectedEOF
  11325. }
  11326. b := dAtA[iNdEx]
  11327. iNdEx++
  11328. wire |= uint64(b&0x7F) << shift
  11329. if b < 0x80 {
  11330. break
  11331. }
  11332. }
  11333. fieldNum := int32(wire >> 3)
  11334. wireType := int(wire & 0x7)
  11335. if wireType == 4 {
  11336. return fmt.Errorf("proto: RequestProcessProposal: wiretype end group for non-group")
  11337. }
  11338. if fieldNum <= 0 {
  11339. return fmt.Errorf("proto: RequestProcessProposal: illegal tag %d (wire type %d)", fieldNum, wire)
  11340. }
  11341. switch fieldNum {
  11342. case 1:
  11343. if wireType != 2 {
  11344. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  11345. }
  11346. var byteLen int
  11347. for shift := uint(0); ; shift += 7 {
  11348. if shift >= 64 {
  11349. return ErrIntOverflowTypes
  11350. }
  11351. if iNdEx >= l {
  11352. return io.ErrUnexpectedEOF
  11353. }
  11354. b := dAtA[iNdEx]
  11355. iNdEx++
  11356. byteLen |= int(b&0x7F) << shift
  11357. if b < 0x80 {
  11358. break
  11359. }
  11360. }
  11361. if byteLen < 0 {
  11362. return ErrInvalidLengthTypes
  11363. }
  11364. postIndex := iNdEx + byteLen
  11365. if postIndex < 0 {
  11366. return ErrInvalidLengthTypes
  11367. }
  11368. if postIndex > l {
  11369. return io.ErrUnexpectedEOF
  11370. }
  11371. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  11372. if m.Hash == nil {
  11373. m.Hash = []byte{}
  11374. }
  11375. iNdEx = postIndex
  11376. case 2:
  11377. if wireType != 2 {
  11378. return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType)
  11379. }
  11380. var msglen int
  11381. for shift := uint(0); ; shift += 7 {
  11382. if shift >= 64 {
  11383. return ErrIntOverflowTypes
  11384. }
  11385. if iNdEx >= l {
  11386. return io.ErrUnexpectedEOF
  11387. }
  11388. b := dAtA[iNdEx]
  11389. iNdEx++
  11390. msglen |= int(b&0x7F) << shift
  11391. if b < 0x80 {
  11392. break
  11393. }
  11394. }
  11395. if msglen < 0 {
  11396. return ErrInvalidLengthTypes
  11397. }
  11398. postIndex := iNdEx + msglen
  11399. if postIndex < 0 {
  11400. return ErrInvalidLengthTypes
  11401. }
  11402. if postIndex > l {
  11403. return io.ErrUnexpectedEOF
  11404. }
  11405. if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11406. return err
  11407. }
  11408. iNdEx = postIndex
  11409. case 3:
  11410. if wireType != 2 {
  11411. return fmt.Errorf("proto: wrong wireType = %d for field Txs", wireType)
  11412. }
  11413. var byteLen int
  11414. for shift := uint(0); ; shift += 7 {
  11415. if shift >= 64 {
  11416. return ErrIntOverflowTypes
  11417. }
  11418. if iNdEx >= l {
  11419. return io.ErrUnexpectedEOF
  11420. }
  11421. b := dAtA[iNdEx]
  11422. iNdEx++
  11423. byteLen |= int(b&0x7F) << shift
  11424. if b < 0x80 {
  11425. break
  11426. }
  11427. }
  11428. if byteLen < 0 {
  11429. return ErrInvalidLengthTypes
  11430. }
  11431. postIndex := iNdEx + byteLen
  11432. if postIndex < 0 {
  11433. return ErrInvalidLengthTypes
  11434. }
  11435. if postIndex > l {
  11436. return io.ErrUnexpectedEOF
  11437. }
  11438. m.Txs = append(m.Txs, make([]byte, postIndex-iNdEx))
  11439. copy(m.Txs[len(m.Txs)-1], dAtA[iNdEx:postIndex])
  11440. iNdEx = postIndex
  11441. case 4:
  11442. if wireType != 2 {
  11443. return fmt.Errorf("proto: wrong wireType = %d for field ProposedLastCommit", wireType)
  11444. }
  11445. var msglen int
  11446. for shift := uint(0); ; shift += 7 {
  11447. if shift >= 64 {
  11448. return ErrIntOverflowTypes
  11449. }
  11450. if iNdEx >= l {
  11451. return io.ErrUnexpectedEOF
  11452. }
  11453. b := dAtA[iNdEx]
  11454. iNdEx++
  11455. msglen |= int(b&0x7F) << shift
  11456. if b < 0x80 {
  11457. break
  11458. }
  11459. }
  11460. if msglen < 0 {
  11461. return ErrInvalidLengthTypes
  11462. }
  11463. postIndex := iNdEx + msglen
  11464. if postIndex < 0 {
  11465. return ErrInvalidLengthTypes
  11466. }
  11467. if postIndex > l {
  11468. return io.ErrUnexpectedEOF
  11469. }
  11470. if err := m.ProposedLastCommit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11471. return err
  11472. }
  11473. iNdEx = postIndex
  11474. case 5:
  11475. if wireType != 2 {
  11476. return fmt.Errorf("proto: wrong wireType = %d for field ByzantineValidators", wireType)
  11477. }
  11478. var msglen int
  11479. for shift := uint(0); ; shift += 7 {
  11480. if shift >= 64 {
  11481. return ErrIntOverflowTypes
  11482. }
  11483. if iNdEx >= l {
  11484. return io.ErrUnexpectedEOF
  11485. }
  11486. b := dAtA[iNdEx]
  11487. iNdEx++
  11488. msglen |= int(b&0x7F) << shift
  11489. if b < 0x80 {
  11490. break
  11491. }
  11492. }
  11493. if msglen < 0 {
  11494. return ErrInvalidLengthTypes
  11495. }
  11496. postIndex := iNdEx + msglen
  11497. if postIndex < 0 {
  11498. return ErrInvalidLengthTypes
  11499. }
  11500. if postIndex > l {
  11501. return io.ErrUnexpectedEOF
  11502. }
  11503. m.ByzantineValidators = append(m.ByzantineValidators, Evidence{})
  11504. if err := m.ByzantineValidators[len(m.ByzantineValidators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11505. return err
  11506. }
  11507. iNdEx = postIndex
  11508. default:
  11509. iNdEx = preIndex
  11510. skippy, err := skipTypes(dAtA[iNdEx:])
  11511. if err != nil {
  11512. return err
  11513. }
  11514. if (skippy < 0) || (iNdEx+skippy) < 0 {
  11515. return ErrInvalidLengthTypes
  11516. }
  11517. if (iNdEx + skippy) > l {
  11518. return io.ErrUnexpectedEOF
  11519. }
  11520. iNdEx += skippy
  11521. }
  11522. }
  11523. if iNdEx > l {
  11524. return io.ErrUnexpectedEOF
  11525. }
  11526. return nil
  11527. }
  11528. func (m *RequestFinalizeBlock) Unmarshal(dAtA []byte) error {
  11529. l := len(dAtA)
  11530. iNdEx := 0
  11531. for iNdEx < l {
  11532. preIndex := iNdEx
  11533. var wire uint64
  11534. for shift := uint(0); ; shift += 7 {
  11535. if shift >= 64 {
  11536. return ErrIntOverflowTypes
  11537. }
  11538. if iNdEx >= l {
  11539. return io.ErrUnexpectedEOF
  11540. }
  11541. b := dAtA[iNdEx]
  11542. iNdEx++
  11543. wire |= uint64(b&0x7F) << shift
  11544. if b < 0x80 {
  11545. break
  11546. }
  11547. }
  11548. fieldNum := int32(wire >> 3)
  11549. wireType := int(wire & 0x7)
  11550. if wireType == 4 {
  11551. return fmt.Errorf("proto: RequestFinalizeBlock: wiretype end group for non-group")
  11552. }
  11553. if fieldNum <= 0 {
  11554. return fmt.Errorf("proto: RequestFinalizeBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  11555. }
  11556. switch fieldNum {
  11557. case 1:
  11558. if wireType != 2 {
  11559. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  11560. }
  11561. var byteLen int
  11562. for shift := uint(0); ; shift += 7 {
  11563. if shift >= 64 {
  11564. return ErrIntOverflowTypes
  11565. }
  11566. if iNdEx >= l {
  11567. return io.ErrUnexpectedEOF
  11568. }
  11569. b := dAtA[iNdEx]
  11570. iNdEx++
  11571. byteLen |= int(b&0x7F) << shift
  11572. if b < 0x80 {
  11573. break
  11574. }
  11575. }
  11576. if byteLen < 0 {
  11577. return ErrInvalidLengthTypes
  11578. }
  11579. postIndex := iNdEx + byteLen
  11580. if postIndex < 0 {
  11581. return ErrInvalidLengthTypes
  11582. }
  11583. if postIndex > l {
  11584. return io.ErrUnexpectedEOF
  11585. }
  11586. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  11587. if m.Hash == nil {
  11588. m.Hash = []byte{}
  11589. }
  11590. iNdEx = postIndex
  11591. case 2:
  11592. if wireType != 2 {
  11593. return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType)
  11594. }
  11595. var msglen int
  11596. for shift := uint(0); ; shift += 7 {
  11597. if shift >= 64 {
  11598. return ErrIntOverflowTypes
  11599. }
  11600. if iNdEx >= l {
  11601. return io.ErrUnexpectedEOF
  11602. }
  11603. b := dAtA[iNdEx]
  11604. iNdEx++
  11605. msglen |= int(b&0x7F) << shift
  11606. if b < 0x80 {
  11607. break
  11608. }
  11609. }
  11610. if msglen < 0 {
  11611. return ErrInvalidLengthTypes
  11612. }
  11613. postIndex := iNdEx + msglen
  11614. if postIndex < 0 {
  11615. return ErrInvalidLengthTypes
  11616. }
  11617. if postIndex > l {
  11618. return io.ErrUnexpectedEOF
  11619. }
  11620. if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11621. return err
  11622. }
  11623. iNdEx = postIndex
  11624. case 3:
  11625. if wireType != 2 {
  11626. return fmt.Errorf("proto: wrong wireType = %d for field Txs", wireType)
  11627. }
  11628. var byteLen int
  11629. for shift := uint(0); ; shift += 7 {
  11630. if shift >= 64 {
  11631. return ErrIntOverflowTypes
  11632. }
  11633. if iNdEx >= l {
  11634. return io.ErrUnexpectedEOF
  11635. }
  11636. b := dAtA[iNdEx]
  11637. iNdEx++
  11638. byteLen |= int(b&0x7F) << shift
  11639. if b < 0x80 {
  11640. break
  11641. }
  11642. }
  11643. if byteLen < 0 {
  11644. return ErrInvalidLengthTypes
  11645. }
  11646. postIndex := iNdEx + byteLen
  11647. if postIndex < 0 {
  11648. return ErrInvalidLengthTypes
  11649. }
  11650. if postIndex > l {
  11651. return io.ErrUnexpectedEOF
  11652. }
  11653. m.Txs = append(m.Txs, make([]byte, postIndex-iNdEx))
  11654. copy(m.Txs[len(m.Txs)-1], dAtA[iNdEx:postIndex])
  11655. iNdEx = postIndex
  11656. case 4:
  11657. if wireType != 2 {
  11658. return fmt.Errorf("proto: wrong wireType = %d for field DecidedLastCommit", wireType)
  11659. }
  11660. var msglen int
  11661. for shift := uint(0); ; shift += 7 {
  11662. if shift >= 64 {
  11663. return ErrIntOverflowTypes
  11664. }
  11665. if iNdEx >= l {
  11666. return io.ErrUnexpectedEOF
  11667. }
  11668. b := dAtA[iNdEx]
  11669. iNdEx++
  11670. msglen |= int(b&0x7F) << shift
  11671. if b < 0x80 {
  11672. break
  11673. }
  11674. }
  11675. if msglen < 0 {
  11676. return ErrInvalidLengthTypes
  11677. }
  11678. postIndex := iNdEx + msglen
  11679. if postIndex < 0 {
  11680. return ErrInvalidLengthTypes
  11681. }
  11682. if postIndex > l {
  11683. return io.ErrUnexpectedEOF
  11684. }
  11685. if err := m.DecidedLastCommit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11686. return err
  11687. }
  11688. iNdEx = postIndex
  11689. case 5:
  11690. if wireType != 2 {
  11691. return fmt.Errorf("proto: wrong wireType = %d for field ByzantineValidators", wireType)
  11692. }
  11693. var msglen int
  11694. for shift := uint(0); ; shift += 7 {
  11695. if shift >= 64 {
  11696. return ErrIntOverflowTypes
  11697. }
  11698. if iNdEx >= l {
  11699. return io.ErrUnexpectedEOF
  11700. }
  11701. b := dAtA[iNdEx]
  11702. iNdEx++
  11703. msglen |= int(b&0x7F) << shift
  11704. if b < 0x80 {
  11705. break
  11706. }
  11707. }
  11708. if msglen < 0 {
  11709. return ErrInvalidLengthTypes
  11710. }
  11711. postIndex := iNdEx + msglen
  11712. if postIndex < 0 {
  11713. return ErrInvalidLengthTypes
  11714. }
  11715. if postIndex > l {
  11716. return io.ErrUnexpectedEOF
  11717. }
  11718. m.ByzantineValidators = append(m.ByzantineValidators, Evidence{})
  11719. if err := m.ByzantineValidators[len(m.ByzantineValidators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11720. return err
  11721. }
  11722. iNdEx = postIndex
  11723. default:
  11724. iNdEx = preIndex
  11725. skippy, err := skipTypes(dAtA[iNdEx:])
  11726. if err != nil {
  11727. return err
  11728. }
  11729. if (skippy < 0) || (iNdEx+skippy) < 0 {
  11730. return ErrInvalidLengthTypes
  11731. }
  11732. if (iNdEx + skippy) > l {
  11733. return io.ErrUnexpectedEOF
  11734. }
  11735. iNdEx += skippy
  11736. }
  11737. }
  11738. if iNdEx > l {
  11739. return io.ErrUnexpectedEOF
  11740. }
  11741. return nil
  11742. }
  11743. func (m *Response) Unmarshal(dAtA []byte) error {
  11744. l := len(dAtA)
  11745. iNdEx := 0
  11746. for iNdEx < l {
  11747. preIndex := iNdEx
  11748. var wire uint64
  11749. for shift := uint(0); ; shift += 7 {
  11750. if shift >= 64 {
  11751. return ErrIntOverflowTypes
  11752. }
  11753. if iNdEx >= l {
  11754. return io.ErrUnexpectedEOF
  11755. }
  11756. b := dAtA[iNdEx]
  11757. iNdEx++
  11758. wire |= uint64(b&0x7F) << shift
  11759. if b < 0x80 {
  11760. break
  11761. }
  11762. }
  11763. fieldNum := int32(wire >> 3)
  11764. wireType := int(wire & 0x7)
  11765. if wireType == 4 {
  11766. return fmt.Errorf("proto: Response: wiretype end group for non-group")
  11767. }
  11768. if fieldNum <= 0 {
  11769. return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
  11770. }
  11771. switch fieldNum {
  11772. case 1:
  11773. if wireType != 2 {
  11774. return fmt.Errorf("proto: wrong wireType = %d for field Exception", wireType)
  11775. }
  11776. var msglen int
  11777. for shift := uint(0); ; shift += 7 {
  11778. if shift >= 64 {
  11779. return ErrIntOverflowTypes
  11780. }
  11781. if iNdEx >= l {
  11782. return io.ErrUnexpectedEOF
  11783. }
  11784. b := dAtA[iNdEx]
  11785. iNdEx++
  11786. msglen |= int(b&0x7F) << shift
  11787. if b < 0x80 {
  11788. break
  11789. }
  11790. }
  11791. if msglen < 0 {
  11792. return ErrInvalidLengthTypes
  11793. }
  11794. postIndex := iNdEx + msglen
  11795. if postIndex < 0 {
  11796. return ErrInvalidLengthTypes
  11797. }
  11798. if postIndex > l {
  11799. return io.ErrUnexpectedEOF
  11800. }
  11801. v := &ResponseException{}
  11802. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11803. return err
  11804. }
  11805. m.Value = &Response_Exception{v}
  11806. iNdEx = postIndex
  11807. case 2:
  11808. if wireType != 2 {
  11809. return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType)
  11810. }
  11811. var msglen int
  11812. for shift := uint(0); ; shift += 7 {
  11813. if shift >= 64 {
  11814. return ErrIntOverflowTypes
  11815. }
  11816. if iNdEx >= l {
  11817. return io.ErrUnexpectedEOF
  11818. }
  11819. b := dAtA[iNdEx]
  11820. iNdEx++
  11821. msglen |= int(b&0x7F) << shift
  11822. if b < 0x80 {
  11823. break
  11824. }
  11825. }
  11826. if msglen < 0 {
  11827. return ErrInvalidLengthTypes
  11828. }
  11829. postIndex := iNdEx + msglen
  11830. if postIndex < 0 {
  11831. return ErrInvalidLengthTypes
  11832. }
  11833. if postIndex > l {
  11834. return io.ErrUnexpectedEOF
  11835. }
  11836. v := &ResponseEcho{}
  11837. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11838. return err
  11839. }
  11840. m.Value = &Response_Echo{v}
  11841. iNdEx = postIndex
  11842. case 3:
  11843. if wireType != 2 {
  11844. return fmt.Errorf("proto: wrong wireType = %d for field Flush", wireType)
  11845. }
  11846. var msglen int
  11847. for shift := uint(0); ; shift += 7 {
  11848. if shift >= 64 {
  11849. return ErrIntOverflowTypes
  11850. }
  11851. if iNdEx >= l {
  11852. return io.ErrUnexpectedEOF
  11853. }
  11854. b := dAtA[iNdEx]
  11855. iNdEx++
  11856. msglen |= int(b&0x7F) << shift
  11857. if b < 0x80 {
  11858. break
  11859. }
  11860. }
  11861. if msglen < 0 {
  11862. return ErrInvalidLengthTypes
  11863. }
  11864. postIndex := iNdEx + msglen
  11865. if postIndex < 0 {
  11866. return ErrInvalidLengthTypes
  11867. }
  11868. if postIndex > l {
  11869. return io.ErrUnexpectedEOF
  11870. }
  11871. v := &ResponseFlush{}
  11872. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11873. return err
  11874. }
  11875. m.Value = &Response_Flush{v}
  11876. iNdEx = postIndex
  11877. case 4:
  11878. if wireType != 2 {
  11879. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  11880. }
  11881. var msglen int
  11882. for shift := uint(0); ; shift += 7 {
  11883. if shift >= 64 {
  11884. return ErrIntOverflowTypes
  11885. }
  11886. if iNdEx >= l {
  11887. return io.ErrUnexpectedEOF
  11888. }
  11889. b := dAtA[iNdEx]
  11890. iNdEx++
  11891. msglen |= int(b&0x7F) << shift
  11892. if b < 0x80 {
  11893. break
  11894. }
  11895. }
  11896. if msglen < 0 {
  11897. return ErrInvalidLengthTypes
  11898. }
  11899. postIndex := iNdEx + msglen
  11900. if postIndex < 0 {
  11901. return ErrInvalidLengthTypes
  11902. }
  11903. if postIndex > l {
  11904. return io.ErrUnexpectedEOF
  11905. }
  11906. v := &ResponseInfo{}
  11907. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11908. return err
  11909. }
  11910. m.Value = &Response_Info{v}
  11911. iNdEx = postIndex
  11912. case 5:
  11913. if wireType != 2 {
  11914. return fmt.Errorf("proto: wrong wireType = %d for field InitChain", wireType)
  11915. }
  11916. var msglen int
  11917. for shift := uint(0); ; shift += 7 {
  11918. if shift >= 64 {
  11919. return ErrIntOverflowTypes
  11920. }
  11921. if iNdEx >= l {
  11922. return io.ErrUnexpectedEOF
  11923. }
  11924. b := dAtA[iNdEx]
  11925. iNdEx++
  11926. msglen |= int(b&0x7F) << shift
  11927. if b < 0x80 {
  11928. break
  11929. }
  11930. }
  11931. if msglen < 0 {
  11932. return ErrInvalidLengthTypes
  11933. }
  11934. postIndex := iNdEx + msglen
  11935. if postIndex < 0 {
  11936. return ErrInvalidLengthTypes
  11937. }
  11938. if postIndex > l {
  11939. return io.ErrUnexpectedEOF
  11940. }
  11941. v := &ResponseInitChain{}
  11942. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11943. return err
  11944. }
  11945. m.Value = &Response_InitChain{v}
  11946. iNdEx = postIndex
  11947. case 6:
  11948. if wireType != 2 {
  11949. return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType)
  11950. }
  11951. var msglen int
  11952. for shift := uint(0); ; shift += 7 {
  11953. if shift >= 64 {
  11954. return ErrIntOverflowTypes
  11955. }
  11956. if iNdEx >= l {
  11957. return io.ErrUnexpectedEOF
  11958. }
  11959. b := dAtA[iNdEx]
  11960. iNdEx++
  11961. msglen |= int(b&0x7F) << shift
  11962. if b < 0x80 {
  11963. break
  11964. }
  11965. }
  11966. if msglen < 0 {
  11967. return ErrInvalidLengthTypes
  11968. }
  11969. postIndex := iNdEx + msglen
  11970. if postIndex < 0 {
  11971. return ErrInvalidLengthTypes
  11972. }
  11973. if postIndex > l {
  11974. return io.ErrUnexpectedEOF
  11975. }
  11976. v := &ResponseQuery{}
  11977. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11978. return err
  11979. }
  11980. m.Value = &Response_Query{v}
  11981. iNdEx = postIndex
  11982. case 7:
  11983. if wireType != 2 {
  11984. return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType)
  11985. }
  11986. var msglen int
  11987. for shift := uint(0); ; shift += 7 {
  11988. if shift >= 64 {
  11989. return ErrIntOverflowTypes
  11990. }
  11991. if iNdEx >= l {
  11992. return io.ErrUnexpectedEOF
  11993. }
  11994. b := dAtA[iNdEx]
  11995. iNdEx++
  11996. msglen |= int(b&0x7F) << shift
  11997. if b < 0x80 {
  11998. break
  11999. }
  12000. }
  12001. if msglen < 0 {
  12002. return ErrInvalidLengthTypes
  12003. }
  12004. postIndex := iNdEx + msglen
  12005. if postIndex < 0 {
  12006. return ErrInvalidLengthTypes
  12007. }
  12008. if postIndex > l {
  12009. return io.ErrUnexpectedEOF
  12010. }
  12011. v := &ResponseBeginBlock{}
  12012. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12013. return err
  12014. }
  12015. m.Value = &Response_BeginBlock{v}
  12016. iNdEx = postIndex
  12017. case 8:
  12018. if wireType != 2 {
  12019. return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType)
  12020. }
  12021. var msglen int
  12022. for shift := uint(0); ; shift += 7 {
  12023. if shift >= 64 {
  12024. return ErrIntOverflowTypes
  12025. }
  12026. if iNdEx >= l {
  12027. return io.ErrUnexpectedEOF
  12028. }
  12029. b := dAtA[iNdEx]
  12030. iNdEx++
  12031. msglen |= int(b&0x7F) << shift
  12032. if b < 0x80 {
  12033. break
  12034. }
  12035. }
  12036. if msglen < 0 {
  12037. return ErrInvalidLengthTypes
  12038. }
  12039. postIndex := iNdEx + msglen
  12040. if postIndex < 0 {
  12041. return ErrInvalidLengthTypes
  12042. }
  12043. if postIndex > l {
  12044. return io.ErrUnexpectedEOF
  12045. }
  12046. v := &ResponseCheckTx{}
  12047. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12048. return err
  12049. }
  12050. m.Value = &Response_CheckTx{v}
  12051. iNdEx = postIndex
  12052. case 9:
  12053. if wireType != 2 {
  12054. return fmt.Errorf("proto: wrong wireType = %d for field DeliverTx", wireType)
  12055. }
  12056. var msglen int
  12057. for shift := uint(0); ; shift += 7 {
  12058. if shift >= 64 {
  12059. return ErrIntOverflowTypes
  12060. }
  12061. if iNdEx >= l {
  12062. return io.ErrUnexpectedEOF
  12063. }
  12064. b := dAtA[iNdEx]
  12065. iNdEx++
  12066. msglen |= int(b&0x7F) << shift
  12067. if b < 0x80 {
  12068. break
  12069. }
  12070. }
  12071. if msglen < 0 {
  12072. return ErrInvalidLengthTypes
  12073. }
  12074. postIndex := iNdEx + msglen
  12075. if postIndex < 0 {
  12076. return ErrInvalidLengthTypes
  12077. }
  12078. if postIndex > l {
  12079. return io.ErrUnexpectedEOF
  12080. }
  12081. v := &ResponseDeliverTx{}
  12082. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12083. return err
  12084. }
  12085. m.Value = &Response_DeliverTx{v}
  12086. iNdEx = postIndex
  12087. case 10:
  12088. if wireType != 2 {
  12089. return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType)
  12090. }
  12091. var msglen int
  12092. for shift := uint(0); ; shift += 7 {
  12093. if shift >= 64 {
  12094. return ErrIntOverflowTypes
  12095. }
  12096. if iNdEx >= l {
  12097. return io.ErrUnexpectedEOF
  12098. }
  12099. b := dAtA[iNdEx]
  12100. iNdEx++
  12101. msglen |= int(b&0x7F) << shift
  12102. if b < 0x80 {
  12103. break
  12104. }
  12105. }
  12106. if msglen < 0 {
  12107. return ErrInvalidLengthTypes
  12108. }
  12109. postIndex := iNdEx + msglen
  12110. if postIndex < 0 {
  12111. return ErrInvalidLengthTypes
  12112. }
  12113. if postIndex > l {
  12114. return io.ErrUnexpectedEOF
  12115. }
  12116. v := &ResponseEndBlock{}
  12117. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12118. return err
  12119. }
  12120. m.Value = &Response_EndBlock{v}
  12121. iNdEx = postIndex
  12122. case 11:
  12123. if wireType != 2 {
  12124. return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType)
  12125. }
  12126. var msglen int
  12127. for shift := uint(0); ; shift += 7 {
  12128. if shift >= 64 {
  12129. return ErrIntOverflowTypes
  12130. }
  12131. if iNdEx >= l {
  12132. return io.ErrUnexpectedEOF
  12133. }
  12134. b := dAtA[iNdEx]
  12135. iNdEx++
  12136. msglen |= int(b&0x7F) << shift
  12137. if b < 0x80 {
  12138. break
  12139. }
  12140. }
  12141. if msglen < 0 {
  12142. return ErrInvalidLengthTypes
  12143. }
  12144. postIndex := iNdEx + msglen
  12145. if postIndex < 0 {
  12146. return ErrInvalidLengthTypes
  12147. }
  12148. if postIndex > l {
  12149. return io.ErrUnexpectedEOF
  12150. }
  12151. v := &ResponseCommit{}
  12152. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12153. return err
  12154. }
  12155. m.Value = &Response_Commit{v}
  12156. iNdEx = postIndex
  12157. case 12:
  12158. if wireType != 2 {
  12159. return fmt.Errorf("proto: wrong wireType = %d for field ListSnapshots", wireType)
  12160. }
  12161. var msglen int
  12162. for shift := uint(0); ; shift += 7 {
  12163. if shift >= 64 {
  12164. return ErrIntOverflowTypes
  12165. }
  12166. if iNdEx >= l {
  12167. return io.ErrUnexpectedEOF
  12168. }
  12169. b := dAtA[iNdEx]
  12170. iNdEx++
  12171. msglen |= int(b&0x7F) << shift
  12172. if b < 0x80 {
  12173. break
  12174. }
  12175. }
  12176. if msglen < 0 {
  12177. return ErrInvalidLengthTypes
  12178. }
  12179. postIndex := iNdEx + msglen
  12180. if postIndex < 0 {
  12181. return ErrInvalidLengthTypes
  12182. }
  12183. if postIndex > l {
  12184. return io.ErrUnexpectedEOF
  12185. }
  12186. v := &ResponseListSnapshots{}
  12187. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12188. return err
  12189. }
  12190. m.Value = &Response_ListSnapshots{v}
  12191. iNdEx = postIndex
  12192. case 13:
  12193. if wireType != 2 {
  12194. return fmt.Errorf("proto: wrong wireType = %d for field OfferSnapshot", wireType)
  12195. }
  12196. var msglen int
  12197. for shift := uint(0); ; shift += 7 {
  12198. if shift >= 64 {
  12199. return ErrIntOverflowTypes
  12200. }
  12201. if iNdEx >= l {
  12202. return io.ErrUnexpectedEOF
  12203. }
  12204. b := dAtA[iNdEx]
  12205. iNdEx++
  12206. msglen |= int(b&0x7F) << shift
  12207. if b < 0x80 {
  12208. break
  12209. }
  12210. }
  12211. if msglen < 0 {
  12212. return ErrInvalidLengthTypes
  12213. }
  12214. postIndex := iNdEx + msglen
  12215. if postIndex < 0 {
  12216. return ErrInvalidLengthTypes
  12217. }
  12218. if postIndex > l {
  12219. return io.ErrUnexpectedEOF
  12220. }
  12221. v := &ResponseOfferSnapshot{}
  12222. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12223. return err
  12224. }
  12225. m.Value = &Response_OfferSnapshot{v}
  12226. iNdEx = postIndex
  12227. case 14:
  12228. if wireType != 2 {
  12229. return fmt.Errorf("proto: wrong wireType = %d for field LoadSnapshotChunk", wireType)
  12230. }
  12231. var msglen int
  12232. for shift := uint(0); ; shift += 7 {
  12233. if shift >= 64 {
  12234. return ErrIntOverflowTypes
  12235. }
  12236. if iNdEx >= l {
  12237. return io.ErrUnexpectedEOF
  12238. }
  12239. b := dAtA[iNdEx]
  12240. iNdEx++
  12241. msglen |= int(b&0x7F) << shift
  12242. if b < 0x80 {
  12243. break
  12244. }
  12245. }
  12246. if msglen < 0 {
  12247. return ErrInvalidLengthTypes
  12248. }
  12249. postIndex := iNdEx + msglen
  12250. if postIndex < 0 {
  12251. return ErrInvalidLengthTypes
  12252. }
  12253. if postIndex > l {
  12254. return io.ErrUnexpectedEOF
  12255. }
  12256. v := &ResponseLoadSnapshotChunk{}
  12257. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12258. return err
  12259. }
  12260. m.Value = &Response_LoadSnapshotChunk{v}
  12261. iNdEx = postIndex
  12262. case 15:
  12263. if wireType != 2 {
  12264. return fmt.Errorf("proto: wrong wireType = %d for field ApplySnapshotChunk", wireType)
  12265. }
  12266. var msglen int
  12267. for shift := uint(0); ; shift += 7 {
  12268. if shift >= 64 {
  12269. return ErrIntOverflowTypes
  12270. }
  12271. if iNdEx >= l {
  12272. return io.ErrUnexpectedEOF
  12273. }
  12274. b := dAtA[iNdEx]
  12275. iNdEx++
  12276. msglen |= int(b&0x7F) << shift
  12277. if b < 0x80 {
  12278. break
  12279. }
  12280. }
  12281. if msglen < 0 {
  12282. return ErrInvalidLengthTypes
  12283. }
  12284. postIndex := iNdEx + msglen
  12285. if postIndex < 0 {
  12286. return ErrInvalidLengthTypes
  12287. }
  12288. if postIndex > l {
  12289. return io.ErrUnexpectedEOF
  12290. }
  12291. v := &ResponseApplySnapshotChunk{}
  12292. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12293. return err
  12294. }
  12295. m.Value = &Response_ApplySnapshotChunk{v}
  12296. iNdEx = postIndex
  12297. case 16:
  12298. if wireType != 2 {
  12299. return fmt.Errorf("proto: wrong wireType = %d for field PrepareProposal", wireType)
  12300. }
  12301. var msglen int
  12302. for shift := uint(0); ; shift += 7 {
  12303. if shift >= 64 {
  12304. return ErrIntOverflowTypes
  12305. }
  12306. if iNdEx >= l {
  12307. return io.ErrUnexpectedEOF
  12308. }
  12309. b := dAtA[iNdEx]
  12310. iNdEx++
  12311. msglen |= int(b&0x7F) << shift
  12312. if b < 0x80 {
  12313. break
  12314. }
  12315. }
  12316. if msglen < 0 {
  12317. return ErrInvalidLengthTypes
  12318. }
  12319. postIndex := iNdEx + msglen
  12320. if postIndex < 0 {
  12321. return ErrInvalidLengthTypes
  12322. }
  12323. if postIndex > l {
  12324. return io.ErrUnexpectedEOF
  12325. }
  12326. v := &ResponsePrepareProposal{}
  12327. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12328. return err
  12329. }
  12330. m.Value = &Response_PrepareProposal{v}
  12331. iNdEx = postIndex
  12332. case 17:
  12333. if wireType != 2 {
  12334. return fmt.Errorf("proto: wrong wireType = %d for field ProcessProposal", wireType)
  12335. }
  12336. var msglen int
  12337. for shift := uint(0); ; shift += 7 {
  12338. if shift >= 64 {
  12339. return ErrIntOverflowTypes
  12340. }
  12341. if iNdEx >= l {
  12342. return io.ErrUnexpectedEOF
  12343. }
  12344. b := dAtA[iNdEx]
  12345. iNdEx++
  12346. msglen |= int(b&0x7F) << shift
  12347. if b < 0x80 {
  12348. break
  12349. }
  12350. }
  12351. if msglen < 0 {
  12352. return ErrInvalidLengthTypes
  12353. }
  12354. postIndex := iNdEx + msglen
  12355. if postIndex < 0 {
  12356. return ErrInvalidLengthTypes
  12357. }
  12358. if postIndex > l {
  12359. return io.ErrUnexpectedEOF
  12360. }
  12361. v := &ResponseProcessProposal{}
  12362. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12363. return err
  12364. }
  12365. m.Value = &Response_ProcessProposal{v}
  12366. iNdEx = postIndex
  12367. case 18:
  12368. if wireType != 2 {
  12369. return fmt.Errorf("proto: wrong wireType = %d for field ExtendVote", wireType)
  12370. }
  12371. var msglen int
  12372. for shift := uint(0); ; shift += 7 {
  12373. if shift >= 64 {
  12374. return ErrIntOverflowTypes
  12375. }
  12376. if iNdEx >= l {
  12377. return io.ErrUnexpectedEOF
  12378. }
  12379. b := dAtA[iNdEx]
  12380. iNdEx++
  12381. msglen |= int(b&0x7F) << shift
  12382. if b < 0x80 {
  12383. break
  12384. }
  12385. }
  12386. if msglen < 0 {
  12387. return ErrInvalidLengthTypes
  12388. }
  12389. postIndex := iNdEx + msglen
  12390. if postIndex < 0 {
  12391. return ErrInvalidLengthTypes
  12392. }
  12393. if postIndex > l {
  12394. return io.ErrUnexpectedEOF
  12395. }
  12396. v := &ResponseExtendVote{}
  12397. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12398. return err
  12399. }
  12400. m.Value = &Response_ExtendVote{v}
  12401. iNdEx = postIndex
  12402. case 19:
  12403. if wireType != 2 {
  12404. return fmt.Errorf("proto: wrong wireType = %d for field VerifyVoteExtension", wireType)
  12405. }
  12406. var msglen int
  12407. for shift := uint(0); ; shift += 7 {
  12408. if shift >= 64 {
  12409. return ErrIntOverflowTypes
  12410. }
  12411. if iNdEx >= l {
  12412. return io.ErrUnexpectedEOF
  12413. }
  12414. b := dAtA[iNdEx]
  12415. iNdEx++
  12416. msglen |= int(b&0x7F) << shift
  12417. if b < 0x80 {
  12418. break
  12419. }
  12420. }
  12421. if msglen < 0 {
  12422. return ErrInvalidLengthTypes
  12423. }
  12424. postIndex := iNdEx + msglen
  12425. if postIndex < 0 {
  12426. return ErrInvalidLengthTypes
  12427. }
  12428. if postIndex > l {
  12429. return io.ErrUnexpectedEOF
  12430. }
  12431. v := &ResponseVerifyVoteExtension{}
  12432. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12433. return err
  12434. }
  12435. m.Value = &Response_VerifyVoteExtension{v}
  12436. iNdEx = postIndex
  12437. case 20:
  12438. if wireType != 2 {
  12439. return fmt.Errorf("proto: wrong wireType = %d for field FinalizeBlock", wireType)
  12440. }
  12441. var msglen int
  12442. for shift := uint(0); ; shift += 7 {
  12443. if shift >= 64 {
  12444. return ErrIntOverflowTypes
  12445. }
  12446. if iNdEx >= l {
  12447. return io.ErrUnexpectedEOF
  12448. }
  12449. b := dAtA[iNdEx]
  12450. iNdEx++
  12451. msglen |= int(b&0x7F) << shift
  12452. if b < 0x80 {
  12453. break
  12454. }
  12455. }
  12456. if msglen < 0 {
  12457. return ErrInvalidLengthTypes
  12458. }
  12459. postIndex := iNdEx + msglen
  12460. if postIndex < 0 {
  12461. return ErrInvalidLengthTypes
  12462. }
  12463. if postIndex > l {
  12464. return io.ErrUnexpectedEOF
  12465. }
  12466. v := &ResponseFinalizeBlock{}
  12467. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12468. return err
  12469. }
  12470. m.Value = &Response_FinalizeBlock{v}
  12471. iNdEx = postIndex
  12472. default:
  12473. iNdEx = preIndex
  12474. skippy, err := skipTypes(dAtA[iNdEx:])
  12475. if err != nil {
  12476. return err
  12477. }
  12478. if (skippy < 0) || (iNdEx+skippy) < 0 {
  12479. return ErrInvalidLengthTypes
  12480. }
  12481. if (iNdEx + skippy) > l {
  12482. return io.ErrUnexpectedEOF
  12483. }
  12484. iNdEx += skippy
  12485. }
  12486. }
  12487. if iNdEx > l {
  12488. return io.ErrUnexpectedEOF
  12489. }
  12490. return nil
  12491. }
  12492. func (m *ResponseException) Unmarshal(dAtA []byte) error {
  12493. l := len(dAtA)
  12494. iNdEx := 0
  12495. for iNdEx < l {
  12496. preIndex := iNdEx
  12497. var wire uint64
  12498. for shift := uint(0); ; shift += 7 {
  12499. if shift >= 64 {
  12500. return ErrIntOverflowTypes
  12501. }
  12502. if iNdEx >= l {
  12503. return io.ErrUnexpectedEOF
  12504. }
  12505. b := dAtA[iNdEx]
  12506. iNdEx++
  12507. wire |= uint64(b&0x7F) << shift
  12508. if b < 0x80 {
  12509. break
  12510. }
  12511. }
  12512. fieldNum := int32(wire >> 3)
  12513. wireType := int(wire & 0x7)
  12514. if wireType == 4 {
  12515. return fmt.Errorf("proto: ResponseException: wiretype end group for non-group")
  12516. }
  12517. if fieldNum <= 0 {
  12518. return fmt.Errorf("proto: ResponseException: illegal tag %d (wire type %d)", fieldNum, wire)
  12519. }
  12520. switch fieldNum {
  12521. case 1:
  12522. if wireType != 2 {
  12523. return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
  12524. }
  12525. var stringLen uint64
  12526. for shift := uint(0); ; shift += 7 {
  12527. if shift >= 64 {
  12528. return ErrIntOverflowTypes
  12529. }
  12530. if iNdEx >= l {
  12531. return io.ErrUnexpectedEOF
  12532. }
  12533. b := dAtA[iNdEx]
  12534. iNdEx++
  12535. stringLen |= uint64(b&0x7F) << shift
  12536. if b < 0x80 {
  12537. break
  12538. }
  12539. }
  12540. intStringLen := int(stringLen)
  12541. if intStringLen < 0 {
  12542. return ErrInvalidLengthTypes
  12543. }
  12544. postIndex := iNdEx + intStringLen
  12545. if postIndex < 0 {
  12546. return ErrInvalidLengthTypes
  12547. }
  12548. if postIndex > l {
  12549. return io.ErrUnexpectedEOF
  12550. }
  12551. m.Error = string(dAtA[iNdEx:postIndex])
  12552. iNdEx = postIndex
  12553. default:
  12554. iNdEx = preIndex
  12555. skippy, err := skipTypes(dAtA[iNdEx:])
  12556. if err != nil {
  12557. return err
  12558. }
  12559. if (skippy < 0) || (iNdEx+skippy) < 0 {
  12560. return ErrInvalidLengthTypes
  12561. }
  12562. if (iNdEx + skippy) > l {
  12563. return io.ErrUnexpectedEOF
  12564. }
  12565. iNdEx += skippy
  12566. }
  12567. }
  12568. if iNdEx > l {
  12569. return io.ErrUnexpectedEOF
  12570. }
  12571. return nil
  12572. }
  12573. func (m *ResponseEcho) Unmarshal(dAtA []byte) error {
  12574. l := len(dAtA)
  12575. iNdEx := 0
  12576. for iNdEx < l {
  12577. preIndex := iNdEx
  12578. var wire uint64
  12579. for shift := uint(0); ; shift += 7 {
  12580. if shift >= 64 {
  12581. return ErrIntOverflowTypes
  12582. }
  12583. if iNdEx >= l {
  12584. return io.ErrUnexpectedEOF
  12585. }
  12586. b := dAtA[iNdEx]
  12587. iNdEx++
  12588. wire |= uint64(b&0x7F) << shift
  12589. if b < 0x80 {
  12590. break
  12591. }
  12592. }
  12593. fieldNum := int32(wire >> 3)
  12594. wireType := int(wire & 0x7)
  12595. if wireType == 4 {
  12596. return fmt.Errorf("proto: ResponseEcho: wiretype end group for non-group")
  12597. }
  12598. if fieldNum <= 0 {
  12599. return fmt.Errorf("proto: ResponseEcho: illegal tag %d (wire type %d)", fieldNum, wire)
  12600. }
  12601. switch fieldNum {
  12602. case 1:
  12603. if wireType != 2 {
  12604. return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
  12605. }
  12606. var stringLen uint64
  12607. for shift := uint(0); ; shift += 7 {
  12608. if shift >= 64 {
  12609. return ErrIntOverflowTypes
  12610. }
  12611. if iNdEx >= l {
  12612. return io.ErrUnexpectedEOF
  12613. }
  12614. b := dAtA[iNdEx]
  12615. iNdEx++
  12616. stringLen |= uint64(b&0x7F) << shift
  12617. if b < 0x80 {
  12618. break
  12619. }
  12620. }
  12621. intStringLen := int(stringLen)
  12622. if intStringLen < 0 {
  12623. return ErrInvalidLengthTypes
  12624. }
  12625. postIndex := iNdEx + intStringLen
  12626. if postIndex < 0 {
  12627. return ErrInvalidLengthTypes
  12628. }
  12629. if postIndex > l {
  12630. return io.ErrUnexpectedEOF
  12631. }
  12632. m.Message = string(dAtA[iNdEx:postIndex])
  12633. iNdEx = postIndex
  12634. default:
  12635. iNdEx = preIndex
  12636. skippy, err := skipTypes(dAtA[iNdEx:])
  12637. if err != nil {
  12638. return err
  12639. }
  12640. if (skippy < 0) || (iNdEx+skippy) < 0 {
  12641. return ErrInvalidLengthTypes
  12642. }
  12643. if (iNdEx + skippy) > l {
  12644. return io.ErrUnexpectedEOF
  12645. }
  12646. iNdEx += skippy
  12647. }
  12648. }
  12649. if iNdEx > l {
  12650. return io.ErrUnexpectedEOF
  12651. }
  12652. return nil
  12653. }
  12654. func (m *ResponseFlush) Unmarshal(dAtA []byte) error {
  12655. l := len(dAtA)
  12656. iNdEx := 0
  12657. for iNdEx < l {
  12658. preIndex := iNdEx
  12659. var wire uint64
  12660. for shift := uint(0); ; shift += 7 {
  12661. if shift >= 64 {
  12662. return ErrIntOverflowTypes
  12663. }
  12664. if iNdEx >= l {
  12665. return io.ErrUnexpectedEOF
  12666. }
  12667. b := dAtA[iNdEx]
  12668. iNdEx++
  12669. wire |= uint64(b&0x7F) << shift
  12670. if b < 0x80 {
  12671. break
  12672. }
  12673. }
  12674. fieldNum := int32(wire >> 3)
  12675. wireType := int(wire & 0x7)
  12676. if wireType == 4 {
  12677. return fmt.Errorf("proto: ResponseFlush: wiretype end group for non-group")
  12678. }
  12679. if fieldNum <= 0 {
  12680. return fmt.Errorf("proto: ResponseFlush: illegal tag %d (wire type %d)", fieldNum, wire)
  12681. }
  12682. switch fieldNum {
  12683. default:
  12684. iNdEx = preIndex
  12685. skippy, err := skipTypes(dAtA[iNdEx:])
  12686. if err != nil {
  12687. return err
  12688. }
  12689. if (skippy < 0) || (iNdEx+skippy) < 0 {
  12690. return ErrInvalidLengthTypes
  12691. }
  12692. if (iNdEx + skippy) > l {
  12693. return io.ErrUnexpectedEOF
  12694. }
  12695. iNdEx += skippy
  12696. }
  12697. }
  12698. if iNdEx > l {
  12699. return io.ErrUnexpectedEOF
  12700. }
  12701. return nil
  12702. }
  12703. func (m *ResponseInfo) Unmarshal(dAtA []byte) error {
  12704. l := len(dAtA)
  12705. iNdEx := 0
  12706. for iNdEx < l {
  12707. preIndex := iNdEx
  12708. var wire uint64
  12709. for shift := uint(0); ; shift += 7 {
  12710. if shift >= 64 {
  12711. return ErrIntOverflowTypes
  12712. }
  12713. if iNdEx >= l {
  12714. return io.ErrUnexpectedEOF
  12715. }
  12716. b := dAtA[iNdEx]
  12717. iNdEx++
  12718. wire |= uint64(b&0x7F) << shift
  12719. if b < 0x80 {
  12720. break
  12721. }
  12722. }
  12723. fieldNum := int32(wire >> 3)
  12724. wireType := int(wire & 0x7)
  12725. if wireType == 4 {
  12726. return fmt.Errorf("proto: ResponseInfo: wiretype end group for non-group")
  12727. }
  12728. if fieldNum <= 0 {
  12729. return fmt.Errorf("proto: ResponseInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  12730. }
  12731. switch fieldNum {
  12732. case 1:
  12733. if wireType != 2 {
  12734. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  12735. }
  12736. var stringLen uint64
  12737. for shift := uint(0); ; shift += 7 {
  12738. if shift >= 64 {
  12739. return ErrIntOverflowTypes
  12740. }
  12741. if iNdEx >= l {
  12742. return io.ErrUnexpectedEOF
  12743. }
  12744. b := dAtA[iNdEx]
  12745. iNdEx++
  12746. stringLen |= uint64(b&0x7F) << shift
  12747. if b < 0x80 {
  12748. break
  12749. }
  12750. }
  12751. intStringLen := int(stringLen)
  12752. if intStringLen < 0 {
  12753. return ErrInvalidLengthTypes
  12754. }
  12755. postIndex := iNdEx + intStringLen
  12756. if postIndex < 0 {
  12757. return ErrInvalidLengthTypes
  12758. }
  12759. if postIndex > l {
  12760. return io.ErrUnexpectedEOF
  12761. }
  12762. m.Data = string(dAtA[iNdEx:postIndex])
  12763. iNdEx = postIndex
  12764. case 2:
  12765. if wireType != 2 {
  12766. return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  12767. }
  12768. var stringLen uint64
  12769. for shift := uint(0); ; shift += 7 {
  12770. if shift >= 64 {
  12771. return ErrIntOverflowTypes
  12772. }
  12773. if iNdEx >= l {
  12774. return io.ErrUnexpectedEOF
  12775. }
  12776. b := dAtA[iNdEx]
  12777. iNdEx++
  12778. stringLen |= uint64(b&0x7F) << shift
  12779. if b < 0x80 {
  12780. break
  12781. }
  12782. }
  12783. intStringLen := int(stringLen)
  12784. if intStringLen < 0 {
  12785. return ErrInvalidLengthTypes
  12786. }
  12787. postIndex := iNdEx + intStringLen
  12788. if postIndex < 0 {
  12789. return ErrInvalidLengthTypes
  12790. }
  12791. if postIndex > l {
  12792. return io.ErrUnexpectedEOF
  12793. }
  12794. m.Version = string(dAtA[iNdEx:postIndex])
  12795. iNdEx = postIndex
  12796. case 3:
  12797. if wireType != 0 {
  12798. return fmt.Errorf("proto: wrong wireType = %d for field AppVersion", wireType)
  12799. }
  12800. m.AppVersion = 0
  12801. for shift := uint(0); ; shift += 7 {
  12802. if shift >= 64 {
  12803. return ErrIntOverflowTypes
  12804. }
  12805. if iNdEx >= l {
  12806. return io.ErrUnexpectedEOF
  12807. }
  12808. b := dAtA[iNdEx]
  12809. iNdEx++
  12810. m.AppVersion |= uint64(b&0x7F) << shift
  12811. if b < 0x80 {
  12812. break
  12813. }
  12814. }
  12815. case 4:
  12816. if wireType != 0 {
  12817. return fmt.Errorf("proto: wrong wireType = %d for field LastBlockHeight", wireType)
  12818. }
  12819. m.LastBlockHeight = 0
  12820. for shift := uint(0); ; shift += 7 {
  12821. if shift >= 64 {
  12822. return ErrIntOverflowTypes
  12823. }
  12824. if iNdEx >= l {
  12825. return io.ErrUnexpectedEOF
  12826. }
  12827. b := dAtA[iNdEx]
  12828. iNdEx++
  12829. m.LastBlockHeight |= int64(b&0x7F) << shift
  12830. if b < 0x80 {
  12831. break
  12832. }
  12833. }
  12834. case 5:
  12835. if wireType != 2 {
  12836. return fmt.Errorf("proto: wrong wireType = %d for field LastBlockAppHash", wireType)
  12837. }
  12838. var byteLen int
  12839. for shift := uint(0); ; shift += 7 {
  12840. if shift >= 64 {
  12841. return ErrIntOverflowTypes
  12842. }
  12843. if iNdEx >= l {
  12844. return io.ErrUnexpectedEOF
  12845. }
  12846. b := dAtA[iNdEx]
  12847. iNdEx++
  12848. byteLen |= int(b&0x7F) << shift
  12849. if b < 0x80 {
  12850. break
  12851. }
  12852. }
  12853. if byteLen < 0 {
  12854. return ErrInvalidLengthTypes
  12855. }
  12856. postIndex := iNdEx + byteLen
  12857. if postIndex < 0 {
  12858. return ErrInvalidLengthTypes
  12859. }
  12860. if postIndex > l {
  12861. return io.ErrUnexpectedEOF
  12862. }
  12863. m.LastBlockAppHash = append(m.LastBlockAppHash[:0], dAtA[iNdEx:postIndex]...)
  12864. if m.LastBlockAppHash == nil {
  12865. m.LastBlockAppHash = []byte{}
  12866. }
  12867. iNdEx = postIndex
  12868. default:
  12869. iNdEx = preIndex
  12870. skippy, err := skipTypes(dAtA[iNdEx:])
  12871. if err != nil {
  12872. return err
  12873. }
  12874. if (skippy < 0) || (iNdEx+skippy) < 0 {
  12875. return ErrInvalidLengthTypes
  12876. }
  12877. if (iNdEx + skippy) > l {
  12878. return io.ErrUnexpectedEOF
  12879. }
  12880. iNdEx += skippy
  12881. }
  12882. }
  12883. if iNdEx > l {
  12884. return io.ErrUnexpectedEOF
  12885. }
  12886. return nil
  12887. }
  12888. func (m *ResponseInitChain) Unmarshal(dAtA []byte) error {
  12889. l := len(dAtA)
  12890. iNdEx := 0
  12891. for iNdEx < l {
  12892. preIndex := iNdEx
  12893. var wire uint64
  12894. for shift := uint(0); ; shift += 7 {
  12895. if shift >= 64 {
  12896. return ErrIntOverflowTypes
  12897. }
  12898. if iNdEx >= l {
  12899. return io.ErrUnexpectedEOF
  12900. }
  12901. b := dAtA[iNdEx]
  12902. iNdEx++
  12903. wire |= uint64(b&0x7F) << shift
  12904. if b < 0x80 {
  12905. break
  12906. }
  12907. }
  12908. fieldNum := int32(wire >> 3)
  12909. wireType := int(wire & 0x7)
  12910. if wireType == 4 {
  12911. return fmt.Errorf("proto: ResponseInitChain: wiretype end group for non-group")
  12912. }
  12913. if fieldNum <= 0 {
  12914. return fmt.Errorf("proto: ResponseInitChain: illegal tag %d (wire type %d)", fieldNum, wire)
  12915. }
  12916. switch fieldNum {
  12917. case 1:
  12918. if wireType != 2 {
  12919. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParams", wireType)
  12920. }
  12921. var msglen int
  12922. for shift := uint(0); ; shift += 7 {
  12923. if shift >= 64 {
  12924. return ErrIntOverflowTypes
  12925. }
  12926. if iNdEx >= l {
  12927. return io.ErrUnexpectedEOF
  12928. }
  12929. b := dAtA[iNdEx]
  12930. iNdEx++
  12931. msglen |= int(b&0x7F) << shift
  12932. if b < 0x80 {
  12933. break
  12934. }
  12935. }
  12936. if msglen < 0 {
  12937. return ErrInvalidLengthTypes
  12938. }
  12939. postIndex := iNdEx + msglen
  12940. if postIndex < 0 {
  12941. return ErrInvalidLengthTypes
  12942. }
  12943. if postIndex > l {
  12944. return io.ErrUnexpectedEOF
  12945. }
  12946. if m.ConsensusParams == nil {
  12947. m.ConsensusParams = &types1.ConsensusParams{}
  12948. }
  12949. if err := m.ConsensusParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12950. return err
  12951. }
  12952. iNdEx = postIndex
  12953. case 2:
  12954. if wireType != 2 {
  12955. return fmt.Errorf("proto: wrong wireType = %d for field Validators", wireType)
  12956. }
  12957. var msglen int
  12958. for shift := uint(0); ; shift += 7 {
  12959. if shift >= 64 {
  12960. return ErrIntOverflowTypes
  12961. }
  12962. if iNdEx >= l {
  12963. return io.ErrUnexpectedEOF
  12964. }
  12965. b := dAtA[iNdEx]
  12966. iNdEx++
  12967. msglen |= int(b&0x7F) << shift
  12968. if b < 0x80 {
  12969. break
  12970. }
  12971. }
  12972. if msglen < 0 {
  12973. return ErrInvalidLengthTypes
  12974. }
  12975. postIndex := iNdEx + msglen
  12976. if postIndex < 0 {
  12977. return ErrInvalidLengthTypes
  12978. }
  12979. if postIndex > l {
  12980. return io.ErrUnexpectedEOF
  12981. }
  12982. m.Validators = append(m.Validators, ValidatorUpdate{})
  12983. if err := m.Validators[len(m.Validators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12984. return err
  12985. }
  12986. iNdEx = postIndex
  12987. case 3:
  12988. if wireType != 2 {
  12989. return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType)
  12990. }
  12991. var byteLen int
  12992. for shift := uint(0); ; shift += 7 {
  12993. if shift >= 64 {
  12994. return ErrIntOverflowTypes
  12995. }
  12996. if iNdEx >= l {
  12997. return io.ErrUnexpectedEOF
  12998. }
  12999. b := dAtA[iNdEx]
  13000. iNdEx++
  13001. byteLen |= int(b&0x7F) << shift
  13002. if b < 0x80 {
  13003. break
  13004. }
  13005. }
  13006. if byteLen < 0 {
  13007. return ErrInvalidLengthTypes
  13008. }
  13009. postIndex := iNdEx + byteLen
  13010. if postIndex < 0 {
  13011. return ErrInvalidLengthTypes
  13012. }
  13013. if postIndex > l {
  13014. return io.ErrUnexpectedEOF
  13015. }
  13016. m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...)
  13017. if m.AppHash == nil {
  13018. m.AppHash = []byte{}
  13019. }
  13020. iNdEx = postIndex
  13021. default:
  13022. iNdEx = preIndex
  13023. skippy, err := skipTypes(dAtA[iNdEx:])
  13024. if err != nil {
  13025. return err
  13026. }
  13027. if (skippy < 0) || (iNdEx+skippy) < 0 {
  13028. return ErrInvalidLengthTypes
  13029. }
  13030. if (iNdEx + skippy) > l {
  13031. return io.ErrUnexpectedEOF
  13032. }
  13033. iNdEx += skippy
  13034. }
  13035. }
  13036. if iNdEx > l {
  13037. return io.ErrUnexpectedEOF
  13038. }
  13039. return nil
  13040. }
  13041. func (m *ResponseQuery) Unmarshal(dAtA []byte) error {
  13042. l := len(dAtA)
  13043. iNdEx := 0
  13044. for iNdEx < l {
  13045. preIndex := iNdEx
  13046. var wire uint64
  13047. for shift := uint(0); ; shift += 7 {
  13048. if shift >= 64 {
  13049. return ErrIntOverflowTypes
  13050. }
  13051. if iNdEx >= l {
  13052. return io.ErrUnexpectedEOF
  13053. }
  13054. b := dAtA[iNdEx]
  13055. iNdEx++
  13056. wire |= uint64(b&0x7F) << shift
  13057. if b < 0x80 {
  13058. break
  13059. }
  13060. }
  13061. fieldNum := int32(wire >> 3)
  13062. wireType := int(wire & 0x7)
  13063. if wireType == 4 {
  13064. return fmt.Errorf("proto: ResponseQuery: wiretype end group for non-group")
  13065. }
  13066. if fieldNum <= 0 {
  13067. return fmt.Errorf("proto: ResponseQuery: illegal tag %d (wire type %d)", fieldNum, wire)
  13068. }
  13069. switch fieldNum {
  13070. case 1:
  13071. if wireType != 0 {
  13072. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  13073. }
  13074. m.Code = 0
  13075. for shift := uint(0); ; shift += 7 {
  13076. if shift >= 64 {
  13077. return ErrIntOverflowTypes
  13078. }
  13079. if iNdEx >= l {
  13080. return io.ErrUnexpectedEOF
  13081. }
  13082. b := dAtA[iNdEx]
  13083. iNdEx++
  13084. m.Code |= uint32(b&0x7F) << shift
  13085. if b < 0x80 {
  13086. break
  13087. }
  13088. }
  13089. case 3:
  13090. if wireType != 2 {
  13091. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  13092. }
  13093. var stringLen uint64
  13094. for shift := uint(0); ; shift += 7 {
  13095. if shift >= 64 {
  13096. return ErrIntOverflowTypes
  13097. }
  13098. if iNdEx >= l {
  13099. return io.ErrUnexpectedEOF
  13100. }
  13101. b := dAtA[iNdEx]
  13102. iNdEx++
  13103. stringLen |= uint64(b&0x7F) << shift
  13104. if b < 0x80 {
  13105. break
  13106. }
  13107. }
  13108. intStringLen := int(stringLen)
  13109. if intStringLen < 0 {
  13110. return ErrInvalidLengthTypes
  13111. }
  13112. postIndex := iNdEx + intStringLen
  13113. if postIndex < 0 {
  13114. return ErrInvalidLengthTypes
  13115. }
  13116. if postIndex > l {
  13117. return io.ErrUnexpectedEOF
  13118. }
  13119. m.Log = string(dAtA[iNdEx:postIndex])
  13120. iNdEx = postIndex
  13121. case 4:
  13122. if wireType != 2 {
  13123. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  13124. }
  13125. var stringLen uint64
  13126. for shift := uint(0); ; shift += 7 {
  13127. if shift >= 64 {
  13128. return ErrIntOverflowTypes
  13129. }
  13130. if iNdEx >= l {
  13131. return io.ErrUnexpectedEOF
  13132. }
  13133. b := dAtA[iNdEx]
  13134. iNdEx++
  13135. stringLen |= uint64(b&0x7F) << shift
  13136. if b < 0x80 {
  13137. break
  13138. }
  13139. }
  13140. intStringLen := int(stringLen)
  13141. if intStringLen < 0 {
  13142. return ErrInvalidLengthTypes
  13143. }
  13144. postIndex := iNdEx + intStringLen
  13145. if postIndex < 0 {
  13146. return ErrInvalidLengthTypes
  13147. }
  13148. if postIndex > l {
  13149. return io.ErrUnexpectedEOF
  13150. }
  13151. m.Info = string(dAtA[iNdEx:postIndex])
  13152. iNdEx = postIndex
  13153. case 5:
  13154. if wireType != 0 {
  13155. return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
  13156. }
  13157. m.Index = 0
  13158. for shift := uint(0); ; shift += 7 {
  13159. if shift >= 64 {
  13160. return ErrIntOverflowTypes
  13161. }
  13162. if iNdEx >= l {
  13163. return io.ErrUnexpectedEOF
  13164. }
  13165. b := dAtA[iNdEx]
  13166. iNdEx++
  13167. m.Index |= int64(b&0x7F) << shift
  13168. if b < 0x80 {
  13169. break
  13170. }
  13171. }
  13172. case 6:
  13173. if wireType != 2 {
  13174. return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  13175. }
  13176. var byteLen int
  13177. for shift := uint(0); ; shift += 7 {
  13178. if shift >= 64 {
  13179. return ErrIntOverflowTypes
  13180. }
  13181. if iNdEx >= l {
  13182. return io.ErrUnexpectedEOF
  13183. }
  13184. b := dAtA[iNdEx]
  13185. iNdEx++
  13186. byteLen |= int(b&0x7F) << shift
  13187. if b < 0x80 {
  13188. break
  13189. }
  13190. }
  13191. if byteLen < 0 {
  13192. return ErrInvalidLengthTypes
  13193. }
  13194. postIndex := iNdEx + byteLen
  13195. if postIndex < 0 {
  13196. return ErrInvalidLengthTypes
  13197. }
  13198. if postIndex > l {
  13199. return io.ErrUnexpectedEOF
  13200. }
  13201. m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
  13202. if m.Key == nil {
  13203. m.Key = []byte{}
  13204. }
  13205. iNdEx = postIndex
  13206. case 7:
  13207. if wireType != 2 {
  13208. return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  13209. }
  13210. var byteLen int
  13211. for shift := uint(0); ; shift += 7 {
  13212. if shift >= 64 {
  13213. return ErrIntOverflowTypes
  13214. }
  13215. if iNdEx >= l {
  13216. return io.ErrUnexpectedEOF
  13217. }
  13218. b := dAtA[iNdEx]
  13219. iNdEx++
  13220. byteLen |= int(b&0x7F) << shift
  13221. if b < 0x80 {
  13222. break
  13223. }
  13224. }
  13225. if byteLen < 0 {
  13226. return ErrInvalidLengthTypes
  13227. }
  13228. postIndex := iNdEx + byteLen
  13229. if postIndex < 0 {
  13230. return ErrInvalidLengthTypes
  13231. }
  13232. if postIndex > l {
  13233. return io.ErrUnexpectedEOF
  13234. }
  13235. m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...)
  13236. if m.Value == nil {
  13237. m.Value = []byte{}
  13238. }
  13239. iNdEx = postIndex
  13240. case 8:
  13241. if wireType != 2 {
  13242. return fmt.Errorf("proto: wrong wireType = %d for field ProofOps", wireType)
  13243. }
  13244. var msglen int
  13245. for shift := uint(0); ; shift += 7 {
  13246. if shift >= 64 {
  13247. return ErrIntOverflowTypes
  13248. }
  13249. if iNdEx >= l {
  13250. return io.ErrUnexpectedEOF
  13251. }
  13252. b := dAtA[iNdEx]
  13253. iNdEx++
  13254. msglen |= int(b&0x7F) << shift
  13255. if b < 0x80 {
  13256. break
  13257. }
  13258. }
  13259. if msglen < 0 {
  13260. return ErrInvalidLengthTypes
  13261. }
  13262. postIndex := iNdEx + msglen
  13263. if postIndex < 0 {
  13264. return ErrInvalidLengthTypes
  13265. }
  13266. if postIndex > l {
  13267. return io.ErrUnexpectedEOF
  13268. }
  13269. if m.ProofOps == nil {
  13270. m.ProofOps = &crypto.ProofOps{}
  13271. }
  13272. if err := m.ProofOps.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13273. return err
  13274. }
  13275. iNdEx = postIndex
  13276. case 9:
  13277. if wireType != 0 {
  13278. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  13279. }
  13280. m.Height = 0
  13281. for shift := uint(0); ; shift += 7 {
  13282. if shift >= 64 {
  13283. return ErrIntOverflowTypes
  13284. }
  13285. if iNdEx >= l {
  13286. return io.ErrUnexpectedEOF
  13287. }
  13288. b := dAtA[iNdEx]
  13289. iNdEx++
  13290. m.Height |= int64(b&0x7F) << shift
  13291. if b < 0x80 {
  13292. break
  13293. }
  13294. }
  13295. case 10:
  13296. if wireType != 2 {
  13297. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  13298. }
  13299. var stringLen uint64
  13300. for shift := uint(0); ; shift += 7 {
  13301. if shift >= 64 {
  13302. return ErrIntOverflowTypes
  13303. }
  13304. if iNdEx >= l {
  13305. return io.ErrUnexpectedEOF
  13306. }
  13307. b := dAtA[iNdEx]
  13308. iNdEx++
  13309. stringLen |= uint64(b&0x7F) << shift
  13310. if b < 0x80 {
  13311. break
  13312. }
  13313. }
  13314. intStringLen := int(stringLen)
  13315. if intStringLen < 0 {
  13316. return ErrInvalidLengthTypes
  13317. }
  13318. postIndex := iNdEx + intStringLen
  13319. if postIndex < 0 {
  13320. return ErrInvalidLengthTypes
  13321. }
  13322. if postIndex > l {
  13323. return io.ErrUnexpectedEOF
  13324. }
  13325. m.Codespace = string(dAtA[iNdEx:postIndex])
  13326. iNdEx = postIndex
  13327. default:
  13328. iNdEx = preIndex
  13329. skippy, err := skipTypes(dAtA[iNdEx:])
  13330. if err != nil {
  13331. return err
  13332. }
  13333. if (skippy < 0) || (iNdEx+skippy) < 0 {
  13334. return ErrInvalidLengthTypes
  13335. }
  13336. if (iNdEx + skippy) > l {
  13337. return io.ErrUnexpectedEOF
  13338. }
  13339. iNdEx += skippy
  13340. }
  13341. }
  13342. if iNdEx > l {
  13343. return io.ErrUnexpectedEOF
  13344. }
  13345. return nil
  13346. }
  13347. func (m *ResponseBeginBlock) Unmarshal(dAtA []byte) error {
  13348. l := len(dAtA)
  13349. iNdEx := 0
  13350. for iNdEx < l {
  13351. preIndex := iNdEx
  13352. var wire uint64
  13353. for shift := uint(0); ; shift += 7 {
  13354. if shift >= 64 {
  13355. return ErrIntOverflowTypes
  13356. }
  13357. if iNdEx >= l {
  13358. return io.ErrUnexpectedEOF
  13359. }
  13360. b := dAtA[iNdEx]
  13361. iNdEx++
  13362. wire |= uint64(b&0x7F) << shift
  13363. if b < 0x80 {
  13364. break
  13365. }
  13366. }
  13367. fieldNum := int32(wire >> 3)
  13368. wireType := int(wire & 0x7)
  13369. if wireType == 4 {
  13370. return fmt.Errorf("proto: ResponseBeginBlock: wiretype end group for non-group")
  13371. }
  13372. if fieldNum <= 0 {
  13373. return fmt.Errorf("proto: ResponseBeginBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  13374. }
  13375. switch fieldNum {
  13376. case 1:
  13377. if wireType != 2 {
  13378. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  13379. }
  13380. var msglen int
  13381. for shift := uint(0); ; shift += 7 {
  13382. if shift >= 64 {
  13383. return ErrIntOverflowTypes
  13384. }
  13385. if iNdEx >= l {
  13386. return io.ErrUnexpectedEOF
  13387. }
  13388. b := dAtA[iNdEx]
  13389. iNdEx++
  13390. msglen |= int(b&0x7F) << shift
  13391. if b < 0x80 {
  13392. break
  13393. }
  13394. }
  13395. if msglen < 0 {
  13396. return ErrInvalidLengthTypes
  13397. }
  13398. postIndex := iNdEx + msglen
  13399. if postIndex < 0 {
  13400. return ErrInvalidLengthTypes
  13401. }
  13402. if postIndex > l {
  13403. return io.ErrUnexpectedEOF
  13404. }
  13405. m.Events = append(m.Events, Event{})
  13406. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13407. return err
  13408. }
  13409. iNdEx = postIndex
  13410. default:
  13411. iNdEx = preIndex
  13412. skippy, err := skipTypes(dAtA[iNdEx:])
  13413. if err != nil {
  13414. return err
  13415. }
  13416. if (skippy < 0) || (iNdEx+skippy) < 0 {
  13417. return ErrInvalidLengthTypes
  13418. }
  13419. if (iNdEx + skippy) > l {
  13420. return io.ErrUnexpectedEOF
  13421. }
  13422. iNdEx += skippy
  13423. }
  13424. }
  13425. if iNdEx > l {
  13426. return io.ErrUnexpectedEOF
  13427. }
  13428. return nil
  13429. }
  13430. func (m *ResponseCheckTx) Unmarshal(dAtA []byte) error {
  13431. l := len(dAtA)
  13432. iNdEx := 0
  13433. for iNdEx < l {
  13434. preIndex := iNdEx
  13435. var wire uint64
  13436. for shift := uint(0); ; shift += 7 {
  13437. if shift >= 64 {
  13438. return ErrIntOverflowTypes
  13439. }
  13440. if iNdEx >= l {
  13441. return io.ErrUnexpectedEOF
  13442. }
  13443. b := dAtA[iNdEx]
  13444. iNdEx++
  13445. wire |= uint64(b&0x7F) << shift
  13446. if b < 0x80 {
  13447. break
  13448. }
  13449. }
  13450. fieldNum := int32(wire >> 3)
  13451. wireType := int(wire & 0x7)
  13452. if wireType == 4 {
  13453. return fmt.Errorf("proto: ResponseCheckTx: wiretype end group for non-group")
  13454. }
  13455. if fieldNum <= 0 {
  13456. return fmt.Errorf("proto: ResponseCheckTx: illegal tag %d (wire type %d)", fieldNum, wire)
  13457. }
  13458. switch fieldNum {
  13459. case 1:
  13460. if wireType != 0 {
  13461. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  13462. }
  13463. m.Code = 0
  13464. for shift := uint(0); ; shift += 7 {
  13465. if shift >= 64 {
  13466. return ErrIntOverflowTypes
  13467. }
  13468. if iNdEx >= l {
  13469. return io.ErrUnexpectedEOF
  13470. }
  13471. b := dAtA[iNdEx]
  13472. iNdEx++
  13473. m.Code |= uint32(b&0x7F) << shift
  13474. if b < 0x80 {
  13475. break
  13476. }
  13477. }
  13478. case 2:
  13479. if wireType != 2 {
  13480. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  13481. }
  13482. var byteLen int
  13483. for shift := uint(0); ; shift += 7 {
  13484. if shift >= 64 {
  13485. return ErrIntOverflowTypes
  13486. }
  13487. if iNdEx >= l {
  13488. return io.ErrUnexpectedEOF
  13489. }
  13490. b := dAtA[iNdEx]
  13491. iNdEx++
  13492. byteLen |= int(b&0x7F) << shift
  13493. if b < 0x80 {
  13494. break
  13495. }
  13496. }
  13497. if byteLen < 0 {
  13498. return ErrInvalidLengthTypes
  13499. }
  13500. postIndex := iNdEx + byteLen
  13501. if postIndex < 0 {
  13502. return ErrInvalidLengthTypes
  13503. }
  13504. if postIndex > l {
  13505. return io.ErrUnexpectedEOF
  13506. }
  13507. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  13508. if m.Data == nil {
  13509. m.Data = []byte{}
  13510. }
  13511. iNdEx = postIndex
  13512. case 3:
  13513. if wireType != 2 {
  13514. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  13515. }
  13516. var stringLen uint64
  13517. for shift := uint(0); ; shift += 7 {
  13518. if shift >= 64 {
  13519. return ErrIntOverflowTypes
  13520. }
  13521. if iNdEx >= l {
  13522. return io.ErrUnexpectedEOF
  13523. }
  13524. b := dAtA[iNdEx]
  13525. iNdEx++
  13526. stringLen |= uint64(b&0x7F) << shift
  13527. if b < 0x80 {
  13528. break
  13529. }
  13530. }
  13531. intStringLen := int(stringLen)
  13532. if intStringLen < 0 {
  13533. return ErrInvalidLengthTypes
  13534. }
  13535. postIndex := iNdEx + intStringLen
  13536. if postIndex < 0 {
  13537. return ErrInvalidLengthTypes
  13538. }
  13539. if postIndex > l {
  13540. return io.ErrUnexpectedEOF
  13541. }
  13542. m.Log = string(dAtA[iNdEx:postIndex])
  13543. iNdEx = postIndex
  13544. case 4:
  13545. if wireType != 2 {
  13546. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  13547. }
  13548. var stringLen uint64
  13549. for shift := uint(0); ; shift += 7 {
  13550. if shift >= 64 {
  13551. return ErrIntOverflowTypes
  13552. }
  13553. if iNdEx >= l {
  13554. return io.ErrUnexpectedEOF
  13555. }
  13556. b := dAtA[iNdEx]
  13557. iNdEx++
  13558. stringLen |= uint64(b&0x7F) << shift
  13559. if b < 0x80 {
  13560. break
  13561. }
  13562. }
  13563. intStringLen := int(stringLen)
  13564. if intStringLen < 0 {
  13565. return ErrInvalidLengthTypes
  13566. }
  13567. postIndex := iNdEx + intStringLen
  13568. if postIndex < 0 {
  13569. return ErrInvalidLengthTypes
  13570. }
  13571. if postIndex > l {
  13572. return io.ErrUnexpectedEOF
  13573. }
  13574. m.Info = string(dAtA[iNdEx:postIndex])
  13575. iNdEx = postIndex
  13576. case 5:
  13577. if wireType != 0 {
  13578. return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType)
  13579. }
  13580. m.GasWanted = 0
  13581. for shift := uint(0); ; shift += 7 {
  13582. if shift >= 64 {
  13583. return ErrIntOverflowTypes
  13584. }
  13585. if iNdEx >= l {
  13586. return io.ErrUnexpectedEOF
  13587. }
  13588. b := dAtA[iNdEx]
  13589. iNdEx++
  13590. m.GasWanted |= int64(b&0x7F) << shift
  13591. if b < 0x80 {
  13592. break
  13593. }
  13594. }
  13595. case 6:
  13596. if wireType != 0 {
  13597. return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType)
  13598. }
  13599. m.GasUsed = 0
  13600. for shift := uint(0); ; shift += 7 {
  13601. if shift >= 64 {
  13602. return ErrIntOverflowTypes
  13603. }
  13604. if iNdEx >= l {
  13605. return io.ErrUnexpectedEOF
  13606. }
  13607. b := dAtA[iNdEx]
  13608. iNdEx++
  13609. m.GasUsed |= int64(b&0x7F) << shift
  13610. if b < 0x80 {
  13611. break
  13612. }
  13613. }
  13614. case 7:
  13615. if wireType != 2 {
  13616. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  13617. }
  13618. var msglen int
  13619. for shift := uint(0); ; shift += 7 {
  13620. if shift >= 64 {
  13621. return ErrIntOverflowTypes
  13622. }
  13623. if iNdEx >= l {
  13624. return io.ErrUnexpectedEOF
  13625. }
  13626. b := dAtA[iNdEx]
  13627. iNdEx++
  13628. msglen |= int(b&0x7F) << shift
  13629. if b < 0x80 {
  13630. break
  13631. }
  13632. }
  13633. if msglen < 0 {
  13634. return ErrInvalidLengthTypes
  13635. }
  13636. postIndex := iNdEx + msglen
  13637. if postIndex < 0 {
  13638. return ErrInvalidLengthTypes
  13639. }
  13640. if postIndex > l {
  13641. return io.ErrUnexpectedEOF
  13642. }
  13643. m.Events = append(m.Events, Event{})
  13644. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13645. return err
  13646. }
  13647. iNdEx = postIndex
  13648. case 8:
  13649. if wireType != 2 {
  13650. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  13651. }
  13652. var stringLen uint64
  13653. for shift := uint(0); ; shift += 7 {
  13654. if shift >= 64 {
  13655. return ErrIntOverflowTypes
  13656. }
  13657. if iNdEx >= l {
  13658. return io.ErrUnexpectedEOF
  13659. }
  13660. b := dAtA[iNdEx]
  13661. iNdEx++
  13662. stringLen |= uint64(b&0x7F) << shift
  13663. if b < 0x80 {
  13664. break
  13665. }
  13666. }
  13667. intStringLen := int(stringLen)
  13668. if intStringLen < 0 {
  13669. return ErrInvalidLengthTypes
  13670. }
  13671. postIndex := iNdEx + intStringLen
  13672. if postIndex < 0 {
  13673. return ErrInvalidLengthTypes
  13674. }
  13675. if postIndex > l {
  13676. return io.ErrUnexpectedEOF
  13677. }
  13678. m.Codespace = string(dAtA[iNdEx:postIndex])
  13679. iNdEx = postIndex
  13680. case 9:
  13681. if wireType != 2 {
  13682. return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType)
  13683. }
  13684. var stringLen uint64
  13685. for shift := uint(0); ; shift += 7 {
  13686. if shift >= 64 {
  13687. return ErrIntOverflowTypes
  13688. }
  13689. if iNdEx >= l {
  13690. return io.ErrUnexpectedEOF
  13691. }
  13692. b := dAtA[iNdEx]
  13693. iNdEx++
  13694. stringLen |= uint64(b&0x7F) << shift
  13695. if b < 0x80 {
  13696. break
  13697. }
  13698. }
  13699. intStringLen := int(stringLen)
  13700. if intStringLen < 0 {
  13701. return ErrInvalidLengthTypes
  13702. }
  13703. postIndex := iNdEx + intStringLen
  13704. if postIndex < 0 {
  13705. return ErrInvalidLengthTypes
  13706. }
  13707. if postIndex > l {
  13708. return io.ErrUnexpectedEOF
  13709. }
  13710. m.Sender = string(dAtA[iNdEx:postIndex])
  13711. iNdEx = postIndex
  13712. case 10:
  13713. if wireType != 0 {
  13714. return fmt.Errorf("proto: wrong wireType = %d for field Priority", wireType)
  13715. }
  13716. m.Priority = 0
  13717. for shift := uint(0); ; shift += 7 {
  13718. if shift >= 64 {
  13719. return ErrIntOverflowTypes
  13720. }
  13721. if iNdEx >= l {
  13722. return io.ErrUnexpectedEOF
  13723. }
  13724. b := dAtA[iNdEx]
  13725. iNdEx++
  13726. m.Priority |= int64(b&0x7F) << shift
  13727. if b < 0x80 {
  13728. break
  13729. }
  13730. }
  13731. case 11:
  13732. if wireType != 2 {
  13733. return fmt.Errorf("proto: wrong wireType = %d for field MempoolError", wireType)
  13734. }
  13735. var stringLen uint64
  13736. for shift := uint(0); ; shift += 7 {
  13737. if shift >= 64 {
  13738. return ErrIntOverflowTypes
  13739. }
  13740. if iNdEx >= l {
  13741. return io.ErrUnexpectedEOF
  13742. }
  13743. b := dAtA[iNdEx]
  13744. iNdEx++
  13745. stringLen |= uint64(b&0x7F) << shift
  13746. if b < 0x80 {
  13747. break
  13748. }
  13749. }
  13750. intStringLen := int(stringLen)
  13751. if intStringLen < 0 {
  13752. return ErrInvalidLengthTypes
  13753. }
  13754. postIndex := iNdEx + intStringLen
  13755. if postIndex < 0 {
  13756. return ErrInvalidLengthTypes
  13757. }
  13758. if postIndex > l {
  13759. return io.ErrUnexpectedEOF
  13760. }
  13761. m.MempoolError = string(dAtA[iNdEx:postIndex])
  13762. iNdEx = postIndex
  13763. default:
  13764. iNdEx = preIndex
  13765. skippy, err := skipTypes(dAtA[iNdEx:])
  13766. if err != nil {
  13767. return err
  13768. }
  13769. if (skippy < 0) || (iNdEx+skippy) < 0 {
  13770. return ErrInvalidLengthTypes
  13771. }
  13772. if (iNdEx + skippy) > l {
  13773. return io.ErrUnexpectedEOF
  13774. }
  13775. iNdEx += skippy
  13776. }
  13777. }
  13778. if iNdEx > l {
  13779. return io.ErrUnexpectedEOF
  13780. }
  13781. return nil
  13782. }
  13783. func (m *ResponseDeliverTx) Unmarshal(dAtA []byte) error {
  13784. l := len(dAtA)
  13785. iNdEx := 0
  13786. for iNdEx < l {
  13787. preIndex := iNdEx
  13788. var wire uint64
  13789. for shift := uint(0); ; shift += 7 {
  13790. if shift >= 64 {
  13791. return ErrIntOverflowTypes
  13792. }
  13793. if iNdEx >= l {
  13794. return io.ErrUnexpectedEOF
  13795. }
  13796. b := dAtA[iNdEx]
  13797. iNdEx++
  13798. wire |= uint64(b&0x7F) << shift
  13799. if b < 0x80 {
  13800. break
  13801. }
  13802. }
  13803. fieldNum := int32(wire >> 3)
  13804. wireType := int(wire & 0x7)
  13805. if wireType == 4 {
  13806. return fmt.Errorf("proto: ResponseDeliverTx: wiretype end group for non-group")
  13807. }
  13808. if fieldNum <= 0 {
  13809. return fmt.Errorf("proto: ResponseDeliverTx: illegal tag %d (wire type %d)", fieldNum, wire)
  13810. }
  13811. switch fieldNum {
  13812. case 1:
  13813. if wireType != 0 {
  13814. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  13815. }
  13816. m.Code = 0
  13817. for shift := uint(0); ; shift += 7 {
  13818. if shift >= 64 {
  13819. return ErrIntOverflowTypes
  13820. }
  13821. if iNdEx >= l {
  13822. return io.ErrUnexpectedEOF
  13823. }
  13824. b := dAtA[iNdEx]
  13825. iNdEx++
  13826. m.Code |= uint32(b&0x7F) << shift
  13827. if b < 0x80 {
  13828. break
  13829. }
  13830. }
  13831. case 2:
  13832. if wireType != 2 {
  13833. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  13834. }
  13835. var byteLen int
  13836. for shift := uint(0); ; shift += 7 {
  13837. if shift >= 64 {
  13838. return ErrIntOverflowTypes
  13839. }
  13840. if iNdEx >= l {
  13841. return io.ErrUnexpectedEOF
  13842. }
  13843. b := dAtA[iNdEx]
  13844. iNdEx++
  13845. byteLen |= int(b&0x7F) << shift
  13846. if b < 0x80 {
  13847. break
  13848. }
  13849. }
  13850. if byteLen < 0 {
  13851. return ErrInvalidLengthTypes
  13852. }
  13853. postIndex := iNdEx + byteLen
  13854. if postIndex < 0 {
  13855. return ErrInvalidLengthTypes
  13856. }
  13857. if postIndex > l {
  13858. return io.ErrUnexpectedEOF
  13859. }
  13860. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  13861. if m.Data == nil {
  13862. m.Data = []byte{}
  13863. }
  13864. iNdEx = postIndex
  13865. case 3:
  13866. if wireType != 2 {
  13867. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  13868. }
  13869. var stringLen uint64
  13870. for shift := uint(0); ; shift += 7 {
  13871. if shift >= 64 {
  13872. return ErrIntOverflowTypes
  13873. }
  13874. if iNdEx >= l {
  13875. return io.ErrUnexpectedEOF
  13876. }
  13877. b := dAtA[iNdEx]
  13878. iNdEx++
  13879. stringLen |= uint64(b&0x7F) << shift
  13880. if b < 0x80 {
  13881. break
  13882. }
  13883. }
  13884. intStringLen := int(stringLen)
  13885. if intStringLen < 0 {
  13886. return ErrInvalidLengthTypes
  13887. }
  13888. postIndex := iNdEx + intStringLen
  13889. if postIndex < 0 {
  13890. return ErrInvalidLengthTypes
  13891. }
  13892. if postIndex > l {
  13893. return io.ErrUnexpectedEOF
  13894. }
  13895. m.Log = string(dAtA[iNdEx:postIndex])
  13896. iNdEx = postIndex
  13897. case 4:
  13898. if wireType != 2 {
  13899. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  13900. }
  13901. var stringLen uint64
  13902. for shift := uint(0); ; shift += 7 {
  13903. if shift >= 64 {
  13904. return ErrIntOverflowTypes
  13905. }
  13906. if iNdEx >= l {
  13907. return io.ErrUnexpectedEOF
  13908. }
  13909. b := dAtA[iNdEx]
  13910. iNdEx++
  13911. stringLen |= uint64(b&0x7F) << shift
  13912. if b < 0x80 {
  13913. break
  13914. }
  13915. }
  13916. intStringLen := int(stringLen)
  13917. if intStringLen < 0 {
  13918. return ErrInvalidLengthTypes
  13919. }
  13920. postIndex := iNdEx + intStringLen
  13921. if postIndex < 0 {
  13922. return ErrInvalidLengthTypes
  13923. }
  13924. if postIndex > l {
  13925. return io.ErrUnexpectedEOF
  13926. }
  13927. m.Info = string(dAtA[iNdEx:postIndex])
  13928. iNdEx = postIndex
  13929. case 5:
  13930. if wireType != 0 {
  13931. return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType)
  13932. }
  13933. m.GasWanted = 0
  13934. for shift := uint(0); ; shift += 7 {
  13935. if shift >= 64 {
  13936. return ErrIntOverflowTypes
  13937. }
  13938. if iNdEx >= l {
  13939. return io.ErrUnexpectedEOF
  13940. }
  13941. b := dAtA[iNdEx]
  13942. iNdEx++
  13943. m.GasWanted |= int64(b&0x7F) << shift
  13944. if b < 0x80 {
  13945. break
  13946. }
  13947. }
  13948. case 6:
  13949. if wireType != 0 {
  13950. return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType)
  13951. }
  13952. m.GasUsed = 0
  13953. for shift := uint(0); ; shift += 7 {
  13954. if shift >= 64 {
  13955. return ErrIntOverflowTypes
  13956. }
  13957. if iNdEx >= l {
  13958. return io.ErrUnexpectedEOF
  13959. }
  13960. b := dAtA[iNdEx]
  13961. iNdEx++
  13962. m.GasUsed |= int64(b&0x7F) << shift
  13963. if b < 0x80 {
  13964. break
  13965. }
  13966. }
  13967. case 7:
  13968. if wireType != 2 {
  13969. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  13970. }
  13971. var msglen int
  13972. for shift := uint(0); ; shift += 7 {
  13973. if shift >= 64 {
  13974. return ErrIntOverflowTypes
  13975. }
  13976. if iNdEx >= l {
  13977. return io.ErrUnexpectedEOF
  13978. }
  13979. b := dAtA[iNdEx]
  13980. iNdEx++
  13981. msglen |= int(b&0x7F) << shift
  13982. if b < 0x80 {
  13983. break
  13984. }
  13985. }
  13986. if msglen < 0 {
  13987. return ErrInvalidLengthTypes
  13988. }
  13989. postIndex := iNdEx + msglen
  13990. if postIndex < 0 {
  13991. return ErrInvalidLengthTypes
  13992. }
  13993. if postIndex > l {
  13994. return io.ErrUnexpectedEOF
  13995. }
  13996. m.Events = append(m.Events, Event{})
  13997. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13998. return err
  13999. }
  14000. iNdEx = postIndex
  14001. case 8:
  14002. if wireType != 2 {
  14003. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  14004. }
  14005. var stringLen uint64
  14006. for shift := uint(0); ; shift += 7 {
  14007. if shift >= 64 {
  14008. return ErrIntOverflowTypes
  14009. }
  14010. if iNdEx >= l {
  14011. return io.ErrUnexpectedEOF
  14012. }
  14013. b := dAtA[iNdEx]
  14014. iNdEx++
  14015. stringLen |= uint64(b&0x7F) << shift
  14016. if b < 0x80 {
  14017. break
  14018. }
  14019. }
  14020. intStringLen := int(stringLen)
  14021. if intStringLen < 0 {
  14022. return ErrInvalidLengthTypes
  14023. }
  14024. postIndex := iNdEx + intStringLen
  14025. if postIndex < 0 {
  14026. return ErrInvalidLengthTypes
  14027. }
  14028. if postIndex > l {
  14029. return io.ErrUnexpectedEOF
  14030. }
  14031. m.Codespace = string(dAtA[iNdEx:postIndex])
  14032. iNdEx = postIndex
  14033. default:
  14034. iNdEx = preIndex
  14035. skippy, err := skipTypes(dAtA[iNdEx:])
  14036. if err != nil {
  14037. return err
  14038. }
  14039. if (skippy < 0) || (iNdEx+skippy) < 0 {
  14040. return ErrInvalidLengthTypes
  14041. }
  14042. if (iNdEx + skippy) > l {
  14043. return io.ErrUnexpectedEOF
  14044. }
  14045. iNdEx += skippy
  14046. }
  14047. }
  14048. if iNdEx > l {
  14049. return io.ErrUnexpectedEOF
  14050. }
  14051. return nil
  14052. }
  14053. func (m *ResponseEndBlock) Unmarshal(dAtA []byte) error {
  14054. l := len(dAtA)
  14055. iNdEx := 0
  14056. for iNdEx < l {
  14057. preIndex := iNdEx
  14058. var wire uint64
  14059. for shift := uint(0); ; shift += 7 {
  14060. if shift >= 64 {
  14061. return ErrIntOverflowTypes
  14062. }
  14063. if iNdEx >= l {
  14064. return io.ErrUnexpectedEOF
  14065. }
  14066. b := dAtA[iNdEx]
  14067. iNdEx++
  14068. wire |= uint64(b&0x7F) << shift
  14069. if b < 0x80 {
  14070. break
  14071. }
  14072. }
  14073. fieldNum := int32(wire >> 3)
  14074. wireType := int(wire & 0x7)
  14075. if wireType == 4 {
  14076. return fmt.Errorf("proto: ResponseEndBlock: wiretype end group for non-group")
  14077. }
  14078. if fieldNum <= 0 {
  14079. return fmt.Errorf("proto: ResponseEndBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  14080. }
  14081. switch fieldNum {
  14082. case 1:
  14083. if wireType != 2 {
  14084. return fmt.Errorf("proto: wrong wireType = %d for field ValidatorUpdates", wireType)
  14085. }
  14086. var msglen int
  14087. for shift := uint(0); ; shift += 7 {
  14088. if shift >= 64 {
  14089. return ErrIntOverflowTypes
  14090. }
  14091. if iNdEx >= l {
  14092. return io.ErrUnexpectedEOF
  14093. }
  14094. b := dAtA[iNdEx]
  14095. iNdEx++
  14096. msglen |= int(b&0x7F) << shift
  14097. if b < 0x80 {
  14098. break
  14099. }
  14100. }
  14101. if msglen < 0 {
  14102. return ErrInvalidLengthTypes
  14103. }
  14104. postIndex := iNdEx + msglen
  14105. if postIndex < 0 {
  14106. return ErrInvalidLengthTypes
  14107. }
  14108. if postIndex > l {
  14109. return io.ErrUnexpectedEOF
  14110. }
  14111. m.ValidatorUpdates = append(m.ValidatorUpdates, ValidatorUpdate{})
  14112. if err := m.ValidatorUpdates[len(m.ValidatorUpdates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14113. return err
  14114. }
  14115. iNdEx = postIndex
  14116. case 2:
  14117. if wireType != 2 {
  14118. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParamUpdates", wireType)
  14119. }
  14120. var msglen int
  14121. for shift := uint(0); ; shift += 7 {
  14122. if shift >= 64 {
  14123. return ErrIntOverflowTypes
  14124. }
  14125. if iNdEx >= l {
  14126. return io.ErrUnexpectedEOF
  14127. }
  14128. b := dAtA[iNdEx]
  14129. iNdEx++
  14130. msglen |= int(b&0x7F) << shift
  14131. if b < 0x80 {
  14132. break
  14133. }
  14134. }
  14135. if msglen < 0 {
  14136. return ErrInvalidLengthTypes
  14137. }
  14138. postIndex := iNdEx + msglen
  14139. if postIndex < 0 {
  14140. return ErrInvalidLengthTypes
  14141. }
  14142. if postIndex > l {
  14143. return io.ErrUnexpectedEOF
  14144. }
  14145. if m.ConsensusParamUpdates == nil {
  14146. m.ConsensusParamUpdates = &types1.ConsensusParams{}
  14147. }
  14148. if err := m.ConsensusParamUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14149. return err
  14150. }
  14151. iNdEx = postIndex
  14152. case 3:
  14153. if wireType != 2 {
  14154. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  14155. }
  14156. var msglen int
  14157. for shift := uint(0); ; shift += 7 {
  14158. if shift >= 64 {
  14159. return ErrIntOverflowTypes
  14160. }
  14161. if iNdEx >= l {
  14162. return io.ErrUnexpectedEOF
  14163. }
  14164. b := dAtA[iNdEx]
  14165. iNdEx++
  14166. msglen |= int(b&0x7F) << shift
  14167. if b < 0x80 {
  14168. break
  14169. }
  14170. }
  14171. if msglen < 0 {
  14172. return ErrInvalidLengthTypes
  14173. }
  14174. postIndex := iNdEx + msglen
  14175. if postIndex < 0 {
  14176. return ErrInvalidLengthTypes
  14177. }
  14178. if postIndex > l {
  14179. return io.ErrUnexpectedEOF
  14180. }
  14181. m.Events = append(m.Events, Event{})
  14182. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14183. return err
  14184. }
  14185. iNdEx = postIndex
  14186. default:
  14187. iNdEx = preIndex
  14188. skippy, err := skipTypes(dAtA[iNdEx:])
  14189. if err != nil {
  14190. return err
  14191. }
  14192. if (skippy < 0) || (iNdEx+skippy) < 0 {
  14193. return ErrInvalidLengthTypes
  14194. }
  14195. if (iNdEx + skippy) > l {
  14196. return io.ErrUnexpectedEOF
  14197. }
  14198. iNdEx += skippy
  14199. }
  14200. }
  14201. if iNdEx > l {
  14202. return io.ErrUnexpectedEOF
  14203. }
  14204. return nil
  14205. }
  14206. func (m *ResponseCommit) Unmarshal(dAtA []byte) error {
  14207. l := len(dAtA)
  14208. iNdEx := 0
  14209. for iNdEx < l {
  14210. preIndex := iNdEx
  14211. var wire uint64
  14212. for shift := uint(0); ; shift += 7 {
  14213. if shift >= 64 {
  14214. return ErrIntOverflowTypes
  14215. }
  14216. if iNdEx >= l {
  14217. return io.ErrUnexpectedEOF
  14218. }
  14219. b := dAtA[iNdEx]
  14220. iNdEx++
  14221. wire |= uint64(b&0x7F) << shift
  14222. if b < 0x80 {
  14223. break
  14224. }
  14225. }
  14226. fieldNum := int32(wire >> 3)
  14227. wireType := int(wire & 0x7)
  14228. if wireType == 4 {
  14229. return fmt.Errorf("proto: ResponseCommit: wiretype end group for non-group")
  14230. }
  14231. if fieldNum <= 0 {
  14232. return fmt.Errorf("proto: ResponseCommit: illegal tag %d (wire type %d)", fieldNum, wire)
  14233. }
  14234. switch fieldNum {
  14235. case 2:
  14236. if wireType != 2 {
  14237. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  14238. }
  14239. var byteLen int
  14240. for shift := uint(0); ; shift += 7 {
  14241. if shift >= 64 {
  14242. return ErrIntOverflowTypes
  14243. }
  14244. if iNdEx >= l {
  14245. return io.ErrUnexpectedEOF
  14246. }
  14247. b := dAtA[iNdEx]
  14248. iNdEx++
  14249. byteLen |= int(b&0x7F) << shift
  14250. if b < 0x80 {
  14251. break
  14252. }
  14253. }
  14254. if byteLen < 0 {
  14255. return ErrInvalidLengthTypes
  14256. }
  14257. postIndex := iNdEx + byteLen
  14258. if postIndex < 0 {
  14259. return ErrInvalidLengthTypes
  14260. }
  14261. if postIndex > l {
  14262. return io.ErrUnexpectedEOF
  14263. }
  14264. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  14265. if m.Data == nil {
  14266. m.Data = []byte{}
  14267. }
  14268. iNdEx = postIndex
  14269. case 3:
  14270. if wireType != 0 {
  14271. return fmt.Errorf("proto: wrong wireType = %d for field RetainHeight", wireType)
  14272. }
  14273. m.RetainHeight = 0
  14274. for shift := uint(0); ; shift += 7 {
  14275. if shift >= 64 {
  14276. return ErrIntOverflowTypes
  14277. }
  14278. if iNdEx >= l {
  14279. return io.ErrUnexpectedEOF
  14280. }
  14281. b := dAtA[iNdEx]
  14282. iNdEx++
  14283. m.RetainHeight |= int64(b&0x7F) << shift
  14284. if b < 0x80 {
  14285. break
  14286. }
  14287. }
  14288. default:
  14289. iNdEx = preIndex
  14290. skippy, err := skipTypes(dAtA[iNdEx:])
  14291. if err != nil {
  14292. return err
  14293. }
  14294. if (skippy < 0) || (iNdEx+skippy) < 0 {
  14295. return ErrInvalidLengthTypes
  14296. }
  14297. if (iNdEx + skippy) > l {
  14298. return io.ErrUnexpectedEOF
  14299. }
  14300. iNdEx += skippy
  14301. }
  14302. }
  14303. if iNdEx > l {
  14304. return io.ErrUnexpectedEOF
  14305. }
  14306. return nil
  14307. }
  14308. func (m *ResponseListSnapshots) Unmarshal(dAtA []byte) error {
  14309. l := len(dAtA)
  14310. iNdEx := 0
  14311. for iNdEx < l {
  14312. preIndex := iNdEx
  14313. var wire uint64
  14314. for shift := uint(0); ; shift += 7 {
  14315. if shift >= 64 {
  14316. return ErrIntOverflowTypes
  14317. }
  14318. if iNdEx >= l {
  14319. return io.ErrUnexpectedEOF
  14320. }
  14321. b := dAtA[iNdEx]
  14322. iNdEx++
  14323. wire |= uint64(b&0x7F) << shift
  14324. if b < 0x80 {
  14325. break
  14326. }
  14327. }
  14328. fieldNum := int32(wire >> 3)
  14329. wireType := int(wire & 0x7)
  14330. if wireType == 4 {
  14331. return fmt.Errorf("proto: ResponseListSnapshots: wiretype end group for non-group")
  14332. }
  14333. if fieldNum <= 0 {
  14334. return fmt.Errorf("proto: ResponseListSnapshots: illegal tag %d (wire type %d)", fieldNum, wire)
  14335. }
  14336. switch fieldNum {
  14337. case 1:
  14338. if wireType != 2 {
  14339. return fmt.Errorf("proto: wrong wireType = %d for field Snapshots", wireType)
  14340. }
  14341. var msglen int
  14342. for shift := uint(0); ; shift += 7 {
  14343. if shift >= 64 {
  14344. return ErrIntOverflowTypes
  14345. }
  14346. if iNdEx >= l {
  14347. return io.ErrUnexpectedEOF
  14348. }
  14349. b := dAtA[iNdEx]
  14350. iNdEx++
  14351. msglen |= int(b&0x7F) << shift
  14352. if b < 0x80 {
  14353. break
  14354. }
  14355. }
  14356. if msglen < 0 {
  14357. return ErrInvalidLengthTypes
  14358. }
  14359. postIndex := iNdEx + msglen
  14360. if postIndex < 0 {
  14361. return ErrInvalidLengthTypes
  14362. }
  14363. if postIndex > l {
  14364. return io.ErrUnexpectedEOF
  14365. }
  14366. m.Snapshots = append(m.Snapshots, &Snapshot{})
  14367. if err := m.Snapshots[len(m.Snapshots)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14368. return err
  14369. }
  14370. iNdEx = postIndex
  14371. default:
  14372. iNdEx = preIndex
  14373. skippy, err := skipTypes(dAtA[iNdEx:])
  14374. if err != nil {
  14375. return err
  14376. }
  14377. if (skippy < 0) || (iNdEx+skippy) < 0 {
  14378. return ErrInvalidLengthTypes
  14379. }
  14380. if (iNdEx + skippy) > l {
  14381. return io.ErrUnexpectedEOF
  14382. }
  14383. iNdEx += skippy
  14384. }
  14385. }
  14386. if iNdEx > l {
  14387. return io.ErrUnexpectedEOF
  14388. }
  14389. return nil
  14390. }
  14391. func (m *ResponseOfferSnapshot) Unmarshal(dAtA []byte) error {
  14392. l := len(dAtA)
  14393. iNdEx := 0
  14394. for iNdEx < l {
  14395. preIndex := iNdEx
  14396. var wire uint64
  14397. for shift := uint(0); ; shift += 7 {
  14398. if shift >= 64 {
  14399. return ErrIntOverflowTypes
  14400. }
  14401. if iNdEx >= l {
  14402. return io.ErrUnexpectedEOF
  14403. }
  14404. b := dAtA[iNdEx]
  14405. iNdEx++
  14406. wire |= uint64(b&0x7F) << shift
  14407. if b < 0x80 {
  14408. break
  14409. }
  14410. }
  14411. fieldNum := int32(wire >> 3)
  14412. wireType := int(wire & 0x7)
  14413. if wireType == 4 {
  14414. return fmt.Errorf("proto: ResponseOfferSnapshot: wiretype end group for non-group")
  14415. }
  14416. if fieldNum <= 0 {
  14417. return fmt.Errorf("proto: ResponseOfferSnapshot: illegal tag %d (wire type %d)", fieldNum, wire)
  14418. }
  14419. switch fieldNum {
  14420. case 1:
  14421. if wireType != 0 {
  14422. return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
  14423. }
  14424. m.Result = 0
  14425. for shift := uint(0); ; shift += 7 {
  14426. if shift >= 64 {
  14427. return ErrIntOverflowTypes
  14428. }
  14429. if iNdEx >= l {
  14430. return io.ErrUnexpectedEOF
  14431. }
  14432. b := dAtA[iNdEx]
  14433. iNdEx++
  14434. m.Result |= ResponseOfferSnapshot_Result(b&0x7F) << shift
  14435. if b < 0x80 {
  14436. break
  14437. }
  14438. }
  14439. default:
  14440. iNdEx = preIndex
  14441. skippy, err := skipTypes(dAtA[iNdEx:])
  14442. if err != nil {
  14443. return err
  14444. }
  14445. if (skippy < 0) || (iNdEx+skippy) < 0 {
  14446. return ErrInvalidLengthTypes
  14447. }
  14448. if (iNdEx + skippy) > l {
  14449. return io.ErrUnexpectedEOF
  14450. }
  14451. iNdEx += skippy
  14452. }
  14453. }
  14454. if iNdEx > l {
  14455. return io.ErrUnexpectedEOF
  14456. }
  14457. return nil
  14458. }
  14459. func (m *ResponseLoadSnapshotChunk) Unmarshal(dAtA []byte) error {
  14460. l := len(dAtA)
  14461. iNdEx := 0
  14462. for iNdEx < l {
  14463. preIndex := iNdEx
  14464. var wire uint64
  14465. for shift := uint(0); ; shift += 7 {
  14466. if shift >= 64 {
  14467. return ErrIntOverflowTypes
  14468. }
  14469. if iNdEx >= l {
  14470. return io.ErrUnexpectedEOF
  14471. }
  14472. b := dAtA[iNdEx]
  14473. iNdEx++
  14474. wire |= uint64(b&0x7F) << shift
  14475. if b < 0x80 {
  14476. break
  14477. }
  14478. }
  14479. fieldNum := int32(wire >> 3)
  14480. wireType := int(wire & 0x7)
  14481. if wireType == 4 {
  14482. return fmt.Errorf("proto: ResponseLoadSnapshotChunk: wiretype end group for non-group")
  14483. }
  14484. if fieldNum <= 0 {
  14485. return fmt.Errorf("proto: ResponseLoadSnapshotChunk: illegal tag %d (wire type %d)", fieldNum, wire)
  14486. }
  14487. switch fieldNum {
  14488. case 1:
  14489. if wireType != 2 {
  14490. return fmt.Errorf("proto: wrong wireType = %d for field Chunk", wireType)
  14491. }
  14492. var byteLen int
  14493. for shift := uint(0); ; shift += 7 {
  14494. if shift >= 64 {
  14495. return ErrIntOverflowTypes
  14496. }
  14497. if iNdEx >= l {
  14498. return io.ErrUnexpectedEOF
  14499. }
  14500. b := dAtA[iNdEx]
  14501. iNdEx++
  14502. byteLen |= int(b&0x7F) << shift
  14503. if b < 0x80 {
  14504. break
  14505. }
  14506. }
  14507. if byteLen < 0 {
  14508. return ErrInvalidLengthTypes
  14509. }
  14510. postIndex := iNdEx + byteLen
  14511. if postIndex < 0 {
  14512. return ErrInvalidLengthTypes
  14513. }
  14514. if postIndex > l {
  14515. return io.ErrUnexpectedEOF
  14516. }
  14517. m.Chunk = append(m.Chunk[:0], dAtA[iNdEx:postIndex]...)
  14518. if m.Chunk == nil {
  14519. m.Chunk = []byte{}
  14520. }
  14521. iNdEx = postIndex
  14522. default:
  14523. iNdEx = preIndex
  14524. skippy, err := skipTypes(dAtA[iNdEx:])
  14525. if err != nil {
  14526. return err
  14527. }
  14528. if (skippy < 0) || (iNdEx+skippy) < 0 {
  14529. return ErrInvalidLengthTypes
  14530. }
  14531. if (iNdEx + skippy) > l {
  14532. return io.ErrUnexpectedEOF
  14533. }
  14534. iNdEx += skippy
  14535. }
  14536. }
  14537. if iNdEx > l {
  14538. return io.ErrUnexpectedEOF
  14539. }
  14540. return nil
  14541. }
  14542. func (m *ResponseApplySnapshotChunk) Unmarshal(dAtA []byte) error {
  14543. l := len(dAtA)
  14544. iNdEx := 0
  14545. for iNdEx < l {
  14546. preIndex := iNdEx
  14547. var wire uint64
  14548. for shift := uint(0); ; shift += 7 {
  14549. if shift >= 64 {
  14550. return ErrIntOverflowTypes
  14551. }
  14552. if iNdEx >= l {
  14553. return io.ErrUnexpectedEOF
  14554. }
  14555. b := dAtA[iNdEx]
  14556. iNdEx++
  14557. wire |= uint64(b&0x7F) << shift
  14558. if b < 0x80 {
  14559. break
  14560. }
  14561. }
  14562. fieldNum := int32(wire >> 3)
  14563. wireType := int(wire & 0x7)
  14564. if wireType == 4 {
  14565. return fmt.Errorf("proto: ResponseApplySnapshotChunk: wiretype end group for non-group")
  14566. }
  14567. if fieldNum <= 0 {
  14568. return fmt.Errorf("proto: ResponseApplySnapshotChunk: illegal tag %d (wire type %d)", fieldNum, wire)
  14569. }
  14570. switch fieldNum {
  14571. case 1:
  14572. if wireType != 0 {
  14573. return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
  14574. }
  14575. m.Result = 0
  14576. for shift := uint(0); ; shift += 7 {
  14577. if shift >= 64 {
  14578. return ErrIntOverflowTypes
  14579. }
  14580. if iNdEx >= l {
  14581. return io.ErrUnexpectedEOF
  14582. }
  14583. b := dAtA[iNdEx]
  14584. iNdEx++
  14585. m.Result |= ResponseApplySnapshotChunk_Result(b&0x7F) << shift
  14586. if b < 0x80 {
  14587. break
  14588. }
  14589. }
  14590. case 2:
  14591. if wireType == 0 {
  14592. var v uint32
  14593. for shift := uint(0); ; shift += 7 {
  14594. if shift >= 64 {
  14595. return ErrIntOverflowTypes
  14596. }
  14597. if iNdEx >= l {
  14598. return io.ErrUnexpectedEOF
  14599. }
  14600. b := dAtA[iNdEx]
  14601. iNdEx++
  14602. v |= uint32(b&0x7F) << shift
  14603. if b < 0x80 {
  14604. break
  14605. }
  14606. }
  14607. m.RefetchChunks = append(m.RefetchChunks, v)
  14608. } else if wireType == 2 {
  14609. var packedLen int
  14610. for shift := uint(0); ; shift += 7 {
  14611. if shift >= 64 {
  14612. return ErrIntOverflowTypes
  14613. }
  14614. if iNdEx >= l {
  14615. return io.ErrUnexpectedEOF
  14616. }
  14617. b := dAtA[iNdEx]
  14618. iNdEx++
  14619. packedLen |= int(b&0x7F) << shift
  14620. if b < 0x80 {
  14621. break
  14622. }
  14623. }
  14624. if packedLen < 0 {
  14625. return ErrInvalidLengthTypes
  14626. }
  14627. postIndex := iNdEx + packedLen
  14628. if postIndex < 0 {
  14629. return ErrInvalidLengthTypes
  14630. }
  14631. if postIndex > l {
  14632. return io.ErrUnexpectedEOF
  14633. }
  14634. var elementCount int
  14635. var count int
  14636. for _, integer := range dAtA[iNdEx:postIndex] {
  14637. if integer < 128 {
  14638. count++
  14639. }
  14640. }
  14641. elementCount = count
  14642. if elementCount != 0 && len(m.RefetchChunks) == 0 {
  14643. m.RefetchChunks = make([]uint32, 0, elementCount)
  14644. }
  14645. for iNdEx < postIndex {
  14646. var v uint32
  14647. for shift := uint(0); ; shift += 7 {
  14648. if shift >= 64 {
  14649. return ErrIntOverflowTypes
  14650. }
  14651. if iNdEx >= l {
  14652. return io.ErrUnexpectedEOF
  14653. }
  14654. b := dAtA[iNdEx]
  14655. iNdEx++
  14656. v |= uint32(b&0x7F) << shift
  14657. if b < 0x80 {
  14658. break
  14659. }
  14660. }
  14661. m.RefetchChunks = append(m.RefetchChunks, v)
  14662. }
  14663. } else {
  14664. return fmt.Errorf("proto: wrong wireType = %d for field RefetchChunks", wireType)
  14665. }
  14666. case 3:
  14667. if wireType != 2 {
  14668. return fmt.Errorf("proto: wrong wireType = %d for field RejectSenders", wireType)
  14669. }
  14670. var stringLen uint64
  14671. for shift := uint(0); ; shift += 7 {
  14672. if shift >= 64 {
  14673. return ErrIntOverflowTypes
  14674. }
  14675. if iNdEx >= l {
  14676. return io.ErrUnexpectedEOF
  14677. }
  14678. b := dAtA[iNdEx]
  14679. iNdEx++
  14680. stringLen |= uint64(b&0x7F) << shift
  14681. if b < 0x80 {
  14682. break
  14683. }
  14684. }
  14685. intStringLen := int(stringLen)
  14686. if intStringLen < 0 {
  14687. return ErrInvalidLengthTypes
  14688. }
  14689. postIndex := iNdEx + intStringLen
  14690. if postIndex < 0 {
  14691. return ErrInvalidLengthTypes
  14692. }
  14693. if postIndex > l {
  14694. return io.ErrUnexpectedEOF
  14695. }
  14696. m.RejectSenders = append(m.RejectSenders, string(dAtA[iNdEx:postIndex]))
  14697. iNdEx = postIndex
  14698. default:
  14699. iNdEx = preIndex
  14700. skippy, err := skipTypes(dAtA[iNdEx:])
  14701. if err != nil {
  14702. return err
  14703. }
  14704. if (skippy < 0) || (iNdEx+skippy) < 0 {
  14705. return ErrInvalidLengthTypes
  14706. }
  14707. if (iNdEx + skippy) > l {
  14708. return io.ErrUnexpectedEOF
  14709. }
  14710. iNdEx += skippy
  14711. }
  14712. }
  14713. if iNdEx > l {
  14714. return io.ErrUnexpectedEOF
  14715. }
  14716. return nil
  14717. }
  14718. func (m *ResponseExtendVote) Unmarshal(dAtA []byte) error {
  14719. l := len(dAtA)
  14720. iNdEx := 0
  14721. for iNdEx < l {
  14722. preIndex := iNdEx
  14723. var wire uint64
  14724. for shift := uint(0); ; shift += 7 {
  14725. if shift >= 64 {
  14726. return ErrIntOverflowTypes
  14727. }
  14728. if iNdEx >= l {
  14729. return io.ErrUnexpectedEOF
  14730. }
  14731. b := dAtA[iNdEx]
  14732. iNdEx++
  14733. wire |= uint64(b&0x7F) << shift
  14734. if b < 0x80 {
  14735. break
  14736. }
  14737. }
  14738. fieldNum := int32(wire >> 3)
  14739. wireType := int(wire & 0x7)
  14740. if wireType == 4 {
  14741. return fmt.Errorf("proto: ResponseExtendVote: wiretype end group for non-group")
  14742. }
  14743. if fieldNum <= 0 {
  14744. return fmt.Errorf("proto: ResponseExtendVote: illegal tag %d (wire type %d)", fieldNum, wire)
  14745. }
  14746. switch fieldNum {
  14747. case 1:
  14748. if wireType != 2 {
  14749. return fmt.Errorf("proto: wrong wireType = %d for field VoteExtension", wireType)
  14750. }
  14751. var msglen int
  14752. for shift := uint(0); ; shift += 7 {
  14753. if shift >= 64 {
  14754. return ErrIntOverflowTypes
  14755. }
  14756. if iNdEx >= l {
  14757. return io.ErrUnexpectedEOF
  14758. }
  14759. b := dAtA[iNdEx]
  14760. iNdEx++
  14761. msglen |= int(b&0x7F) << shift
  14762. if b < 0x80 {
  14763. break
  14764. }
  14765. }
  14766. if msglen < 0 {
  14767. return ErrInvalidLengthTypes
  14768. }
  14769. postIndex := iNdEx + msglen
  14770. if postIndex < 0 {
  14771. return ErrInvalidLengthTypes
  14772. }
  14773. if postIndex > l {
  14774. return io.ErrUnexpectedEOF
  14775. }
  14776. if m.VoteExtension == nil {
  14777. m.VoteExtension = &types1.VoteExtension{}
  14778. }
  14779. if err := m.VoteExtension.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14780. return err
  14781. }
  14782. iNdEx = postIndex
  14783. default:
  14784. iNdEx = preIndex
  14785. skippy, err := skipTypes(dAtA[iNdEx:])
  14786. if err != nil {
  14787. return err
  14788. }
  14789. if (skippy < 0) || (iNdEx+skippy) < 0 {
  14790. return ErrInvalidLengthTypes
  14791. }
  14792. if (iNdEx + skippy) > l {
  14793. return io.ErrUnexpectedEOF
  14794. }
  14795. iNdEx += skippy
  14796. }
  14797. }
  14798. if iNdEx > l {
  14799. return io.ErrUnexpectedEOF
  14800. }
  14801. return nil
  14802. }
  14803. func (m *ResponseVerifyVoteExtension) Unmarshal(dAtA []byte) error {
  14804. l := len(dAtA)
  14805. iNdEx := 0
  14806. for iNdEx < l {
  14807. preIndex := iNdEx
  14808. var wire uint64
  14809. for shift := uint(0); ; shift += 7 {
  14810. if shift >= 64 {
  14811. return ErrIntOverflowTypes
  14812. }
  14813. if iNdEx >= l {
  14814. return io.ErrUnexpectedEOF
  14815. }
  14816. b := dAtA[iNdEx]
  14817. iNdEx++
  14818. wire |= uint64(b&0x7F) << shift
  14819. if b < 0x80 {
  14820. break
  14821. }
  14822. }
  14823. fieldNum := int32(wire >> 3)
  14824. wireType := int(wire & 0x7)
  14825. if wireType == 4 {
  14826. return fmt.Errorf("proto: ResponseVerifyVoteExtension: wiretype end group for non-group")
  14827. }
  14828. if fieldNum <= 0 {
  14829. return fmt.Errorf("proto: ResponseVerifyVoteExtension: illegal tag %d (wire type %d)", fieldNum, wire)
  14830. }
  14831. switch fieldNum {
  14832. case 1:
  14833. if wireType != 0 {
  14834. return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
  14835. }
  14836. m.Result = 0
  14837. for shift := uint(0); ; shift += 7 {
  14838. if shift >= 64 {
  14839. return ErrIntOverflowTypes
  14840. }
  14841. if iNdEx >= l {
  14842. return io.ErrUnexpectedEOF
  14843. }
  14844. b := dAtA[iNdEx]
  14845. iNdEx++
  14846. m.Result |= ResponseVerifyVoteExtension_Result(b&0x7F) << shift
  14847. if b < 0x80 {
  14848. break
  14849. }
  14850. }
  14851. default:
  14852. iNdEx = preIndex
  14853. skippy, err := skipTypes(dAtA[iNdEx:])
  14854. if err != nil {
  14855. return err
  14856. }
  14857. if (skippy < 0) || (iNdEx+skippy) < 0 {
  14858. return ErrInvalidLengthTypes
  14859. }
  14860. if (iNdEx + skippy) > l {
  14861. return io.ErrUnexpectedEOF
  14862. }
  14863. iNdEx += skippy
  14864. }
  14865. }
  14866. if iNdEx > l {
  14867. return io.ErrUnexpectedEOF
  14868. }
  14869. return nil
  14870. }
  14871. func (m *ResponsePrepareProposal) Unmarshal(dAtA []byte) error {
  14872. l := len(dAtA)
  14873. iNdEx := 0
  14874. for iNdEx < l {
  14875. preIndex := iNdEx
  14876. var wire uint64
  14877. for shift := uint(0); ; shift += 7 {
  14878. if shift >= 64 {
  14879. return ErrIntOverflowTypes
  14880. }
  14881. if iNdEx >= l {
  14882. return io.ErrUnexpectedEOF
  14883. }
  14884. b := dAtA[iNdEx]
  14885. iNdEx++
  14886. wire |= uint64(b&0x7F) << shift
  14887. if b < 0x80 {
  14888. break
  14889. }
  14890. }
  14891. fieldNum := int32(wire >> 3)
  14892. wireType := int(wire & 0x7)
  14893. if wireType == 4 {
  14894. return fmt.Errorf("proto: ResponsePrepareProposal: wiretype end group for non-group")
  14895. }
  14896. if fieldNum <= 0 {
  14897. return fmt.Errorf("proto: ResponsePrepareProposal: illegal tag %d (wire type %d)", fieldNum, wire)
  14898. }
  14899. switch fieldNum {
  14900. case 1:
  14901. if wireType != 2 {
  14902. return fmt.Errorf("proto: wrong wireType = %d for field BlockData", wireType)
  14903. }
  14904. var byteLen int
  14905. for shift := uint(0); ; shift += 7 {
  14906. if shift >= 64 {
  14907. return ErrIntOverflowTypes
  14908. }
  14909. if iNdEx >= l {
  14910. return io.ErrUnexpectedEOF
  14911. }
  14912. b := dAtA[iNdEx]
  14913. iNdEx++
  14914. byteLen |= int(b&0x7F) << shift
  14915. if b < 0x80 {
  14916. break
  14917. }
  14918. }
  14919. if byteLen < 0 {
  14920. return ErrInvalidLengthTypes
  14921. }
  14922. postIndex := iNdEx + byteLen
  14923. if postIndex < 0 {
  14924. return ErrInvalidLengthTypes
  14925. }
  14926. if postIndex > l {
  14927. return io.ErrUnexpectedEOF
  14928. }
  14929. m.BlockData = append(m.BlockData, make([]byte, postIndex-iNdEx))
  14930. copy(m.BlockData[len(m.BlockData)-1], dAtA[iNdEx:postIndex])
  14931. iNdEx = postIndex
  14932. default:
  14933. iNdEx = preIndex
  14934. skippy, err := skipTypes(dAtA[iNdEx:])
  14935. if err != nil {
  14936. return err
  14937. }
  14938. if (skippy < 0) || (iNdEx+skippy) < 0 {
  14939. return ErrInvalidLengthTypes
  14940. }
  14941. if (iNdEx + skippy) > l {
  14942. return io.ErrUnexpectedEOF
  14943. }
  14944. iNdEx += skippy
  14945. }
  14946. }
  14947. if iNdEx > l {
  14948. return io.ErrUnexpectedEOF
  14949. }
  14950. return nil
  14951. }
  14952. func (m *ResponseProcessProposal) Unmarshal(dAtA []byte) error {
  14953. l := len(dAtA)
  14954. iNdEx := 0
  14955. for iNdEx < l {
  14956. preIndex := iNdEx
  14957. var wire uint64
  14958. for shift := uint(0); ; shift += 7 {
  14959. if shift >= 64 {
  14960. return ErrIntOverflowTypes
  14961. }
  14962. if iNdEx >= l {
  14963. return io.ErrUnexpectedEOF
  14964. }
  14965. b := dAtA[iNdEx]
  14966. iNdEx++
  14967. wire |= uint64(b&0x7F) << shift
  14968. if b < 0x80 {
  14969. break
  14970. }
  14971. }
  14972. fieldNum := int32(wire >> 3)
  14973. wireType := int(wire & 0x7)
  14974. if wireType == 4 {
  14975. return fmt.Errorf("proto: ResponseProcessProposal: wiretype end group for non-group")
  14976. }
  14977. if fieldNum <= 0 {
  14978. return fmt.Errorf("proto: ResponseProcessProposal: illegal tag %d (wire type %d)", fieldNum, wire)
  14979. }
  14980. switch fieldNum {
  14981. case 1:
  14982. if wireType != 0 {
  14983. return fmt.Errorf("proto: wrong wireType = %d for field Accept", wireType)
  14984. }
  14985. var v int
  14986. for shift := uint(0); ; shift += 7 {
  14987. if shift >= 64 {
  14988. return ErrIntOverflowTypes
  14989. }
  14990. if iNdEx >= l {
  14991. return io.ErrUnexpectedEOF
  14992. }
  14993. b := dAtA[iNdEx]
  14994. iNdEx++
  14995. v |= int(b&0x7F) << shift
  14996. if b < 0x80 {
  14997. break
  14998. }
  14999. }
  15000. m.Accept = bool(v != 0)
  15001. case 2:
  15002. if wireType != 2 {
  15003. return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType)
  15004. }
  15005. var byteLen int
  15006. for shift := uint(0); ; shift += 7 {
  15007. if shift >= 64 {
  15008. return ErrIntOverflowTypes
  15009. }
  15010. if iNdEx >= l {
  15011. return io.ErrUnexpectedEOF
  15012. }
  15013. b := dAtA[iNdEx]
  15014. iNdEx++
  15015. byteLen |= int(b&0x7F) << shift
  15016. if b < 0x80 {
  15017. break
  15018. }
  15019. }
  15020. if byteLen < 0 {
  15021. return ErrInvalidLengthTypes
  15022. }
  15023. postIndex := iNdEx + byteLen
  15024. if postIndex < 0 {
  15025. return ErrInvalidLengthTypes
  15026. }
  15027. if postIndex > l {
  15028. return io.ErrUnexpectedEOF
  15029. }
  15030. m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...)
  15031. if m.AppHash == nil {
  15032. m.AppHash = []byte{}
  15033. }
  15034. iNdEx = postIndex
  15035. case 3:
  15036. if wireType != 2 {
  15037. return fmt.Errorf("proto: wrong wireType = %d for field TxResults", wireType)
  15038. }
  15039. var msglen int
  15040. for shift := uint(0); ; shift += 7 {
  15041. if shift >= 64 {
  15042. return ErrIntOverflowTypes
  15043. }
  15044. if iNdEx >= l {
  15045. return io.ErrUnexpectedEOF
  15046. }
  15047. b := dAtA[iNdEx]
  15048. iNdEx++
  15049. msglen |= int(b&0x7F) << shift
  15050. if b < 0x80 {
  15051. break
  15052. }
  15053. }
  15054. if msglen < 0 {
  15055. return ErrInvalidLengthTypes
  15056. }
  15057. postIndex := iNdEx + msglen
  15058. if postIndex < 0 {
  15059. return ErrInvalidLengthTypes
  15060. }
  15061. if postIndex > l {
  15062. return io.ErrUnexpectedEOF
  15063. }
  15064. m.TxResults = append(m.TxResults, &ExecTxResult{})
  15065. if err := m.TxResults[len(m.TxResults)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15066. return err
  15067. }
  15068. iNdEx = postIndex
  15069. case 4:
  15070. if wireType != 2 {
  15071. return fmt.Errorf("proto: wrong wireType = %d for field ValidatorUpdates", wireType)
  15072. }
  15073. var msglen int
  15074. for shift := uint(0); ; shift += 7 {
  15075. if shift >= 64 {
  15076. return ErrIntOverflowTypes
  15077. }
  15078. if iNdEx >= l {
  15079. return io.ErrUnexpectedEOF
  15080. }
  15081. b := dAtA[iNdEx]
  15082. iNdEx++
  15083. msglen |= int(b&0x7F) << shift
  15084. if b < 0x80 {
  15085. break
  15086. }
  15087. }
  15088. if msglen < 0 {
  15089. return ErrInvalidLengthTypes
  15090. }
  15091. postIndex := iNdEx + msglen
  15092. if postIndex < 0 {
  15093. return ErrInvalidLengthTypes
  15094. }
  15095. if postIndex > l {
  15096. return io.ErrUnexpectedEOF
  15097. }
  15098. m.ValidatorUpdates = append(m.ValidatorUpdates, &ValidatorUpdate{})
  15099. if err := m.ValidatorUpdates[len(m.ValidatorUpdates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15100. return err
  15101. }
  15102. iNdEx = postIndex
  15103. case 5:
  15104. if wireType != 2 {
  15105. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParamUpdates", wireType)
  15106. }
  15107. var msglen int
  15108. for shift := uint(0); ; shift += 7 {
  15109. if shift >= 64 {
  15110. return ErrIntOverflowTypes
  15111. }
  15112. if iNdEx >= l {
  15113. return io.ErrUnexpectedEOF
  15114. }
  15115. b := dAtA[iNdEx]
  15116. iNdEx++
  15117. msglen |= int(b&0x7F) << shift
  15118. if b < 0x80 {
  15119. break
  15120. }
  15121. }
  15122. if msglen < 0 {
  15123. return ErrInvalidLengthTypes
  15124. }
  15125. postIndex := iNdEx + msglen
  15126. if postIndex < 0 {
  15127. return ErrInvalidLengthTypes
  15128. }
  15129. if postIndex > l {
  15130. return io.ErrUnexpectedEOF
  15131. }
  15132. if m.ConsensusParamUpdates == nil {
  15133. m.ConsensusParamUpdates = &types1.ConsensusParams{}
  15134. }
  15135. if err := m.ConsensusParamUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15136. return err
  15137. }
  15138. iNdEx = postIndex
  15139. default:
  15140. iNdEx = preIndex
  15141. skippy, err := skipTypes(dAtA[iNdEx:])
  15142. if err != nil {
  15143. return err
  15144. }
  15145. if (skippy < 0) || (iNdEx+skippy) < 0 {
  15146. return ErrInvalidLengthTypes
  15147. }
  15148. if (iNdEx + skippy) > l {
  15149. return io.ErrUnexpectedEOF
  15150. }
  15151. iNdEx += skippy
  15152. }
  15153. }
  15154. if iNdEx > l {
  15155. return io.ErrUnexpectedEOF
  15156. }
  15157. return nil
  15158. }
  15159. func (m *ResponseFinalizeBlock) Unmarshal(dAtA []byte) error {
  15160. l := len(dAtA)
  15161. iNdEx := 0
  15162. for iNdEx < l {
  15163. preIndex := iNdEx
  15164. var wire uint64
  15165. for shift := uint(0); ; shift += 7 {
  15166. if shift >= 64 {
  15167. return ErrIntOverflowTypes
  15168. }
  15169. if iNdEx >= l {
  15170. return io.ErrUnexpectedEOF
  15171. }
  15172. b := dAtA[iNdEx]
  15173. iNdEx++
  15174. wire |= uint64(b&0x7F) << shift
  15175. if b < 0x80 {
  15176. break
  15177. }
  15178. }
  15179. fieldNum := int32(wire >> 3)
  15180. wireType := int(wire & 0x7)
  15181. if wireType == 4 {
  15182. return fmt.Errorf("proto: ResponseFinalizeBlock: wiretype end group for non-group")
  15183. }
  15184. if fieldNum <= 0 {
  15185. return fmt.Errorf("proto: ResponseFinalizeBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  15186. }
  15187. switch fieldNum {
  15188. case 1:
  15189. if wireType != 2 {
  15190. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  15191. }
  15192. var msglen int
  15193. for shift := uint(0); ; shift += 7 {
  15194. if shift >= 64 {
  15195. return ErrIntOverflowTypes
  15196. }
  15197. if iNdEx >= l {
  15198. return io.ErrUnexpectedEOF
  15199. }
  15200. b := dAtA[iNdEx]
  15201. iNdEx++
  15202. msglen |= int(b&0x7F) << shift
  15203. if b < 0x80 {
  15204. break
  15205. }
  15206. }
  15207. if msglen < 0 {
  15208. return ErrInvalidLengthTypes
  15209. }
  15210. postIndex := iNdEx + msglen
  15211. if postIndex < 0 {
  15212. return ErrInvalidLengthTypes
  15213. }
  15214. if postIndex > l {
  15215. return io.ErrUnexpectedEOF
  15216. }
  15217. m.Events = append(m.Events, Event{})
  15218. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15219. return err
  15220. }
  15221. iNdEx = postIndex
  15222. case 2:
  15223. if wireType != 2 {
  15224. return fmt.Errorf("proto: wrong wireType = %d for field TxResults", wireType)
  15225. }
  15226. var msglen int
  15227. for shift := uint(0); ; shift += 7 {
  15228. if shift >= 64 {
  15229. return ErrIntOverflowTypes
  15230. }
  15231. if iNdEx >= l {
  15232. return io.ErrUnexpectedEOF
  15233. }
  15234. b := dAtA[iNdEx]
  15235. iNdEx++
  15236. msglen |= int(b&0x7F) << shift
  15237. if b < 0x80 {
  15238. break
  15239. }
  15240. }
  15241. if msglen < 0 {
  15242. return ErrInvalidLengthTypes
  15243. }
  15244. postIndex := iNdEx + msglen
  15245. if postIndex < 0 {
  15246. return ErrInvalidLengthTypes
  15247. }
  15248. if postIndex > l {
  15249. return io.ErrUnexpectedEOF
  15250. }
  15251. m.TxResults = append(m.TxResults, &ExecTxResult{})
  15252. if err := m.TxResults[len(m.TxResults)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15253. return err
  15254. }
  15255. iNdEx = postIndex
  15256. case 3:
  15257. if wireType != 2 {
  15258. return fmt.Errorf("proto: wrong wireType = %d for field ValidatorUpdates", wireType)
  15259. }
  15260. var msglen int
  15261. for shift := uint(0); ; shift += 7 {
  15262. if shift >= 64 {
  15263. return ErrIntOverflowTypes
  15264. }
  15265. if iNdEx >= l {
  15266. return io.ErrUnexpectedEOF
  15267. }
  15268. b := dAtA[iNdEx]
  15269. iNdEx++
  15270. msglen |= int(b&0x7F) << shift
  15271. if b < 0x80 {
  15272. break
  15273. }
  15274. }
  15275. if msglen < 0 {
  15276. return ErrInvalidLengthTypes
  15277. }
  15278. postIndex := iNdEx + msglen
  15279. if postIndex < 0 {
  15280. return ErrInvalidLengthTypes
  15281. }
  15282. if postIndex > l {
  15283. return io.ErrUnexpectedEOF
  15284. }
  15285. m.ValidatorUpdates = append(m.ValidatorUpdates, ValidatorUpdate{})
  15286. if err := m.ValidatorUpdates[len(m.ValidatorUpdates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15287. return err
  15288. }
  15289. iNdEx = postIndex
  15290. case 4:
  15291. if wireType != 2 {
  15292. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParamUpdates", wireType)
  15293. }
  15294. var msglen int
  15295. for shift := uint(0); ; shift += 7 {
  15296. if shift >= 64 {
  15297. return ErrIntOverflowTypes
  15298. }
  15299. if iNdEx >= l {
  15300. return io.ErrUnexpectedEOF
  15301. }
  15302. b := dAtA[iNdEx]
  15303. iNdEx++
  15304. msglen |= int(b&0x7F) << shift
  15305. if b < 0x80 {
  15306. break
  15307. }
  15308. }
  15309. if msglen < 0 {
  15310. return ErrInvalidLengthTypes
  15311. }
  15312. postIndex := iNdEx + msglen
  15313. if postIndex < 0 {
  15314. return ErrInvalidLengthTypes
  15315. }
  15316. if postIndex > l {
  15317. return io.ErrUnexpectedEOF
  15318. }
  15319. if m.ConsensusParamUpdates == nil {
  15320. m.ConsensusParamUpdates = &types1.ConsensusParams{}
  15321. }
  15322. if err := m.ConsensusParamUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15323. return err
  15324. }
  15325. iNdEx = postIndex
  15326. case 5:
  15327. if wireType != 2 {
  15328. return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType)
  15329. }
  15330. var byteLen int
  15331. for shift := uint(0); ; shift += 7 {
  15332. if shift >= 64 {
  15333. return ErrIntOverflowTypes
  15334. }
  15335. if iNdEx >= l {
  15336. return io.ErrUnexpectedEOF
  15337. }
  15338. b := dAtA[iNdEx]
  15339. iNdEx++
  15340. byteLen |= int(b&0x7F) << shift
  15341. if b < 0x80 {
  15342. break
  15343. }
  15344. }
  15345. if byteLen < 0 {
  15346. return ErrInvalidLengthTypes
  15347. }
  15348. postIndex := iNdEx + byteLen
  15349. if postIndex < 0 {
  15350. return ErrInvalidLengthTypes
  15351. }
  15352. if postIndex > l {
  15353. return io.ErrUnexpectedEOF
  15354. }
  15355. m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...)
  15356. if m.AppHash == nil {
  15357. m.AppHash = []byte{}
  15358. }
  15359. iNdEx = postIndex
  15360. case 6:
  15361. if wireType != 0 {
  15362. return fmt.Errorf("proto: wrong wireType = %d for field RetainHeight", wireType)
  15363. }
  15364. m.RetainHeight = 0
  15365. for shift := uint(0); ; shift += 7 {
  15366. if shift >= 64 {
  15367. return ErrIntOverflowTypes
  15368. }
  15369. if iNdEx >= l {
  15370. return io.ErrUnexpectedEOF
  15371. }
  15372. b := dAtA[iNdEx]
  15373. iNdEx++
  15374. m.RetainHeight |= int64(b&0x7F) << shift
  15375. if b < 0x80 {
  15376. break
  15377. }
  15378. }
  15379. default:
  15380. iNdEx = preIndex
  15381. skippy, err := skipTypes(dAtA[iNdEx:])
  15382. if err != nil {
  15383. return err
  15384. }
  15385. if (skippy < 0) || (iNdEx+skippy) < 0 {
  15386. return ErrInvalidLengthTypes
  15387. }
  15388. if (iNdEx + skippy) > l {
  15389. return io.ErrUnexpectedEOF
  15390. }
  15391. iNdEx += skippy
  15392. }
  15393. }
  15394. if iNdEx > l {
  15395. return io.ErrUnexpectedEOF
  15396. }
  15397. return nil
  15398. }
  15399. func (m *CommitInfo) Unmarshal(dAtA []byte) error {
  15400. l := len(dAtA)
  15401. iNdEx := 0
  15402. for iNdEx < l {
  15403. preIndex := iNdEx
  15404. var wire uint64
  15405. for shift := uint(0); ; shift += 7 {
  15406. if shift >= 64 {
  15407. return ErrIntOverflowTypes
  15408. }
  15409. if iNdEx >= l {
  15410. return io.ErrUnexpectedEOF
  15411. }
  15412. b := dAtA[iNdEx]
  15413. iNdEx++
  15414. wire |= uint64(b&0x7F) << shift
  15415. if b < 0x80 {
  15416. break
  15417. }
  15418. }
  15419. fieldNum := int32(wire >> 3)
  15420. wireType := int(wire & 0x7)
  15421. if wireType == 4 {
  15422. return fmt.Errorf("proto: CommitInfo: wiretype end group for non-group")
  15423. }
  15424. if fieldNum <= 0 {
  15425. return fmt.Errorf("proto: CommitInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  15426. }
  15427. switch fieldNum {
  15428. case 1:
  15429. if wireType != 0 {
  15430. return fmt.Errorf("proto: wrong wireType = %d for field Round", wireType)
  15431. }
  15432. m.Round = 0
  15433. for shift := uint(0); ; shift += 7 {
  15434. if shift >= 64 {
  15435. return ErrIntOverflowTypes
  15436. }
  15437. if iNdEx >= l {
  15438. return io.ErrUnexpectedEOF
  15439. }
  15440. b := dAtA[iNdEx]
  15441. iNdEx++
  15442. m.Round |= int32(b&0x7F) << shift
  15443. if b < 0x80 {
  15444. break
  15445. }
  15446. }
  15447. case 2:
  15448. if wireType != 2 {
  15449. return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType)
  15450. }
  15451. var msglen int
  15452. for shift := uint(0); ; shift += 7 {
  15453. if shift >= 64 {
  15454. return ErrIntOverflowTypes
  15455. }
  15456. if iNdEx >= l {
  15457. return io.ErrUnexpectedEOF
  15458. }
  15459. b := dAtA[iNdEx]
  15460. iNdEx++
  15461. msglen |= int(b&0x7F) << shift
  15462. if b < 0x80 {
  15463. break
  15464. }
  15465. }
  15466. if msglen < 0 {
  15467. return ErrInvalidLengthTypes
  15468. }
  15469. postIndex := iNdEx + msglen
  15470. if postIndex < 0 {
  15471. return ErrInvalidLengthTypes
  15472. }
  15473. if postIndex > l {
  15474. return io.ErrUnexpectedEOF
  15475. }
  15476. m.Votes = append(m.Votes, VoteInfo{})
  15477. if err := m.Votes[len(m.Votes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15478. return err
  15479. }
  15480. iNdEx = postIndex
  15481. default:
  15482. iNdEx = preIndex
  15483. skippy, err := skipTypes(dAtA[iNdEx:])
  15484. if err != nil {
  15485. return err
  15486. }
  15487. if (skippy < 0) || (iNdEx+skippy) < 0 {
  15488. return ErrInvalidLengthTypes
  15489. }
  15490. if (iNdEx + skippy) > l {
  15491. return io.ErrUnexpectedEOF
  15492. }
  15493. iNdEx += skippy
  15494. }
  15495. }
  15496. if iNdEx > l {
  15497. return io.ErrUnexpectedEOF
  15498. }
  15499. return nil
  15500. }
  15501. func (m *Event) Unmarshal(dAtA []byte) error {
  15502. l := len(dAtA)
  15503. iNdEx := 0
  15504. for iNdEx < l {
  15505. preIndex := iNdEx
  15506. var wire uint64
  15507. for shift := uint(0); ; shift += 7 {
  15508. if shift >= 64 {
  15509. return ErrIntOverflowTypes
  15510. }
  15511. if iNdEx >= l {
  15512. return io.ErrUnexpectedEOF
  15513. }
  15514. b := dAtA[iNdEx]
  15515. iNdEx++
  15516. wire |= uint64(b&0x7F) << shift
  15517. if b < 0x80 {
  15518. break
  15519. }
  15520. }
  15521. fieldNum := int32(wire >> 3)
  15522. wireType := int(wire & 0x7)
  15523. if wireType == 4 {
  15524. return fmt.Errorf("proto: Event: wiretype end group for non-group")
  15525. }
  15526. if fieldNum <= 0 {
  15527. return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire)
  15528. }
  15529. switch fieldNum {
  15530. case 1:
  15531. if wireType != 2 {
  15532. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  15533. }
  15534. var stringLen uint64
  15535. for shift := uint(0); ; shift += 7 {
  15536. if shift >= 64 {
  15537. return ErrIntOverflowTypes
  15538. }
  15539. if iNdEx >= l {
  15540. return io.ErrUnexpectedEOF
  15541. }
  15542. b := dAtA[iNdEx]
  15543. iNdEx++
  15544. stringLen |= uint64(b&0x7F) << shift
  15545. if b < 0x80 {
  15546. break
  15547. }
  15548. }
  15549. intStringLen := int(stringLen)
  15550. if intStringLen < 0 {
  15551. return ErrInvalidLengthTypes
  15552. }
  15553. postIndex := iNdEx + intStringLen
  15554. if postIndex < 0 {
  15555. return ErrInvalidLengthTypes
  15556. }
  15557. if postIndex > l {
  15558. return io.ErrUnexpectedEOF
  15559. }
  15560. m.Type = string(dAtA[iNdEx:postIndex])
  15561. iNdEx = postIndex
  15562. case 2:
  15563. if wireType != 2 {
  15564. return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType)
  15565. }
  15566. var msglen int
  15567. for shift := uint(0); ; shift += 7 {
  15568. if shift >= 64 {
  15569. return ErrIntOverflowTypes
  15570. }
  15571. if iNdEx >= l {
  15572. return io.ErrUnexpectedEOF
  15573. }
  15574. b := dAtA[iNdEx]
  15575. iNdEx++
  15576. msglen |= int(b&0x7F) << shift
  15577. if b < 0x80 {
  15578. break
  15579. }
  15580. }
  15581. if msglen < 0 {
  15582. return ErrInvalidLengthTypes
  15583. }
  15584. postIndex := iNdEx + msglen
  15585. if postIndex < 0 {
  15586. return ErrInvalidLengthTypes
  15587. }
  15588. if postIndex > l {
  15589. return io.ErrUnexpectedEOF
  15590. }
  15591. m.Attributes = append(m.Attributes, EventAttribute{})
  15592. if err := m.Attributes[len(m.Attributes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15593. return err
  15594. }
  15595. iNdEx = postIndex
  15596. default:
  15597. iNdEx = preIndex
  15598. skippy, err := skipTypes(dAtA[iNdEx:])
  15599. if err != nil {
  15600. return err
  15601. }
  15602. if (skippy < 0) || (iNdEx+skippy) < 0 {
  15603. return ErrInvalidLengthTypes
  15604. }
  15605. if (iNdEx + skippy) > l {
  15606. return io.ErrUnexpectedEOF
  15607. }
  15608. iNdEx += skippy
  15609. }
  15610. }
  15611. if iNdEx > l {
  15612. return io.ErrUnexpectedEOF
  15613. }
  15614. return nil
  15615. }
  15616. func (m *EventAttribute) Unmarshal(dAtA []byte) error {
  15617. l := len(dAtA)
  15618. iNdEx := 0
  15619. for iNdEx < l {
  15620. preIndex := iNdEx
  15621. var wire uint64
  15622. for shift := uint(0); ; shift += 7 {
  15623. if shift >= 64 {
  15624. return ErrIntOverflowTypes
  15625. }
  15626. if iNdEx >= l {
  15627. return io.ErrUnexpectedEOF
  15628. }
  15629. b := dAtA[iNdEx]
  15630. iNdEx++
  15631. wire |= uint64(b&0x7F) << shift
  15632. if b < 0x80 {
  15633. break
  15634. }
  15635. }
  15636. fieldNum := int32(wire >> 3)
  15637. wireType := int(wire & 0x7)
  15638. if wireType == 4 {
  15639. return fmt.Errorf("proto: EventAttribute: wiretype end group for non-group")
  15640. }
  15641. if fieldNum <= 0 {
  15642. return fmt.Errorf("proto: EventAttribute: illegal tag %d (wire type %d)", fieldNum, wire)
  15643. }
  15644. switch fieldNum {
  15645. case 1:
  15646. if wireType != 2 {
  15647. return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  15648. }
  15649. var stringLen uint64
  15650. for shift := uint(0); ; shift += 7 {
  15651. if shift >= 64 {
  15652. return ErrIntOverflowTypes
  15653. }
  15654. if iNdEx >= l {
  15655. return io.ErrUnexpectedEOF
  15656. }
  15657. b := dAtA[iNdEx]
  15658. iNdEx++
  15659. stringLen |= uint64(b&0x7F) << shift
  15660. if b < 0x80 {
  15661. break
  15662. }
  15663. }
  15664. intStringLen := int(stringLen)
  15665. if intStringLen < 0 {
  15666. return ErrInvalidLengthTypes
  15667. }
  15668. postIndex := iNdEx + intStringLen
  15669. if postIndex < 0 {
  15670. return ErrInvalidLengthTypes
  15671. }
  15672. if postIndex > l {
  15673. return io.ErrUnexpectedEOF
  15674. }
  15675. m.Key = string(dAtA[iNdEx:postIndex])
  15676. iNdEx = postIndex
  15677. case 2:
  15678. if wireType != 2 {
  15679. return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  15680. }
  15681. var stringLen uint64
  15682. for shift := uint(0); ; shift += 7 {
  15683. if shift >= 64 {
  15684. return ErrIntOverflowTypes
  15685. }
  15686. if iNdEx >= l {
  15687. return io.ErrUnexpectedEOF
  15688. }
  15689. b := dAtA[iNdEx]
  15690. iNdEx++
  15691. stringLen |= uint64(b&0x7F) << shift
  15692. if b < 0x80 {
  15693. break
  15694. }
  15695. }
  15696. intStringLen := int(stringLen)
  15697. if intStringLen < 0 {
  15698. return ErrInvalidLengthTypes
  15699. }
  15700. postIndex := iNdEx + intStringLen
  15701. if postIndex < 0 {
  15702. return ErrInvalidLengthTypes
  15703. }
  15704. if postIndex > l {
  15705. return io.ErrUnexpectedEOF
  15706. }
  15707. m.Value = string(dAtA[iNdEx:postIndex])
  15708. iNdEx = postIndex
  15709. case 3:
  15710. if wireType != 0 {
  15711. return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
  15712. }
  15713. var v int
  15714. for shift := uint(0); ; shift += 7 {
  15715. if shift >= 64 {
  15716. return ErrIntOverflowTypes
  15717. }
  15718. if iNdEx >= l {
  15719. return io.ErrUnexpectedEOF
  15720. }
  15721. b := dAtA[iNdEx]
  15722. iNdEx++
  15723. v |= int(b&0x7F) << shift
  15724. if b < 0x80 {
  15725. break
  15726. }
  15727. }
  15728. m.Index = bool(v != 0)
  15729. default:
  15730. iNdEx = preIndex
  15731. skippy, err := skipTypes(dAtA[iNdEx:])
  15732. if err != nil {
  15733. return err
  15734. }
  15735. if (skippy < 0) || (iNdEx+skippy) < 0 {
  15736. return ErrInvalidLengthTypes
  15737. }
  15738. if (iNdEx + skippy) > l {
  15739. return io.ErrUnexpectedEOF
  15740. }
  15741. iNdEx += skippy
  15742. }
  15743. }
  15744. if iNdEx > l {
  15745. return io.ErrUnexpectedEOF
  15746. }
  15747. return nil
  15748. }
  15749. func (m *ExecTxResult) Unmarshal(dAtA []byte) error {
  15750. l := len(dAtA)
  15751. iNdEx := 0
  15752. for iNdEx < l {
  15753. preIndex := iNdEx
  15754. var wire uint64
  15755. for shift := uint(0); ; shift += 7 {
  15756. if shift >= 64 {
  15757. return ErrIntOverflowTypes
  15758. }
  15759. if iNdEx >= l {
  15760. return io.ErrUnexpectedEOF
  15761. }
  15762. b := dAtA[iNdEx]
  15763. iNdEx++
  15764. wire |= uint64(b&0x7F) << shift
  15765. if b < 0x80 {
  15766. break
  15767. }
  15768. }
  15769. fieldNum := int32(wire >> 3)
  15770. wireType := int(wire & 0x7)
  15771. if wireType == 4 {
  15772. return fmt.Errorf("proto: ExecTxResult: wiretype end group for non-group")
  15773. }
  15774. if fieldNum <= 0 {
  15775. return fmt.Errorf("proto: ExecTxResult: illegal tag %d (wire type %d)", fieldNum, wire)
  15776. }
  15777. switch fieldNum {
  15778. case 1:
  15779. if wireType != 0 {
  15780. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  15781. }
  15782. m.Code = 0
  15783. for shift := uint(0); ; shift += 7 {
  15784. if shift >= 64 {
  15785. return ErrIntOverflowTypes
  15786. }
  15787. if iNdEx >= l {
  15788. return io.ErrUnexpectedEOF
  15789. }
  15790. b := dAtA[iNdEx]
  15791. iNdEx++
  15792. m.Code |= uint32(b&0x7F) << shift
  15793. if b < 0x80 {
  15794. break
  15795. }
  15796. }
  15797. case 2:
  15798. if wireType != 2 {
  15799. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  15800. }
  15801. var byteLen int
  15802. for shift := uint(0); ; shift += 7 {
  15803. if shift >= 64 {
  15804. return ErrIntOverflowTypes
  15805. }
  15806. if iNdEx >= l {
  15807. return io.ErrUnexpectedEOF
  15808. }
  15809. b := dAtA[iNdEx]
  15810. iNdEx++
  15811. byteLen |= int(b&0x7F) << shift
  15812. if b < 0x80 {
  15813. break
  15814. }
  15815. }
  15816. if byteLen < 0 {
  15817. return ErrInvalidLengthTypes
  15818. }
  15819. postIndex := iNdEx + byteLen
  15820. if postIndex < 0 {
  15821. return ErrInvalidLengthTypes
  15822. }
  15823. if postIndex > l {
  15824. return io.ErrUnexpectedEOF
  15825. }
  15826. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  15827. if m.Data == nil {
  15828. m.Data = []byte{}
  15829. }
  15830. iNdEx = postIndex
  15831. case 3:
  15832. if wireType != 2 {
  15833. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  15834. }
  15835. var stringLen uint64
  15836. for shift := uint(0); ; shift += 7 {
  15837. if shift >= 64 {
  15838. return ErrIntOverflowTypes
  15839. }
  15840. if iNdEx >= l {
  15841. return io.ErrUnexpectedEOF
  15842. }
  15843. b := dAtA[iNdEx]
  15844. iNdEx++
  15845. stringLen |= uint64(b&0x7F) << shift
  15846. if b < 0x80 {
  15847. break
  15848. }
  15849. }
  15850. intStringLen := int(stringLen)
  15851. if intStringLen < 0 {
  15852. return ErrInvalidLengthTypes
  15853. }
  15854. postIndex := iNdEx + intStringLen
  15855. if postIndex < 0 {
  15856. return ErrInvalidLengthTypes
  15857. }
  15858. if postIndex > l {
  15859. return io.ErrUnexpectedEOF
  15860. }
  15861. m.Log = string(dAtA[iNdEx:postIndex])
  15862. iNdEx = postIndex
  15863. case 4:
  15864. if wireType != 2 {
  15865. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  15866. }
  15867. var stringLen uint64
  15868. for shift := uint(0); ; shift += 7 {
  15869. if shift >= 64 {
  15870. return ErrIntOverflowTypes
  15871. }
  15872. if iNdEx >= l {
  15873. return io.ErrUnexpectedEOF
  15874. }
  15875. b := dAtA[iNdEx]
  15876. iNdEx++
  15877. stringLen |= uint64(b&0x7F) << shift
  15878. if b < 0x80 {
  15879. break
  15880. }
  15881. }
  15882. intStringLen := int(stringLen)
  15883. if intStringLen < 0 {
  15884. return ErrInvalidLengthTypes
  15885. }
  15886. postIndex := iNdEx + intStringLen
  15887. if postIndex < 0 {
  15888. return ErrInvalidLengthTypes
  15889. }
  15890. if postIndex > l {
  15891. return io.ErrUnexpectedEOF
  15892. }
  15893. m.Info = string(dAtA[iNdEx:postIndex])
  15894. iNdEx = postIndex
  15895. case 5:
  15896. if wireType != 0 {
  15897. return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType)
  15898. }
  15899. m.GasWanted = 0
  15900. for shift := uint(0); ; shift += 7 {
  15901. if shift >= 64 {
  15902. return ErrIntOverflowTypes
  15903. }
  15904. if iNdEx >= l {
  15905. return io.ErrUnexpectedEOF
  15906. }
  15907. b := dAtA[iNdEx]
  15908. iNdEx++
  15909. m.GasWanted |= int64(b&0x7F) << shift
  15910. if b < 0x80 {
  15911. break
  15912. }
  15913. }
  15914. case 6:
  15915. if wireType != 0 {
  15916. return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType)
  15917. }
  15918. m.GasUsed = 0
  15919. for shift := uint(0); ; shift += 7 {
  15920. if shift >= 64 {
  15921. return ErrIntOverflowTypes
  15922. }
  15923. if iNdEx >= l {
  15924. return io.ErrUnexpectedEOF
  15925. }
  15926. b := dAtA[iNdEx]
  15927. iNdEx++
  15928. m.GasUsed |= int64(b&0x7F) << shift
  15929. if b < 0x80 {
  15930. break
  15931. }
  15932. }
  15933. case 7:
  15934. if wireType != 2 {
  15935. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  15936. }
  15937. var msglen int
  15938. for shift := uint(0); ; shift += 7 {
  15939. if shift >= 64 {
  15940. return ErrIntOverflowTypes
  15941. }
  15942. if iNdEx >= l {
  15943. return io.ErrUnexpectedEOF
  15944. }
  15945. b := dAtA[iNdEx]
  15946. iNdEx++
  15947. msglen |= int(b&0x7F) << shift
  15948. if b < 0x80 {
  15949. break
  15950. }
  15951. }
  15952. if msglen < 0 {
  15953. return ErrInvalidLengthTypes
  15954. }
  15955. postIndex := iNdEx + msglen
  15956. if postIndex < 0 {
  15957. return ErrInvalidLengthTypes
  15958. }
  15959. if postIndex > l {
  15960. return io.ErrUnexpectedEOF
  15961. }
  15962. m.Events = append(m.Events, Event{})
  15963. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15964. return err
  15965. }
  15966. iNdEx = postIndex
  15967. case 8:
  15968. if wireType != 2 {
  15969. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  15970. }
  15971. var stringLen uint64
  15972. for shift := uint(0); ; shift += 7 {
  15973. if shift >= 64 {
  15974. return ErrIntOverflowTypes
  15975. }
  15976. if iNdEx >= l {
  15977. return io.ErrUnexpectedEOF
  15978. }
  15979. b := dAtA[iNdEx]
  15980. iNdEx++
  15981. stringLen |= uint64(b&0x7F) << shift
  15982. if b < 0x80 {
  15983. break
  15984. }
  15985. }
  15986. intStringLen := int(stringLen)
  15987. if intStringLen < 0 {
  15988. return ErrInvalidLengthTypes
  15989. }
  15990. postIndex := iNdEx + intStringLen
  15991. if postIndex < 0 {
  15992. return ErrInvalidLengthTypes
  15993. }
  15994. if postIndex > l {
  15995. return io.ErrUnexpectedEOF
  15996. }
  15997. m.Codespace = string(dAtA[iNdEx:postIndex])
  15998. iNdEx = postIndex
  15999. default:
  16000. iNdEx = preIndex
  16001. skippy, err := skipTypes(dAtA[iNdEx:])
  16002. if err != nil {
  16003. return err
  16004. }
  16005. if (skippy < 0) || (iNdEx+skippy) < 0 {
  16006. return ErrInvalidLengthTypes
  16007. }
  16008. if (iNdEx + skippy) > l {
  16009. return io.ErrUnexpectedEOF
  16010. }
  16011. iNdEx += skippy
  16012. }
  16013. }
  16014. if iNdEx > l {
  16015. return io.ErrUnexpectedEOF
  16016. }
  16017. return nil
  16018. }
  16019. func (m *TxResult) Unmarshal(dAtA []byte) error {
  16020. l := len(dAtA)
  16021. iNdEx := 0
  16022. for iNdEx < l {
  16023. preIndex := iNdEx
  16024. var wire uint64
  16025. for shift := uint(0); ; shift += 7 {
  16026. if shift >= 64 {
  16027. return ErrIntOverflowTypes
  16028. }
  16029. if iNdEx >= l {
  16030. return io.ErrUnexpectedEOF
  16031. }
  16032. b := dAtA[iNdEx]
  16033. iNdEx++
  16034. wire |= uint64(b&0x7F) << shift
  16035. if b < 0x80 {
  16036. break
  16037. }
  16038. }
  16039. fieldNum := int32(wire >> 3)
  16040. wireType := int(wire & 0x7)
  16041. if wireType == 4 {
  16042. return fmt.Errorf("proto: TxResult: wiretype end group for non-group")
  16043. }
  16044. if fieldNum <= 0 {
  16045. return fmt.Errorf("proto: TxResult: illegal tag %d (wire type %d)", fieldNum, wire)
  16046. }
  16047. switch fieldNum {
  16048. case 1:
  16049. if wireType != 0 {
  16050. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  16051. }
  16052. m.Height = 0
  16053. for shift := uint(0); ; shift += 7 {
  16054. if shift >= 64 {
  16055. return ErrIntOverflowTypes
  16056. }
  16057. if iNdEx >= l {
  16058. return io.ErrUnexpectedEOF
  16059. }
  16060. b := dAtA[iNdEx]
  16061. iNdEx++
  16062. m.Height |= int64(b&0x7F) << shift
  16063. if b < 0x80 {
  16064. break
  16065. }
  16066. }
  16067. case 2:
  16068. if wireType != 0 {
  16069. return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
  16070. }
  16071. m.Index = 0
  16072. for shift := uint(0); ; shift += 7 {
  16073. if shift >= 64 {
  16074. return ErrIntOverflowTypes
  16075. }
  16076. if iNdEx >= l {
  16077. return io.ErrUnexpectedEOF
  16078. }
  16079. b := dAtA[iNdEx]
  16080. iNdEx++
  16081. m.Index |= uint32(b&0x7F) << shift
  16082. if b < 0x80 {
  16083. break
  16084. }
  16085. }
  16086. case 3:
  16087. if wireType != 2 {
  16088. return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType)
  16089. }
  16090. var byteLen int
  16091. for shift := uint(0); ; shift += 7 {
  16092. if shift >= 64 {
  16093. return ErrIntOverflowTypes
  16094. }
  16095. if iNdEx >= l {
  16096. return io.ErrUnexpectedEOF
  16097. }
  16098. b := dAtA[iNdEx]
  16099. iNdEx++
  16100. byteLen |= int(b&0x7F) << shift
  16101. if b < 0x80 {
  16102. break
  16103. }
  16104. }
  16105. if byteLen < 0 {
  16106. return ErrInvalidLengthTypes
  16107. }
  16108. postIndex := iNdEx + byteLen
  16109. if postIndex < 0 {
  16110. return ErrInvalidLengthTypes
  16111. }
  16112. if postIndex > l {
  16113. return io.ErrUnexpectedEOF
  16114. }
  16115. m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...)
  16116. if m.Tx == nil {
  16117. m.Tx = []byte{}
  16118. }
  16119. iNdEx = postIndex
  16120. case 4:
  16121. if wireType != 2 {
  16122. return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
  16123. }
  16124. var msglen int
  16125. for shift := uint(0); ; shift += 7 {
  16126. if shift >= 64 {
  16127. return ErrIntOverflowTypes
  16128. }
  16129. if iNdEx >= l {
  16130. return io.ErrUnexpectedEOF
  16131. }
  16132. b := dAtA[iNdEx]
  16133. iNdEx++
  16134. msglen |= int(b&0x7F) << shift
  16135. if b < 0x80 {
  16136. break
  16137. }
  16138. }
  16139. if msglen < 0 {
  16140. return ErrInvalidLengthTypes
  16141. }
  16142. postIndex := iNdEx + msglen
  16143. if postIndex < 0 {
  16144. return ErrInvalidLengthTypes
  16145. }
  16146. if postIndex > l {
  16147. return io.ErrUnexpectedEOF
  16148. }
  16149. if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  16150. return err
  16151. }
  16152. iNdEx = postIndex
  16153. default:
  16154. iNdEx = preIndex
  16155. skippy, err := skipTypes(dAtA[iNdEx:])
  16156. if err != nil {
  16157. return err
  16158. }
  16159. if (skippy < 0) || (iNdEx+skippy) < 0 {
  16160. return ErrInvalidLengthTypes
  16161. }
  16162. if (iNdEx + skippy) > l {
  16163. return io.ErrUnexpectedEOF
  16164. }
  16165. iNdEx += skippy
  16166. }
  16167. }
  16168. if iNdEx > l {
  16169. return io.ErrUnexpectedEOF
  16170. }
  16171. return nil
  16172. }
  16173. func (m *Validator) Unmarshal(dAtA []byte) error {
  16174. l := len(dAtA)
  16175. iNdEx := 0
  16176. for iNdEx < l {
  16177. preIndex := iNdEx
  16178. var wire uint64
  16179. for shift := uint(0); ; shift += 7 {
  16180. if shift >= 64 {
  16181. return ErrIntOverflowTypes
  16182. }
  16183. if iNdEx >= l {
  16184. return io.ErrUnexpectedEOF
  16185. }
  16186. b := dAtA[iNdEx]
  16187. iNdEx++
  16188. wire |= uint64(b&0x7F) << shift
  16189. if b < 0x80 {
  16190. break
  16191. }
  16192. }
  16193. fieldNum := int32(wire >> 3)
  16194. wireType := int(wire & 0x7)
  16195. if wireType == 4 {
  16196. return fmt.Errorf("proto: Validator: wiretype end group for non-group")
  16197. }
  16198. if fieldNum <= 0 {
  16199. return fmt.Errorf("proto: Validator: illegal tag %d (wire type %d)", fieldNum, wire)
  16200. }
  16201. switch fieldNum {
  16202. case 1:
  16203. if wireType != 2 {
  16204. return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
  16205. }
  16206. var byteLen int
  16207. for shift := uint(0); ; shift += 7 {
  16208. if shift >= 64 {
  16209. return ErrIntOverflowTypes
  16210. }
  16211. if iNdEx >= l {
  16212. return io.ErrUnexpectedEOF
  16213. }
  16214. b := dAtA[iNdEx]
  16215. iNdEx++
  16216. byteLen |= int(b&0x7F) << shift
  16217. if b < 0x80 {
  16218. break
  16219. }
  16220. }
  16221. if byteLen < 0 {
  16222. return ErrInvalidLengthTypes
  16223. }
  16224. postIndex := iNdEx + byteLen
  16225. if postIndex < 0 {
  16226. return ErrInvalidLengthTypes
  16227. }
  16228. if postIndex > l {
  16229. return io.ErrUnexpectedEOF
  16230. }
  16231. m.Address = append(m.Address[:0], dAtA[iNdEx:postIndex]...)
  16232. if m.Address == nil {
  16233. m.Address = []byte{}
  16234. }
  16235. iNdEx = postIndex
  16236. case 3:
  16237. if wireType != 0 {
  16238. return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
  16239. }
  16240. m.Power = 0
  16241. for shift := uint(0); ; shift += 7 {
  16242. if shift >= 64 {
  16243. return ErrIntOverflowTypes
  16244. }
  16245. if iNdEx >= l {
  16246. return io.ErrUnexpectedEOF
  16247. }
  16248. b := dAtA[iNdEx]
  16249. iNdEx++
  16250. m.Power |= int64(b&0x7F) << shift
  16251. if b < 0x80 {
  16252. break
  16253. }
  16254. }
  16255. default:
  16256. iNdEx = preIndex
  16257. skippy, err := skipTypes(dAtA[iNdEx:])
  16258. if err != nil {
  16259. return err
  16260. }
  16261. if (skippy < 0) || (iNdEx+skippy) < 0 {
  16262. return ErrInvalidLengthTypes
  16263. }
  16264. if (iNdEx + skippy) > l {
  16265. return io.ErrUnexpectedEOF
  16266. }
  16267. iNdEx += skippy
  16268. }
  16269. }
  16270. if iNdEx > l {
  16271. return io.ErrUnexpectedEOF
  16272. }
  16273. return nil
  16274. }
  16275. func (m *ValidatorUpdate) Unmarshal(dAtA []byte) error {
  16276. l := len(dAtA)
  16277. iNdEx := 0
  16278. for iNdEx < l {
  16279. preIndex := iNdEx
  16280. var wire uint64
  16281. for shift := uint(0); ; shift += 7 {
  16282. if shift >= 64 {
  16283. return ErrIntOverflowTypes
  16284. }
  16285. if iNdEx >= l {
  16286. return io.ErrUnexpectedEOF
  16287. }
  16288. b := dAtA[iNdEx]
  16289. iNdEx++
  16290. wire |= uint64(b&0x7F) << shift
  16291. if b < 0x80 {
  16292. break
  16293. }
  16294. }
  16295. fieldNum := int32(wire >> 3)
  16296. wireType := int(wire & 0x7)
  16297. if wireType == 4 {
  16298. return fmt.Errorf("proto: ValidatorUpdate: wiretype end group for non-group")
  16299. }
  16300. if fieldNum <= 0 {
  16301. return fmt.Errorf("proto: ValidatorUpdate: illegal tag %d (wire type %d)", fieldNum, wire)
  16302. }
  16303. switch fieldNum {
  16304. case 1:
  16305. if wireType != 2 {
  16306. return fmt.Errorf("proto: wrong wireType = %d for field PubKey", wireType)
  16307. }
  16308. var msglen int
  16309. for shift := uint(0); ; shift += 7 {
  16310. if shift >= 64 {
  16311. return ErrIntOverflowTypes
  16312. }
  16313. if iNdEx >= l {
  16314. return io.ErrUnexpectedEOF
  16315. }
  16316. b := dAtA[iNdEx]
  16317. iNdEx++
  16318. msglen |= int(b&0x7F) << shift
  16319. if b < 0x80 {
  16320. break
  16321. }
  16322. }
  16323. if msglen < 0 {
  16324. return ErrInvalidLengthTypes
  16325. }
  16326. postIndex := iNdEx + msglen
  16327. if postIndex < 0 {
  16328. return ErrInvalidLengthTypes
  16329. }
  16330. if postIndex > l {
  16331. return io.ErrUnexpectedEOF
  16332. }
  16333. if err := m.PubKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  16334. return err
  16335. }
  16336. iNdEx = postIndex
  16337. case 2:
  16338. if wireType != 0 {
  16339. return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
  16340. }
  16341. m.Power = 0
  16342. for shift := uint(0); ; shift += 7 {
  16343. if shift >= 64 {
  16344. return ErrIntOverflowTypes
  16345. }
  16346. if iNdEx >= l {
  16347. return io.ErrUnexpectedEOF
  16348. }
  16349. b := dAtA[iNdEx]
  16350. iNdEx++
  16351. m.Power |= int64(b&0x7F) << shift
  16352. if b < 0x80 {
  16353. break
  16354. }
  16355. }
  16356. default:
  16357. iNdEx = preIndex
  16358. skippy, err := skipTypes(dAtA[iNdEx:])
  16359. if err != nil {
  16360. return err
  16361. }
  16362. if (skippy < 0) || (iNdEx+skippy) < 0 {
  16363. return ErrInvalidLengthTypes
  16364. }
  16365. if (iNdEx + skippy) > l {
  16366. return io.ErrUnexpectedEOF
  16367. }
  16368. iNdEx += skippy
  16369. }
  16370. }
  16371. if iNdEx > l {
  16372. return io.ErrUnexpectedEOF
  16373. }
  16374. return nil
  16375. }
  16376. func (m *VoteInfo) Unmarshal(dAtA []byte) error {
  16377. l := len(dAtA)
  16378. iNdEx := 0
  16379. for iNdEx < l {
  16380. preIndex := iNdEx
  16381. var wire uint64
  16382. for shift := uint(0); ; shift += 7 {
  16383. if shift >= 64 {
  16384. return ErrIntOverflowTypes
  16385. }
  16386. if iNdEx >= l {
  16387. return io.ErrUnexpectedEOF
  16388. }
  16389. b := dAtA[iNdEx]
  16390. iNdEx++
  16391. wire |= uint64(b&0x7F) << shift
  16392. if b < 0x80 {
  16393. break
  16394. }
  16395. }
  16396. fieldNum := int32(wire >> 3)
  16397. wireType := int(wire & 0x7)
  16398. if wireType == 4 {
  16399. return fmt.Errorf("proto: VoteInfo: wiretype end group for non-group")
  16400. }
  16401. if fieldNum <= 0 {
  16402. return fmt.Errorf("proto: VoteInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  16403. }
  16404. switch fieldNum {
  16405. case 1:
  16406. if wireType != 2 {
  16407. return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType)
  16408. }
  16409. var msglen int
  16410. for shift := uint(0); ; shift += 7 {
  16411. if shift >= 64 {
  16412. return ErrIntOverflowTypes
  16413. }
  16414. if iNdEx >= l {
  16415. return io.ErrUnexpectedEOF
  16416. }
  16417. b := dAtA[iNdEx]
  16418. iNdEx++
  16419. msglen |= int(b&0x7F) << shift
  16420. if b < 0x80 {
  16421. break
  16422. }
  16423. }
  16424. if msglen < 0 {
  16425. return ErrInvalidLengthTypes
  16426. }
  16427. postIndex := iNdEx + msglen
  16428. if postIndex < 0 {
  16429. return ErrInvalidLengthTypes
  16430. }
  16431. if postIndex > l {
  16432. return io.ErrUnexpectedEOF
  16433. }
  16434. if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  16435. return err
  16436. }
  16437. iNdEx = postIndex
  16438. case 2:
  16439. if wireType != 0 {
  16440. return fmt.Errorf("proto: wrong wireType = %d for field SignedLastBlock", wireType)
  16441. }
  16442. var v int
  16443. for shift := uint(0); ; shift += 7 {
  16444. if shift >= 64 {
  16445. return ErrIntOverflowTypes
  16446. }
  16447. if iNdEx >= l {
  16448. return io.ErrUnexpectedEOF
  16449. }
  16450. b := dAtA[iNdEx]
  16451. iNdEx++
  16452. v |= int(b&0x7F) << shift
  16453. if b < 0x80 {
  16454. break
  16455. }
  16456. }
  16457. m.SignedLastBlock = bool(v != 0)
  16458. default:
  16459. iNdEx = preIndex
  16460. skippy, err := skipTypes(dAtA[iNdEx:])
  16461. if err != nil {
  16462. return err
  16463. }
  16464. if (skippy < 0) || (iNdEx+skippy) < 0 {
  16465. return ErrInvalidLengthTypes
  16466. }
  16467. if (iNdEx + skippy) > l {
  16468. return io.ErrUnexpectedEOF
  16469. }
  16470. iNdEx += skippy
  16471. }
  16472. }
  16473. if iNdEx > l {
  16474. return io.ErrUnexpectedEOF
  16475. }
  16476. return nil
  16477. }
  16478. func (m *Evidence) Unmarshal(dAtA []byte) error {
  16479. l := len(dAtA)
  16480. iNdEx := 0
  16481. for iNdEx < l {
  16482. preIndex := iNdEx
  16483. var wire uint64
  16484. for shift := uint(0); ; shift += 7 {
  16485. if shift >= 64 {
  16486. return ErrIntOverflowTypes
  16487. }
  16488. if iNdEx >= l {
  16489. return io.ErrUnexpectedEOF
  16490. }
  16491. b := dAtA[iNdEx]
  16492. iNdEx++
  16493. wire |= uint64(b&0x7F) << shift
  16494. if b < 0x80 {
  16495. break
  16496. }
  16497. }
  16498. fieldNum := int32(wire >> 3)
  16499. wireType := int(wire & 0x7)
  16500. if wireType == 4 {
  16501. return fmt.Errorf("proto: Evidence: wiretype end group for non-group")
  16502. }
  16503. if fieldNum <= 0 {
  16504. return fmt.Errorf("proto: Evidence: illegal tag %d (wire type %d)", fieldNum, wire)
  16505. }
  16506. switch fieldNum {
  16507. case 1:
  16508. if wireType != 0 {
  16509. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  16510. }
  16511. m.Type = 0
  16512. for shift := uint(0); ; shift += 7 {
  16513. if shift >= 64 {
  16514. return ErrIntOverflowTypes
  16515. }
  16516. if iNdEx >= l {
  16517. return io.ErrUnexpectedEOF
  16518. }
  16519. b := dAtA[iNdEx]
  16520. iNdEx++
  16521. m.Type |= EvidenceType(b&0x7F) << shift
  16522. if b < 0x80 {
  16523. break
  16524. }
  16525. }
  16526. case 2:
  16527. if wireType != 2 {
  16528. return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType)
  16529. }
  16530. var msglen int
  16531. for shift := uint(0); ; shift += 7 {
  16532. if shift >= 64 {
  16533. return ErrIntOverflowTypes
  16534. }
  16535. if iNdEx >= l {
  16536. return io.ErrUnexpectedEOF
  16537. }
  16538. b := dAtA[iNdEx]
  16539. iNdEx++
  16540. msglen |= int(b&0x7F) << shift
  16541. if b < 0x80 {
  16542. break
  16543. }
  16544. }
  16545. if msglen < 0 {
  16546. return ErrInvalidLengthTypes
  16547. }
  16548. postIndex := iNdEx + msglen
  16549. if postIndex < 0 {
  16550. return ErrInvalidLengthTypes
  16551. }
  16552. if postIndex > l {
  16553. return io.ErrUnexpectedEOF
  16554. }
  16555. if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  16556. return err
  16557. }
  16558. iNdEx = postIndex
  16559. case 3:
  16560. if wireType != 0 {
  16561. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  16562. }
  16563. m.Height = 0
  16564. for shift := uint(0); ; shift += 7 {
  16565. if shift >= 64 {
  16566. return ErrIntOverflowTypes
  16567. }
  16568. if iNdEx >= l {
  16569. return io.ErrUnexpectedEOF
  16570. }
  16571. b := dAtA[iNdEx]
  16572. iNdEx++
  16573. m.Height |= int64(b&0x7F) << shift
  16574. if b < 0x80 {
  16575. break
  16576. }
  16577. }
  16578. case 4:
  16579. if wireType != 2 {
  16580. return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
  16581. }
  16582. var msglen int
  16583. for shift := uint(0); ; shift += 7 {
  16584. if shift >= 64 {
  16585. return ErrIntOverflowTypes
  16586. }
  16587. if iNdEx >= l {
  16588. return io.ErrUnexpectedEOF
  16589. }
  16590. b := dAtA[iNdEx]
  16591. iNdEx++
  16592. msglen |= int(b&0x7F) << shift
  16593. if b < 0x80 {
  16594. break
  16595. }
  16596. }
  16597. if msglen < 0 {
  16598. return ErrInvalidLengthTypes
  16599. }
  16600. postIndex := iNdEx + msglen
  16601. if postIndex < 0 {
  16602. return ErrInvalidLengthTypes
  16603. }
  16604. if postIndex > l {
  16605. return io.ErrUnexpectedEOF
  16606. }
  16607. if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil {
  16608. return err
  16609. }
  16610. iNdEx = postIndex
  16611. case 5:
  16612. if wireType != 0 {
  16613. return fmt.Errorf("proto: wrong wireType = %d for field TotalVotingPower", wireType)
  16614. }
  16615. m.TotalVotingPower = 0
  16616. for shift := uint(0); ; shift += 7 {
  16617. if shift >= 64 {
  16618. return ErrIntOverflowTypes
  16619. }
  16620. if iNdEx >= l {
  16621. return io.ErrUnexpectedEOF
  16622. }
  16623. b := dAtA[iNdEx]
  16624. iNdEx++
  16625. m.TotalVotingPower |= int64(b&0x7F) << shift
  16626. if b < 0x80 {
  16627. break
  16628. }
  16629. }
  16630. default:
  16631. iNdEx = preIndex
  16632. skippy, err := skipTypes(dAtA[iNdEx:])
  16633. if err != nil {
  16634. return err
  16635. }
  16636. if (skippy < 0) || (iNdEx+skippy) < 0 {
  16637. return ErrInvalidLengthTypes
  16638. }
  16639. if (iNdEx + skippy) > l {
  16640. return io.ErrUnexpectedEOF
  16641. }
  16642. iNdEx += skippy
  16643. }
  16644. }
  16645. if iNdEx > l {
  16646. return io.ErrUnexpectedEOF
  16647. }
  16648. return nil
  16649. }
  16650. func (m *Snapshot) Unmarshal(dAtA []byte) error {
  16651. l := len(dAtA)
  16652. iNdEx := 0
  16653. for iNdEx < l {
  16654. preIndex := iNdEx
  16655. var wire uint64
  16656. for shift := uint(0); ; shift += 7 {
  16657. if shift >= 64 {
  16658. return ErrIntOverflowTypes
  16659. }
  16660. if iNdEx >= l {
  16661. return io.ErrUnexpectedEOF
  16662. }
  16663. b := dAtA[iNdEx]
  16664. iNdEx++
  16665. wire |= uint64(b&0x7F) << shift
  16666. if b < 0x80 {
  16667. break
  16668. }
  16669. }
  16670. fieldNum := int32(wire >> 3)
  16671. wireType := int(wire & 0x7)
  16672. if wireType == 4 {
  16673. return fmt.Errorf("proto: Snapshot: wiretype end group for non-group")
  16674. }
  16675. if fieldNum <= 0 {
  16676. return fmt.Errorf("proto: Snapshot: illegal tag %d (wire type %d)", fieldNum, wire)
  16677. }
  16678. switch fieldNum {
  16679. case 1:
  16680. if wireType != 0 {
  16681. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  16682. }
  16683. m.Height = 0
  16684. for shift := uint(0); ; shift += 7 {
  16685. if shift >= 64 {
  16686. return ErrIntOverflowTypes
  16687. }
  16688. if iNdEx >= l {
  16689. return io.ErrUnexpectedEOF
  16690. }
  16691. b := dAtA[iNdEx]
  16692. iNdEx++
  16693. m.Height |= uint64(b&0x7F) << shift
  16694. if b < 0x80 {
  16695. break
  16696. }
  16697. }
  16698. case 2:
  16699. if wireType != 0 {
  16700. return fmt.Errorf("proto: wrong wireType = %d for field Format", wireType)
  16701. }
  16702. m.Format = 0
  16703. for shift := uint(0); ; shift += 7 {
  16704. if shift >= 64 {
  16705. return ErrIntOverflowTypes
  16706. }
  16707. if iNdEx >= l {
  16708. return io.ErrUnexpectedEOF
  16709. }
  16710. b := dAtA[iNdEx]
  16711. iNdEx++
  16712. m.Format |= uint32(b&0x7F) << shift
  16713. if b < 0x80 {
  16714. break
  16715. }
  16716. }
  16717. case 3:
  16718. if wireType != 0 {
  16719. return fmt.Errorf("proto: wrong wireType = %d for field Chunks", wireType)
  16720. }
  16721. m.Chunks = 0
  16722. for shift := uint(0); ; shift += 7 {
  16723. if shift >= 64 {
  16724. return ErrIntOverflowTypes
  16725. }
  16726. if iNdEx >= l {
  16727. return io.ErrUnexpectedEOF
  16728. }
  16729. b := dAtA[iNdEx]
  16730. iNdEx++
  16731. m.Chunks |= uint32(b&0x7F) << shift
  16732. if b < 0x80 {
  16733. break
  16734. }
  16735. }
  16736. case 4:
  16737. if wireType != 2 {
  16738. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  16739. }
  16740. var byteLen int
  16741. for shift := uint(0); ; shift += 7 {
  16742. if shift >= 64 {
  16743. return ErrIntOverflowTypes
  16744. }
  16745. if iNdEx >= l {
  16746. return io.ErrUnexpectedEOF
  16747. }
  16748. b := dAtA[iNdEx]
  16749. iNdEx++
  16750. byteLen |= int(b&0x7F) << shift
  16751. if b < 0x80 {
  16752. break
  16753. }
  16754. }
  16755. if byteLen < 0 {
  16756. return ErrInvalidLengthTypes
  16757. }
  16758. postIndex := iNdEx + byteLen
  16759. if postIndex < 0 {
  16760. return ErrInvalidLengthTypes
  16761. }
  16762. if postIndex > l {
  16763. return io.ErrUnexpectedEOF
  16764. }
  16765. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  16766. if m.Hash == nil {
  16767. m.Hash = []byte{}
  16768. }
  16769. iNdEx = postIndex
  16770. case 5:
  16771. if wireType != 2 {
  16772. return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType)
  16773. }
  16774. var byteLen int
  16775. for shift := uint(0); ; shift += 7 {
  16776. if shift >= 64 {
  16777. return ErrIntOverflowTypes
  16778. }
  16779. if iNdEx >= l {
  16780. return io.ErrUnexpectedEOF
  16781. }
  16782. b := dAtA[iNdEx]
  16783. iNdEx++
  16784. byteLen |= int(b&0x7F) << shift
  16785. if b < 0x80 {
  16786. break
  16787. }
  16788. }
  16789. if byteLen < 0 {
  16790. return ErrInvalidLengthTypes
  16791. }
  16792. postIndex := iNdEx + byteLen
  16793. if postIndex < 0 {
  16794. return ErrInvalidLengthTypes
  16795. }
  16796. if postIndex > l {
  16797. return io.ErrUnexpectedEOF
  16798. }
  16799. m.Metadata = append(m.Metadata[:0], dAtA[iNdEx:postIndex]...)
  16800. if m.Metadata == nil {
  16801. m.Metadata = []byte{}
  16802. }
  16803. iNdEx = postIndex
  16804. default:
  16805. iNdEx = preIndex
  16806. skippy, err := skipTypes(dAtA[iNdEx:])
  16807. if err != nil {
  16808. return err
  16809. }
  16810. if (skippy < 0) || (iNdEx+skippy) < 0 {
  16811. return ErrInvalidLengthTypes
  16812. }
  16813. if (iNdEx + skippy) > l {
  16814. return io.ErrUnexpectedEOF
  16815. }
  16816. iNdEx += skippy
  16817. }
  16818. }
  16819. if iNdEx > l {
  16820. return io.ErrUnexpectedEOF
  16821. }
  16822. return nil
  16823. }
  16824. func skipTypes(dAtA []byte) (n int, err error) {
  16825. l := len(dAtA)
  16826. iNdEx := 0
  16827. depth := 0
  16828. for iNdEx < l {
  16829. var wire uint64
  16830. for shift := uint(0); ; shift += 7 {
  16831. if shift >= 64 {
  16832. return 0, ErrIntOverflowTypes
  16833. }
  16834. if iNdEx >= l {
  16835. return 0, io.ErrUnexpectedEOF
  16836. }
  16837. b := dAtA[iNdEx]
  16838. iNdEx++
  16839. wire |= (uint64(b) & 0x7F) << shift
  16840. if b < 0x80 {
  16841. break
  16842. }
  16843. }
  16844. wireType := int(wire & 0x7)
  16845. switch wireType {
  16846. case 0:
  16847. for shift := uint(0); ; shift += 7 {
  16848. if shift >= 64 {
  16849. return 0, ErrIntOverflowTypes
  16850. }
  16851. if iNdEx >= l {
  16852. return 0, io.ErrUnexpectedEOF
  16853. }
  16854. iNdEx++
  16855. if dAtA[iNdEx-1] < 0x80 {
  16856. break
  16857. }
  16858. }
  16859. case 1:
  16860. iNdEx += 8
  16861. case 2:
  16862. var length int
  16863. for shift := uint(0); ; shift += 7 {
  16864. if shift >= 64 {
  16865. return 0, ErrIntOverflowTypes
  16866. }
  16867. if iNdEx >= l {
  16868. return 0, io.ErrUnexpectedEOF
  16869. }
  16870. b := dAtA[iNdEx]
  16871. iNdEx++
  16872. length |= (int(b) & 0x7F) << shift
  16873. if b < 0x80 {
  16874. break
  16875. }
  16876. }
  16877. if length < 0 {
  16878. return 0, ErrInvalidLengthTypes
  16879. }
  16880. iNdEx += length
  16881. case 3:
  16882. depth++
  16883. case 4:
  16884. if depth == 0 {
  16885. return 0, ErrUnexpectedEndOfGroupTypes
  16886. }
  16887. depth--
  16888. case 5:
  16889. iNdEx += 4
  16890. default:
  16891. return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  16892. }
  16893. if iNdEx < 0 {
  16894. return 0, ErrInvalidLengthTypes
  16895. }
  16896. if depth == 0 {
  16897. return iNdEx, nil
  16898. }
  16899. }
  16900. return 0, io.ErrUnexpectedEOF
  16901. }
  16902. var (
  16903. ErrInvalidLengthTypes = fmt.Errorf("proto: negative length found during unmarshaling")
  16904. ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow")
  16905. ErrUnexpectedEndOfGroupTypes = fmt.Errorf("proto: unexpected end of group")
  16906. )