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.

16317 lines
378 KiB

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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 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
6 years ago
  1. // Code generated by protoc-gen-gogo. DO NOT EDIT.
  2. // source: abci/types/types.proto
  3. package types
  4. import (
  5. bytes "bytes"
  6. context "context"
  7. fmt "fmt"
  8. _ "github.com/gogo/protobuf/gogoproto"
  9. proto "github.com/gogo/protobuf/proto"
  10. github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
  11. golang_proto "github.com/golang/protobuf/proto"
  12. _ "github.com/golang/protobuf/ptypes/timestamp"
  13. merkle "github.com/tendermint/tendermint/crypto/merkle"
  14. common "github.com/tendermint/tendermint/libs/common"
  15. grpc "google.golang.org/grpc"
  16. codes "google.golang.org/grpc/codes"
  17. status "google.golang.org/grpc/status"
  18. io "io"
  19. math "math"
  20. math_bits "math/bits"
  21. time "time"
  22. )
  23. // Reference imports to suppress errors if they are not otherwise used.
  24. var _ = proto.Marshal
  25. var _ = golang_proto.Marshal
  26. var _ = fmt.Errorf
  27. var _ = math.Inf
  28. var _ = time.Kitchen
  29. // This is a compile-time assertion to ensure that this generated file
  30. // is compatible with the proto package it is being compiled against.
  31. // A compilation error at this line likely means your copy of the
  32. // proto package needs to be updated.
  33. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
  34. type CheckTxType int32
  35. const (
  36. CheckTxType_New CheckTxType = 0
  37. CheckTxType_Recheck CheckTxType = 1
  38. )
  39. var CheckTxType_name = map[int32]string{
  40. 0: "New",
  41. 1: "Recheck",
  42. }
  43. var CheckTxType_value = map[string]int32{
  44. "New": 0,
  45. "Recheck": 1,
  46. }
  47. func (x CheckTxType) String() string {
  48. return proto.EnumName(CheckTxType_name, int32(x))
  49. }
  50. func (CheckTxType) EnumDescriptor() ([]byte, []int) {
  51. return fileDescriptor_9f1eaa49c51fa1ac, []int{0}
  52. }
  53. type Request struct {
  54. // Types that are valid to be assigned to Value:
  55. // *Request_Echo
  56. // *Request_Flush
  57. // *Request_Info
  58. // *Request_SetOption
  59. // *Request_InitChain
  60. // *Request_Query
  61. // *Request_BeginBlock
  62. // *Request_CheckTx
  63. // *Request_DeliverTx
  64. // *Request_EndBlock
  65. // *Request_Commit
  66. Value isRequest_Value `protobuf_oneof:"value"`
  67. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  68. XXX_unrecognized []byte `json:"-"`
  69. XXX_sizecache int32 `json:"-"`
  70. }
  71. func (m *Request) Reset() { *m = Request{} }
  72. func (m *Request) String() string { return proto.CompactTextString(m) }
  73. func (*Request) ProtoMessage() {}
  74. func (*Request) Descriptor() ([]byte, []int) {
  75. return fileDescriptor_9f1eaa49c51fa1ac, []int{0}
  76. }
  77. func (m *Request) XXX_Unmarshal(b []byte) error {
  78. return m.Unmarshal(b)
  79. }
  80. func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  81. if deterministic {
  82. return xxx_messageInfo_Request.Marshal(b, m, deterministic)
  83. } else {
  84. b = b[:cap(b)]
  85. n, err := m.MarshalToSizedBuffer(b)
  86. if err != nil {
  87. return nil, err
  88. }
  89. return b[:n], nil
  90. }
  91. }
  92. func (m *Request) XXX_Merge(src proto.Message) {
  93. xxx_messageInfo_Request.Merge(m, src)
  94. }
  95. func (m *Request) XXX_Size() int {
  96. return m.Size()
  97. }
  98. func (m *Request) XXX_DiscardUnknown() {
  99. xxx_messageInfo_Request.DiscardUnknown(m)
  100. }
  101. var xxx_messageInfo_Request proto.InternalMessageInfo
  102. type isRequest_Value interface {
  103. isRequest_Value()
  104. Equal(interface{}) bool
  105. MarshalTo([]byte) (int, error)
  106. Size() int
  107. }
  108. type Request_Echo struct {
  109. Echo *RequestEcho `protobuf:"bytes,2,opt,name=echo,proto3,oneof"`
  110. }
  111. type Request_Flush struct {
  112. Flush *RequestFlush `protobuf:"bytes,3,opt,name=flush,proto3,oneof"`
  113. }
  114. type Request_Info struct {
  115. Info *RequestInfo `protobuf:"bytes,4,opt,name=info,proto3,oneof"`
  116. }
  117. type Request_SetOption struct {
  118. SetOption *RequestSetOption `protobuf:"bytes,5,opt,name=set_option,json=setOption,proto3,oneof"`
  119. }
  120. type Request_InitChain struct {
  121. InitChain *RequestInitChain `protobuf:"bytes,6,opt,name=init_chain,json=initChain,proto3,oneof"`
  122. }
  123. type Request_Query struct {
  124. Query *RequestQuery `protobuf:"bytes,7,opt,name=query,proto3,oneof"`
  125. }
  126. type Request_BeginBlock struct {
  127. BeginBlock *RequestBeginBlock `protobuf:"bytes,8,opt,name=begin_block,json=beginBlock,proto3,oneof"`
  128. }
  129. type Request_CheckTx struct {
  130. CheckTx *RequestCheckTx `protobuf:"bytes,9,opt,name=check_tx,json=checkTx,proto3,oneof"`
  131. }
  132. type Request_DeliverTx struct {
  133. DeliverTx *RequestDeliverTx `protobuf:"bytes,19,opt,name=deliver_tx,json=deliverTx,proto3,oneof"`
  134. }
  135. type Request_EndBlock struct {
  136. EndBlock *RequestEndBlock `protobuf:"bytes,11,opt,name=end_block,json=endBlock,proto3,oneof"`
  137. }
  138. type Request_Commit struct {
  139. Commit *RequestCommit `protobuf:"bytes,12,opt,name=commit,proto3,oneof"`
  140. }
  141. func (*Request_Echo) isRequest_Value() {}
  142. func (*Request_Flush) isRequest_Value() {}
  143. func (*Request_Info) isRequest_Value() {}
  144. func (*Request_SetOption) isRequest_Value() {}
  145. func (*Request_InitChain) isRequest_Value() {}
  146. func (*Request_Query) isRequest_Value() {}
  147. func (*Request_BeginBlock) isRequest_Value() {}
  148. func (*Request_CheckTx) isRequest_Value() {}
  149. func (*Request_DeliverTx) isRequest_Value() {}
  150. func (*Request_EndBlock) isRequest_Value() {}
  151. func (*Request_Commit) isRequest_Value() {}
  152. func (m *Request) GetValue() isRequest_Value {
  153. if m != nil {
  154. return m.Value
  155. }
  156. return nil
  157. }
  158. func (m *Request) GetEcho() *RequestEcho {
  159. if x, ok := m.GetValue().(*Request_Echo); ok {
  160. return x.Echo
  161. }
  162. return nil
  163. }
  164. func (m *Request) GetFlush() *RequestFlush {
  165. if x, ok := m.GetValue().(*Request_Flush); ok {
  166. return x.Flush
  167. }
  168. return nil
  169. }
  170. func (m *Request) GetInfo() *RequestInfo {
  171. if x, ok := m.GetValue().(*Request_Info); ok {
  172. return x.Info
  173. }
  174. return nil
  175. }
  176. func (m *Request) GetSetOption() *RequestSetOption {
  177. if x, ok := m.GetValue().(*Request_SetOption); ok {
  178. return x.SetOption
  179. }
  180. return nil
  181. }
  182. func (m *Request) GetInitChain() *RequestInitChain {
  183. if x, ok := m.GetValue().(*Request_InitChain); ok {
  184. return x.InitChain
  185. }
  186. return nil
  187. }
  188. func (m *Request) GetQuery() *RequestQuery {
  189. if x, ok := m.GetValue().(*Request_Query); ok {
  190. return x.Query
  191. }
  192. return nil
  193. }
  194. func (m *Request) GetBeginBlock() *RequestBeginBlock {
  195. if x, ok := m.GetValue().(*Request_BeginBlock); ok {
  196. return x.BeginBlock
  197. }
  198. return nil
  199. }
  200. func (m *Request) GetCheckTx() *RequestCheckTx {
  201. if x, ok := m.GetValue().(*Request_CheckTx); ok {
  202. return x.CheckTx
  203. }
  204. return nil
  205. }
  206. func (m *Request) GetDeliverTx() *RequestDeliverTx {
  207. if x, ok := m.GetValue().(*Request_DeliverTx); ok {
  208. return x.DeliverTx
  209. }
  210. return nil
  211. }
  212. func (m *Request) GetEndBlock() *RequestEndBlock {
  213. if x, ok := m.GetValue().(*Request_EndBlock); ok {
  214. return x.EndBlock
  215. }
  216. return nil
  217. }
  218. func (m *Request) GetCommit() *RequestCommit {
  219. if x, ok := m.GetValue().(*Request_Commit); ok {
  220. return x.Commit
  221. }
  222. return nil
  223. }
  224. // XXX_OneofWrappers is for the internal use of the proto package.
  225. func (*Request) XXX_OneofWrappers() []interface{} {
  226. return []interface{}{
  227. (*Request_Echo)(nil),
  228. (*Request_Flush)(nil),
  229. (*Request_Info)(nil),
  230. (*Request_SetOption)(nil),
  231. (*Request_InitChain)(nil),
  232. (*Request_Query)(nil),
  233. (*Request_BeginBlock)(nil),
  234. (*Request_CheckTx)(nil),
  235. (*Request_DeliverTx)(nil),
  236. (*Request_EndBlock)(nil),
  237. (*Request_Commit)(nil),
  238. }
  239. }
  240. type RequestEcho struct {
  241. Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
  242. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  243. XXX_unrecognized []byte `json:"-"`
  244. XXX_sizecache int32 `json:"-"`
  245. }
  246. func (m *RequestEcho) Reset() { *m = RequestEcho{} }
  247. func (m *RequestEcho) String() string { return proto.CompactTextString(m) }
  248. func (*RequestEcho) ProtoMessage() {}
  249. func (*RequestEcho) Descriptor() ([]byte, []int) {
  250. return fileDescriptor_9f1eaa49c51fa1ac, []int{1}
  251. }
  252. func (m *RequestEcho) XXX_Unmarshal(b []byte) error {
  253. return m.Unmarshal(b)
  254. }
  255. func (m *RequestEcho) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  256. if deterministic {
  257. return xxx_messageInfo_RequestEcho.Marshal(b, m, deterministic)
  258. } else {
  259. b = b[:cap(b)]
  260. n, err := m.MarshalToSizedBuffer(b)
  261. if err != nil {
  262. return nil, err
  263. }
  264. return b[:n], nil
  265. }
  266. }
  267. func (m *RequestEcho) XXX_Merge(src proto.Message) {
  268. xxx_messageInfo_RequestEcho.Merge(m, src)
  269. }
  270. func (m *RequestEcho) XXX_Size() int {
  271. return m.Size()
  272. }
  273. func (m *RequestEcho) XXX_DiscardUnknown() {
  274. xxx_messageInfo_RequestEcho.DiscardUnknown(m)
  275. }
  276. var xxx_messageInfo_RequestEcho proto.InternalMessageInfo
  277. func (m *RequestEcho) GetMessage() string {
  278. if m != nil {
  279. return m.Message
  280. }
  281. return ""
  282. }
  283. type RequestFlush struct {
  284. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  285. XXX_unrecognized []byte `json:"-"`
  286. XXX_sizecache int32 `json:"-"`
  287. }
  288. func (m *RequestFlush) Reset() { *m = RequestFlush{} }
  289. func (m *RequestFlush) String() string { return proto.CompactTextString(m) }
  290. func (*RequestFlush) ProtoMessage() {}
  291. func (*RequestFlush) Descriptor() ([]byte, []int) {
  292. return fileDescriptor_9f1eaa49c51fa1ac, []int{2}
  293. }
  294. func (m *RequestFlush) XXX_Unmarshal(b []byte) error {
  295. return m.Unmarshal(b)
  296. }
  297. func (m *RequestFlush) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  298. if deterministic {
  299. return xxx_messageInfo_RequestFlush.Marshal(b, m, deterministic)
  300. } else {
  301. b = b[:cap(b)]
  302. n, err := m.MarshalToSizedBuffer(b)
  303. if err != nil {
  304. return nil, err
  305. }
  306. return b[:n], nil
  307. }
  308. }
  309. func (m *RequestFlush) XXX_Merge(src proto.Message) {
  310. xxx_messageInfo_RequestFlush.Merge(m, src)
  311. }
  312. func (m *RequestFlush) XXX_Size() int {
  313. return m.Size()
  314. }
  315. func (m *RequestFlush) XXX_DiscardUnknown() {
  316. xxx_messageInfo_RequestFlush.DiscardUnknown(m)
  317. }
  318. var xxx_messageInfo_RequestFlush proto.InternalMessageInfo
  319. type RequestInfo struct {
  320. Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
  321. BlockVersion uint64 `protobuf:"varint,2,opt,name=block_version,json=blockVersion,proto3" json:"block_version,omitempty"`
  322. P2PVersion uint64 `protobuf:"varint,3,opt,name=p2p_version,json=p2pVersion,proto3" json:"p2p_version,omitempty"`
  323. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  324. XXX_unrecognized []byte `json:"-"`
  325. XXX_sizecache int32 `json:"-"`
  326. }
  327. func (m *RequestInfo) Reset() { *m = RequestInfo{} }
  328. func (m *RequestInfo) String() string { return proto.CompactTextString(m) }
  329. func (*RequestInfo) ProtoMessage() {}
  330. func (*RequestInfo) Descriptor() ([]byte, []int) {
  331. return fileDescriptor_9f1eaa49c51fa1ac, []int{3}
  332. }
  333. func (m *RequestInfo) XXX_Unmarshal(b []byte) error {
  334. return m.Unmarshal(b)
  335. }
  336. func (m *RequestInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  337. if deterministic {
  338. return xxx_messageInfo_RequestInfo.Marshal(b, m, deterministic)
  339. } else {
  340. b = b[:cap(b)]
  341. n, err := m.MarshalToSizedBuffer(b)
  342. if err != nil {
  343. return nil, err
  344. }
  345. return b[:n], nil
  346. }
  347. }
  348. func (m *RequestInfo) XXX_Merge(src proto.Message) {
  349. xxx_messageInfo_RequestInfo.Merge(m, src)
  350. }
  351. func (m *RequestInfo) XXX_Size() int {
  352. return m.Size()
  353. }
  354. func (m *RequestInfo) XXX_DiscardUnknown() {
  355. xxx_messageInfo_RequestInfo.DiscardUnknown(m)
  356. }
  357. var xxx_messageInfo_RequestInfo proto.InternalMessageInfo
  358. func (m *RequestInfo) GetVersion() string {
  359. if m != nil {
  360. return m.Version
  361. }
  362. return ""
  363. }
  364. func (m *RequestInfo) GetBlockVersion() uint64 {
  365. if m != nil {
  366. return m.BlockVersion
  367. }
  368. return 0
  369. }
  370. func (m *RequestInfo) GetP2PVersion() uint64 {
  371. if m != nil {
  372. return m.P2PVersion
  373. }
  374. return 0
  375. }
  376. // nondeterministic
  377. type RequestSetOption struct {
  378. Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
  379. Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
  380. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  381. XXX_unrecognized []byte `json:"-"`
  382. XXX_sizecache int32 `json:"-"`
  383. }
  384. func (m *RequestSetOption) Reset() { *m = RequestSetOption{} }
  385. func (m *RequestSetOption) String() string { return proto.CompactTextString(m) }
  386. func (*RequestSetOption) ProtoMessage() {}
  387. func (*RequestSetOption) Descriptor() ([]byte, []int) {
  388. return fileDescriptor_9f1eaa49c51fa1ac, []int{4}
  389. }
  390. func (m *RequestSetOption) XXX_Unmarshal(b []byte) error {
  391. return m.Unmarshal(b)
  392. }
  393. func (m *RequestSetOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  394. if deterministic {
  395. return xxx_messageInfo_RequestSetOption.Marshal(b, m, deterministic)
  396. } else {
  397. b = b[:cap(b)]
  398. n, err := m.MarshalToSizedBuffer(b)
  399. if err != nil {
  400. return nil, err
  401. }
  402. return b[:n], nil
  403. }
  404. }
  405. func (m *RequestSetOption) XXX_Merge(src proto.Message) {
  406. xxx_messageInfo_RequestSetOption.Merge(m, src)
  407. }
  408. func (m *RequestSetOption) XXX_Size() int {
  409. return m.Size()
  410. }
  411. func (m *RequestSetOption) XXX_DiscardUnknown() {
  412. xxx_messageInfo_RequestSetOption.DiscardUnknown(m)
  413. }
  414. var xxx_messageInfo_RequestSetOption proto.InternalMessageInfo
  415. func (m *RequestSetOption) GetKey() string {
  416. if m != nil {
  417. return m.Key
  418. }
  419. return ""
  420. }
  421. func (m *RequestSetOption) GetValue() string {
  422. if m != nil {
  423. return m.Value
  424. }
  425. return ""
  426. }
  427. type RequestInitChain struct {
  428. Time time.Time `protobuf:"bytes,1,opt,name=time,proto3,stdtime" json:"time"`
  429. ChainId string `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
  430. ConsensusParams *ConsensusParams `protobuf:"bytes,3,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"`
  431. Validators []ValidatorUpdate `protobuf:"bytes,4,rep,name=validators,proto3" json:"validators"`
  432. AppStateBytes []byte `protobuf:"bytes,5,opt,name=app_state_bytes,json=appStateBytes,proto3" json:"app_state_bytes,omitempty"`
  433. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  434. XXX_unrecognized []byte `json:"-"`
  435. XXX_sizecache int32 `json:"-"`
  436. }
  437. func (m *RequestInitChain) Reset() { *m = RequestInitChain{} }
  438. func (m *RequestInitChain) String() string { return proto.CompactTextString(m) }
  439. func (*RequestInitChain) ProtoMessage() {}
  440. func (*RequestInitChain) Descriptor() ([]byte, []int) {
  441. return fileDescriptor_9f1eaa49c51fa1ac, []int{5}
  442. }
  443. func (m *RequestInitChain) XXX_Unmarshal(b []byte) error {
  444. return m.Unmarshal(b)
  445. }
  446. func (m *RequestInitChain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  447. if deterministic {
  448. return xxx_messageInfo_RequestInitChain.Marshal(b, m, deterministic)
  449. } else {
  450. b = b[:cap(b)]
  451. n, err := m.MarshalToSizedBuffer(b)
  452. if err != nil {
  453. return nil, err
  454. }
  455. return b[:n], nil
  456. }
  457. }
  458. func (m *RequestInitChain) XXX_Merge(src proto.Message) {
  459. xxx_messageInfo_RequestInitChain.Merge(m, src)
  460. }
  461. func (m *RequestInitChain) XXX_Size() int {
  462. return m.Size()
  463. }
  464. func (m *RequestInitChain) XXX_DiscardUnknown() {
  465. xxx_messageInfo_RequestInitChain.DiscardUnknown(m)
  466. }
  467. var xxx_messageInfo_RequestInitChain proto.InternalMessageInfo
  468. func (m *RequestInitChain) GetTime() time.Time {
  469. if m != nil {
  470. return m.Time
  471. }
  472. return time.Time{}
  473. }
  474. func (m *RequestInitChain) GetChainId() string {
  475. if m != nil {
  476. return m.ChainId
  477. }
  478. return ""
  479. }
  480. func (m *RequestInitChain) GetConsensusParams() *ConsensusParams {
  481. if m != nil {
  482. return m.ConsensusParams
  483. }
  484. return nil
  485. }
  486. func (m *RequestInitChain) GetValidators() []ValidatorUpdate {
  487. if m != nil {
  488. return m.Validators
  489. }
  490. return nil
  491. }
  492. func (m *RequestInitChain) GetAppStateBytes() []byte {
  493. if m != nil {
  494. return m.AppStateBytes
  495. }
  496. return nil
  497. }
  498. type RequestQuery struct {
  499. Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
  500. Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
  501. Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
  502. Prove bool `protobuf:"varint,4,opt,name=prove,proto3" json:"prove,omitempty"`
  503. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  504. XXX_unrecognized []byte `json:"-"`
  505. XXX_sizecache int32 `json:"-"`
  506. }
  507. func (m *RequestQuery) Reset() { *m = RequestQuery{} }
  508. func (m *RequestQuery) String() string { return proto.CompactTextString(m) }
  509. func (*RequestQuery) ProtoMessage() {}
  510. func (*RequestQuery) Descriptor() ([]byte, []int) {
  511. return fileDescriptor_9f1eaa49c51fa1ac, []int{6}
  512. }
  513. func (m *RequestQuery) XXX_Unmarshal(b []byte) error {
  514. return m.Unmarshal(b)
  515. }
  516. func (m *RequestQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  517. if deterministic {
  518. return xxx_messageInfo_RequestQuery.Marshal(b, m, deterministic)
  519. } else {
  520. b = b[:cap(b)]
  521. n, err := m.MarshalToSizedBuffer(b)
  522. if err != nil {
  523. return nil, err
  524. }
  525. return b[:n], nil
  526. }
  527. }
  528. func (m *RequestQuery) XXX_Merge(src proto.Message) {
  529. xxx_messageInfo_RequestQuery.Merge(m, src)
  530. }
  531. func (m *RequestQuery) XXX_Size() int {
  532. return m.Size()
  533. }
  534. func (m *RequestQuery) XXX_DiscardUnknown() {
  535. xxx_messageInfo_RequestQuery.DiscardUnknown(m)
  536. }
  537. var xxx_messageInfo_RequestQuery proto.InternalMessageInfo
  538. func (m *RequestQuery) GetData() []byte {
  539. if m != nil {
  540. return m.Data
  541. }
  542. return nil
  543. }
  544. func (m *RequestQuery) GetPath() string {
  545. if m != nil {
  546. return m.Path
  547. }
  548. return ""
  549. }
  550. func (m *RequestQuery) GetHeight() int64 {
  551. if m != nil {
  552. return m.Height
  553. }
  554. return 0
  555. }
  556. func (m *RequestQuery) GetProve() bool {
  557. if m != nil {
  558. return m.Prove
  559. }
  560. return false
  561. }
  562. type RequestBeginBlock struct {
  563. Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
  564. Header Header `protobuf:"bytes,2,opt,name=header,proto3" json:"header"`
  565. LastCommitInfo LastCommitInfo `protobuf:"bytes,3,opt,name=last_commit_info,json=lastCommitInfo,proto3" json:"last_commit_info"`
  566. ByzantineValidators []Evidence `protobuf:"bytes,4,rep,name=byzantine_validators,json=byzantineValidators,proto3" json:"byzantine_validators"`
  567. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  568. XXX_unrecognized []byte `json:"-"`
  569. XXX_sizecache int32 `json:"-"`
  570. }
  571. func (m *RequestBeginBlock) Reset() { *m = RequestBeginBlock{} }
  572. func (m *RequestBeginBlock) String() string { return proto.CompactTextString(m) }
  573. func (*RequestBeginBlock) ProtoMessage() {}
  574. func (*RequestBeginBlock) Descriptor() ([]byte, []int) {
  575. return fileDescriptor_9f1eaa49c51fa1ac, []int{7}
  576. }
  577. func (m *RequestBeginBlock) XXX_Unmarshal(b []byte) error {
  578. return m.Unmarshal(b)
  579. }
  580. func (m *RequestBeginBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  581. if deterministic {
  582. return xxx_messageInfo_RequestBeginBlock.Marshal(b, m, deterministic)
  583. } else {
  584. b = b[:cap(b)]
  585. n, err := m.MarshalToSizedBuffer(b)
  586. if err != nil {
  587. return nil, err
  588. }
  589. return b[:n], nil
  590. }
  591. }
  592. func (m *RequestBeginBlock) XXX_Merge(src proto.Message) {
  593. xxx_messageInfo_RequestBeginBlock.Merge(m, src)
  594. }
  595. func (m *RequestBeginBlock) XXX_Size() int {
  596. return m.Size()
  597. }
  598. func (m *RequestBeginBlock) XXX_DiscardUnknown() {
  599. xxx_messageInfo_RequestBeginBlock.DiscardUnknown(m)
  600. }
  601. var xxx_messageInfo_RequestBeginBlock proto.InternalMessageInfo
  602. func (m *RequestBeginBlock) GetHash() []byte {
  603. if m != nil {
  604. return m.Hash
  605. }
  606. return nil
  607. }
  608. func (m *RequestBeginBlock) GetHeader() Header {
  609. if m != nil {
  610. return m.Header
  611. }
  612. return Header{}
  613. }
  614. func (m *RequestBeginBlock) GetLastCommitInfo() LastCommitInfo {
  615. if m != nil {
  616. return m.LastCommitInfo
  617. }
  618. return LastCommitInfo{}
  619. }
  620. func (m *RequestBeginBlock) GetByzantineValidators() []Evidence {
  621. if m != nil {
  622. return m.ByzantineValidators
  623. }
  624. return nil
  625. }
  626. type RequestCheckTx struct {
  627. Tx []byte `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"`
  628. Type CheckTxType `protobuf:"varint,2,opt,name=type,proto3,enum=types.CheckTxType" json:"type,omitempty"`
  629. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  630. XXX_unrecognized []byte `json:"-"`
  631. XXX_sizecache int32 `json:"-"`
  632. }
  633. func (m *RequestCheckTx) Reset() { *m = RequestCheckTx{} }
  634. func (m *RequestCheckTx) String() string { return proto.CompactTextString(m) }
  635. func (*RequestCheckTx) ProtoMessage() {}
  636. func (*RequestCheckTx) Descriptor() ([]byte, []int) {
  637. return fileDescriptor_9f1eaa49c51fa1ac, []int{8}
  638. }
  639. func (m *RequestCheckTx) XXX_Unmarshal(b []byte) error {
  640. return m.Unmarshal(b)
  641. }
  642. func (m *RequestCheckTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  643. if deterministic {
  644. return xxx_messageInfo_RequestCheckTx.Marshal(b, m, deterministic)
  645. } else {
  646. b = b[:cap(b)]
  647. n, err := m.MarshalToSizedBuffer(b)
  648. if err != nil {
  649. return nil, err
  650. }
  651. return b[:n], nil
  652. }
  653. }
  654. func (m *RequestCheckTx) XXX_Merge(src proto.Message) {
  655. xxx_messageInfo_RequestCheckTx.Merge(m, src)
  656. }
  657. func (m *RequestCheckTx) XXX_Size() int {
  658. return m.Size()
  659. }
  660. func (m *RequestCheckTx) XXX_DiscardUnknown() {
  661. xxx_messageInfo_RequestCheckTx.DiscardUnknown(m)
  662. }
  663. var xxx_messageInfo_RequestCheckTx proto.InternalMessageInfo
  664. func (m *RequestCheckTx) GetTx() []byte {
  665. if m != nil {
  666. return m.Tx
  667. }
  668. return nil
  669. }
  670. func (m *RequestCheckTx) GetType() CheckTxType {
  671. if m != nil {
  672. return m.Type
  673. }
  674. return CheckTxType_New
  675. }
  676. type RequestDeliverTx struct {
  677. Tx []byte `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"`
  678. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  679. XXX_unrecognized []byte `json:"-"`
  680. XXX_sizecache int32 `json:"-"`
  681. }
  682. func (m *RequestDeliverTx) Reset() { *m = RequestDeliverTx{} }
  683. func (m *RequestDeliverTx) String() string { return proto.CompactTextString(m) }
  684. func (*RequestDeliverTx) ProtoMessage() {}
  685. func (*RequestDeliverTx) Descriptor() ([]byte, []int) {
  686. return fileDescriptor_9f1eaa49c51fa1ac, []int{9}
  687. }
  688. func (m *RequestDeliverTx) XXX_Unmarshal(b []byte) error {
  689. return m.Unmarshal(b)
  690. }
  691. func (m *RequestDeliverTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  692. if deterministic {
  693. return xxx_messageInfo_RequestDeliverTx.Marshal(b, m, deterministic)
  694. } else {
  695. b = b[:cap(b)]
  696. n, err := m.MarshalToSizedBuffer(b)
  697. if err != nil {
  698. return nil, err
  699. }
  700. return b[:n], nil
  701. }
  702. }
  703. func (m *RequestDeliverTx) XXX_Merge(src proto.Message) {
  704. xxx_messageInfo_RequestDeliverTx.Merge(m, src)
  705. }
  706. func (m *RequestDeliverTx) XXX_Size() int {
  707. return m.Size()
  708. }
  709. func (m *RequestDeliverTx) XXX_DiscardUnknown() {
  710. xxx_messageInfo_RequestDeliverTx.DiscardUnknown(m)
  711. }
  712. var xxx_messageInfo_RequestDeliverTx proto.InternalMessageInfo
  713. func (m *RequestDeliverTx) GetTx() []byte {
  714. if m != nil {
  715. return m.Tx
  716. }
  717. return nil
  718. }
  719. type RequestEndBlock struct {
  720. Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
  721. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  722. XXX_unrecognized []byte `json:"-"`
  723. XXX_sizecache int32 `json:"-"`
  724. }
  725. func (m *RequestEndBlock) Reset() { *m = RequestEndBlock{} }
  726. func (m *RequestEndBlock) String() string { return proto.CompactTextString(m) }
  727. func (*RequestEndBlock) ProtoMessage() {}
  728. func (*RequestEndBlock) Descriptor() ([]byte, []int) {
  729. return fileDescriptor_9f1eaa49c51fa1ac, []int{10}
  730. }
  731. func (m *RequestEndBlock) XXX_Unmarshal(b []byte) error {
  732. return m.Unmarshal(b)
  733. }
  734. func (m *RequestEndBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  735. if deterministic {
  736. return xxx_messageInfo_RequestEndBlock.Marshal(b, m, deterministic)
  737. } else {
  738. b = b[:cap(b)]
  739. n, err := m.MarshalToSizedBuffer(b)
  740. if err != nil {
  741. return nil, err
  742. }
  743. return b[:n], nil
  744. }
  745. }
  746. func (m *RequestEndBlock) XXX_Merge(src proto.Message) {
  747. xxx_messageInfo_RequestEndBlock.Merge(m, src)
  748. }
  749. func (m *RequestEndBlock) XXX_Size() int {
  750. return m.Size()
  751. }
  752. func (m *RequestEndBlock) XXX_DiscardUnknown() {
  753. xxx_messageInfo_RequestEndBlock.DiscardUnknown(m)
  754. }
  755. var xxx_messageInfo_RequestEndBlock proto.InternalMessageInfo
  756. func (m *RequestEndBlock) GetHeight() int64 {
  757. if m != nil {
  758. return m.Height
  759. }
  760. return 0
  761. }
  762. type RequestCommit struct {
  763. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  764. XXX_unrecognized []byte `json:"-"`
  765. XXX_sizecache int32 `json:"-"`
  766. }
  767. func (m *RequestCommit) Reset() { *m = RequestCommit{} }
  768. func (m *RequestCommit) String() string { return proto.CompactTextString(m) }
  769. func (*RequestCommit) ProtoMessage() {}
  770. func (*RequestCommit) Descriptor() ([]byte, []int) {
  771. return fileDescriptor_9f1eaa49c51fa1ac, []int{11}
  772. }
  773. func (m *RequestCommit) XXX_Unmarshal(b []byte) error {
  774. return m.Unmarshal(b)
  775. }
  776. func (m *RequestCommit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  777. if deterministic {
  778. return xxx_messageInfo_RequestCommit.Marshal(b, m, deterministic)
  779. } else {
  780. b = b[:cap(b)]
  781. n, err := m.MarshalToSizedBuffer(b)
  782. if err != nil {
  783. return nil, err
  784. }
  785. return b[:n], nil
  786. }
  787. }
  788. func (m *RequestCommit) XXX_Merge(src proto.Message) {
  789. xxx_messageInfo_RequestCommit.Merge(m, src)
  790. }
  791. func (m *RequestCommit) XXX_Size() int {
  792. return m.Size()
  793. }
  794. func (m *RequestCommit) XXX_DiscardUnknown() {
  795. xxx_messageInfo_RequestCommit.DiscardUnknown(m)
  796. }
  797. var xxx_messageInfo_RequestCommit proto.InternalMessageInfo
  798. type Response struct {
  799. // Types that are valid to be assigned to Value:
  800. // *Response_Exception
  801. // *Response_Echo
  802. // *Response_Flush
  803. // *Response_Info
  804. // *Response_SetOption
  805. // *Response_InitChain
  806. // *Response_Query
  807. // *Response_BeginBlock
  808. // *Response_CheckTx
  809. // *Response_DeliverTx
  810. // *Response_EndBlock
  811. // *Response_Commit
  812. Value isResponse_Value `protobuf_oneof:"value"`
  813. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  814. XXX_unrecognized []byte `json:"-"`
  815. XXX_sizecache int32 `json:"-"`
  816. }
  817. func (m *Response) Reset() { *m = Response{} }
  818. func (m *Response) String() string { return proto.CompactTextString(m) }
  819. func (*Response) ProtoMessage() {}
  820. func (*Response) Descriptor() ([]byte, []int) {
  821. return fileDescriptor_9f1eaa49c51fa1ac, []int{12}
  822. }
  823. func (m *Response) XXX_Unmarshal(b []byte) error {
  824. return m.Unmarshal(b)
  825. }
  826. func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  827. if deterministic {
  828. return xxx_messageInfo_Response.Marshal(b, m, deterministic)
  829. } else {
  830. b = b[:cap(b)]
  831. n, err := m.MarshalToSizedBuffer(b)
  832. if err != nil {
  833. return nil, err
  834. }
  835. return b[:n], nil
  836. }
  837. }
  838. func (m *Response) XXX_Merge(src proto.Message) {
  839. xxx_messageInfo_Response.Merge(m, src)
  840. }
  841. func (m *Response) XXX_Size() int {
  842. return m.Size()
  843. }
  844. func (m *Response) XXX_DiscardUnknown() {
  845. xxx_messageInfo_Response.DiscardUnknown(m)
  846. }
  847. var xxx_messageInfo_Response proto.InternalMessageInfo
  848. type isResponse_Value interface {
  849. isResponse_Value()
  850. Equal(interface{}) bool
  851. MarshalTo([]byte) (int, error)
  852. Size() int
  853. }
  854. type Response_Exception struct {
  855. Exception *ResponseException `protobuf:"bytes,1,opt,name=exception,proto3,oneof"`
  856. }
  857. type Response_Echo struct {
  858. Echo *ResponseEcho `protobuf:"bytes,2,opt,name=echo,proto3,oneof"`
  859. }
  860. type Response_Flush struct {
  861. Flush *ResponseFlush `protobuf:"bytes,3,opt,name=flush,proto3,oneof"`
  862. }
  863. type Response_Info struct {
  864. Info *ResponseInfo `protobuf:"bytes,4,opt,name=info,proto3,oneof"`
  865. }
  866. type Response_SetOption struct {
  867. SetOption *ResponseSetOption `protobuf:"bytes,5,opt,name=set_option,json=setOption,proto3,oneof"`
  868. }
  869. type Response_InitChain struct {
  870. InitChain *ResponseInitChain `protobuf:"bytes,6,opt,name=init_chain,json=initChain,proto3,oneof"`
  871. }
  872. type Response_Query struct {
  873. Query *ResponseQuery `protobuf:"bytes,7,opt,name=query,proto3,oneof"`
  874. }
  875. type Response_BeginBlock struct {
  876. BeginBlock *ResponseBeginBlock `protobuf:"bytes,8,opt,name=begin_block,json=beginBlock,proto3,oneof"`
  877. }
  878. type Response_CheckTx struct {
  879. CheckTx *ResponseCheckTx `protobuf:"bytes,9,opt,name=check_tx,json=checkTx,proto3,oneof"`
  880. }
  881. type Response_DeliverTx struct {
  882. DeliverTx *ResponseDeliverTx `protobuf:"bytes,10,opt,name=deliver_tx,json=deliverTx,proto3,oneof"`
  883. }
  884. type Response_EndBlock struct {
  885. EndBlock *ResponseEndBlock `protobuf:"bytes,11,opt,name=end_block,json=endBlock,proto3,oneof"`
  886. }
  887. type Response_Commit struct {
  888. Commit *ResponseCommit `protobuf:"bytes,12,opt,name=commit,proto3,oneof"`
  889. }
  890. func (*Response_Exception) isResponse_Value() {}
  891. func (*Response_Echo) isResponse_Value() {}
  892. func (*Response_Flush) isResponse_Value() {}
  893. func (*Response_Info) isResponse_Value() {}
  894. func (*Response_SetOption) isResponse_Value() {}
  895. func (*Response_InitChain) isResponse_Value() {}
  896. func (*Response_Query) isResponse_Value() {}
  897. func (*Response_BeginBlock) isResponse_Value() {}
  898. func (*Response_CheckTx) isResponse_Value() {}
  899. func (*Response_DeliverTx) isResponse_Value() {}
  900. func (*Response_EndBlock) isResponse_Value() {}
  901. func (*Response_Commit) isResponse_Value() {}
  902. func (m *Response) GetValue() isResponse_Value {
  903. if m != nil {
  904. return m.Value
  905. }
  906. return nil
  907. }
  908. func (m *Response) GetException() *ResponseException {
  909. if x, ok := m.GetValue().(*Response_Exception); ok {
  910. return x.Exception
  911. }
  912. return nil
  913. }
  914. func (m *Response) GetEcho() *ResponseEcho {
  915. if x, ok := m.GetValue().(*Response_Echo); ok {
  916. return x.Echo
  917. }
  918. return nil
  919. }
  920. func (m *Response) GetFlush() *ResponseFlush {
  921. if x, ok := m.GetValue().(*Response_Flush); ok {
  922. return x.Flush
  923. }
  924. return nil
  925. }
  926. func (m *Response) GetInfo() *ResponseInfo {
  927. if x, ok := m.GetValue().(*Response_Info); ok {
  928. return x.Info
  929. }
  930. return nil
  931. }
  932. func (m *Response) GetSetOption() *ResponseSetOption {
  933. if x, ok := m.GetValue().(*Response_SetOption); ok {
  934. return x.SetOption
  935. }
  936. return nil
  937. }
  938. func (m *Response) GetInitChain() *ResponseInitChain {
  939. if x, ok := m.GetValue().(*Response_InitChain); ok {
  940. return x.InitChain
  941. }
  942. return nil
  943. }
  944. func (m *Response) GetQuery() *ResponseQuery {
  945. if x, ok := m.GetValue().(*Response_Query); ok {
  946. return x.Query
  947. }
  948. return nil
  949. }
  950. func (m *Response) GetBeginBlock() *ResponseBeginBlock {
  951. if x, ok := m.GetValue().(*Response_BeginBlock); ok {
  952. return x.BeginBlock
  953. }
  954. return nil
  955. }
  956. func (m *Response) GetCheckTx() *ResponseCheckTx {
  957. if x, ok := m.GetValue().(*Response_CheckTx); ok {
  958. return x.CheckTx
  959. }
  960. return nil
  961. }
  962. func (m *Response) GetDeliverTx() *ResponseDeliverTx {
  963. if x, ok := m.GetValue().(*Response_DeliverTx); ok {
  964. return x.DeliverTx
  965. }
  966. return nil
  967. }
  968. func (m *Response) GetEndBlock() *ResponseEndBlock {
  969. if x, ok := m.GetValue().(*Response_EndBlock); ok {
  970. return x.EndBlock
  971. }
  972. return nil
  973. }
  974. func (m *Response) GetCommit() *ResponseCommit {
  975. if x, ok := m.GetValue().(*Response_Commit); ok {
  976. return x.Commit
  977. }
  978. return nil
  979. }
  980. // XXX_OneofWrappers is for the internal use of the proto package.
  981. func (*Response) XXX_OneofWrappers() []interface{} {
  982. return []interface{}{
  983. (*Response_Exception)(nil),
  984. (*Response_Echo)(nil),
  985. (*Response_Flush)(nil),
  986. (*Response_Info)(nil),
  987. (*Response_SetOption)(nil),
  988. (*Response_InitChain)(nil),
  989. (*Response_Query)(nil),
  990. (*Response_BeginBlock)(nil),
  991. (*Response_CheckTx)(nil),
  992. (*Response_DeliverTx)(nil),
  993. (*Response_EndBlock)(nil),
  994. (*Response_Commit)(nil),
  995. }
  996. }
  997. // nondeterministic
  998. type ResponseException struct {
  999. Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
  1000. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1001. XXX_unrecognized []byte `json:"-"`
  1002. XXX_sizecache int32 `json:"-"`
  1003. }
  1004. func (m *ResponseException) Reset() { *m = ResponseException{} }
  1005. func (m *ResponseException) String() string { return proto.CompactTextString(m) }
  1006. func (*ResponseException) ProtoMessage() {}
  1007. func (*ResponseException) Descriptor() ([]byte, []int) {
  1008. return fileDescriptor_9f1eaa49c51fa1ac, []int{13}
  1009. }
  1010. func (m *ResponseException) XXX_Unmarshal(b []byte) error {
  1011. return m.Unmarshal(b)
  1012. }
  1013. func (m *ResponseException) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1014. if deterministic {
  1015. return xxx_messageInfo_ResponseException.Marshal(b, m, deterministic)
  1016. } else {
  1017. b = b[:cap(b)]
  1018. n, err := m.MarshalToSizedBuffer(b)
  1019. if err != nil {
  1020. return nil, err
  1021. }
  1022. return b[:n], nil
  1023. }
  1024. }
  1025. func (m *ResponseException) XXX_Merge(src proto.Message) {
  1026. xxx_messageInfo_ResponseException.Merge(m, src)
  1027. }
  1028. func (m *ResponseException) XXX_Size() int {
  1029. return m.Size()
  1030. }
  1031. func (m *ResponseException) XXX_DiscardUnknown() {
  1032. xxx_messageInfo_ResponseException.DiscardUnknown(m)
  1033. }
  1034. var xxx_messageInfo_ResponseException proto.InternalMessageInfo
  1035. func (m *ResponseException) GetError() string {
  1036. if m != nil {
  1037. return m.Error
  1038. }
  1039. return ""
  1040. }
  1041. type ResponseEcho struct {
  1042. Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
  1043. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1044. XXX_unrecognized []byte `json:"-"`
  1045. XXX_sizecache int32 `json:"-"`
  1046. }
  1047. func (m *ResponseEcho) Reset() { *m = ResponseEcho{} }
  1048. func (m *ResponseEcho) String() string { return proto.CompactTextString(m) }
  1049. func (*ResponseEcho) ProtoMessage() {}
  1050. func (*ResponseEcho) Descriptor() ([]byte, []int) {
  1051. return fileDescriptor_9f1eaa49c51fa1ac, []int{14}
  1052. }
  1053. func (m *ResponseEcho) XXX_Unmarshal(b []byte) error {
  1054. return m.Unmarshal(b)
  1055. }
  1056. func (m *ResponseEcho) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1057. if deterministic {
  1058. return xxx_messageInfo_ResponseEcho.Marshal(b, m, deterministic)
  1059. } else {
  1060. b = b[:cap(b)]
  1061. n, err := m.MarshalToSizedBuffer(b)
  1062. if err != nil {
  1063. return nil, err
  1064. }
  1065. return b[:n], nil
  1066. }
  1067. }
  1068. func (m *ResponseEcho) XXX_Merge(src proto.Message) {
  1069. xxx_messageInfo_ResponseEcho.Merge(m, src)
  1070. }
  1071. func (m *ResponseEcho) XXX_Size() int {
  1072. return m.Size()
  1073. }
  1074. func (m *ResponseEcho) XXX_DiscardUnknown() {
  1075. xxx_messageInfo_ResponseEcho.DiscardUnknown(m)
  1076. }
  1077. var xxx_messageInfo_ResponseEcho proto.InternalMessageInfo
  1078. func (m *ResponseEcho) GetMessage() string {
  1079. if m != nil {
  1080. return m.Message
  1081. }
  1082. return ""
  1083. }
  1084. type ResponseFlush struct {
  1085. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1086. XXX_unrecognized []byte `json:"-"`
  1087. XXX_sizecache int32 `json:"-"`
  1088. }
  1089. func (m *ResponseFlush) Reset() { *m = ResponseFlush{} }
  1090. func (m *ResponseFlush) String() string { return proto.CompactTextString(m) }
  1091. func (*ResponseFlush) ProtoMessage() {}
  1092. func (*ResponseFlush) Descriptor() ([]byte, []int) {
  1093. return fileDescriptor_9f1eaa49c51fa1ac, []int{15}
  1094. }
  1095. func (m *ResponseFlush) XXX_Unmarshal(b []byte) error {
  1096. return m.Unmarshal(b)
  1097. }
  1098. func (m *ResponseFlush) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1099. if deterministic {
  1100. return xxx_messageInfo_ResponseFlush.Marshal(b, m, deterministic)
  1101. } else {
  1102. b = b[:cap(b)]
  1103. n, err := m.MarshalToSizedBuffer(b)
  1104. if err != nil {
  1105. return nil, err
  1106. }
  1107. return b[:n], nil
  1108. }
  1109. }
  1110. func (m *ResponseFlush) XXX_Merge(src proto.Message) {
  1111. xxx_messageInfo_ResponseFlush.Merge(m, src)
  1112. }
  1113. func (m *ResponseFlush) XXX_Size() int {
  1114. return m.Size()
  1115. }
  1116. func (m *ResponseFlush) XXX_DiscardUnknown() {
  1117. xxx_messageInfo_ResponseFlush.DiscardUnknown(m)
  1118. }
  1119. var xxx_messageInfo_ResponseFlush proto.InternalMessageInfo
  1120. type ResponseInfo struct {
  1121. Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
  1122. Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
  1123. AppVersion uint64 `protobuf:"varint,3,opt,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"`
  1124. LastBlockHeight int64 `protobuf:"varint,4,opt,name=last_block_height,json=lastBlockHeight,proto3" json:"last_block_height,omitempty"`
  1125. LastBlockAppHash []byte `protobuf:"bytes,5,opt,name=last_block_app_hash,json=lastBlockAppHash,proto3" json:"last_block_app_hash,omitempty"`
  1126. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1127. XXX_unrecognized []byte `json:"-"`
  1128. XXX_sizecache int32 `json:"-"`
  1129. }
  1130. func (m *ResponseInfo) Reset() { *m = ResponseInfo{} }
  1131. func (m *ResponseInfo) String() string { return proto.CompactTextString(m) }
  1132. func (*ResponseInfo) ProtoMessage() {}
  1133. func (*ResponseInfo) Descriptor() ([]byte, []int) {
  1134. return fileDescriptor_9f1eaa49c51fa1ac, []int{16}
  1135. }
  1136. func (m *ResponseInfo) XXX_Unmarshal(b []byte) error {
  1137. return m.Unmarshal(b)
  1138. }
  1139. func (m *ResponseInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1140. if deterministic {
  1141. return xxx_messageInfo_ResponseInfo.Marshal(b, m, deterministic)
  1142. } else {
  1143. b = b[:cap(b)]
  1144. n, err := m.MarshalToSizedBuffer(b)
  1145. if err != nil {
  1146. return nil, err
  1147. }
  1148. return b[:n], nil
  1149. }
  1150. }
  1151. func (m *ResponseInfo) XXX_Merge(src proto.Message) {
  1152. xxx_messageInfo_ResponseInfo.Merge(m, src)
  1153. }
  1154. func (m *ResponseInfo) XXX_Size() int {
  1155. return m.Size()
  1156. }
  1157. func (m *ResponseInfo) XXX_DiscardUnknown() {
  1158. xxx_messageInfo_ResponseInfo.DiscardUnknown(m)
  1159. }
  1160. var xxx_messageInfo_ResponseInfo proto.InternalMessageInfo
  1161. func (m *ResponseInfo) GetData() string {
  1162. if m != nil {
  1163. return m.Data
  1164. }
  1165. return ""
  1166. }
  1167. func (m *ResponseInfo) GetVersion() string {
  1168. if m != nil {
  1169. return m.Version
  1170. }
  1171. return ""
  1172. }
  1173. func (m *ResponseInfo) GetAppVersion() uint64 {
  1174. if m != nil {
  1175. return m.AppVersion
  1176. }
  1177. return 0
  1178. }
  1179. func (m *ResponseInfo) GetLastBlockHeight() int64 {
  1180. if m != nil {
  1181. return m.LastBlockHeight
  1182. }
  1183. return 0
  1184. }
  1185. func (m *ResponseInfo) GetLastBlockAppHash() []byte {
  1186. if m != nil {
  1187. return m.LastBlockAppHash
  1188. }
  1189. return nil
  1190. }
  1191. // nondeterministic
  1192. type ResponseSetOption struct {
  1193. Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
  1194. // bytes data = 2;
  1195. Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
  1196. Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
  1197. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1198. XXX_unrecognized []byte `json:"-"`
  1199. XXX_sizecache int32 `json:"-"`
  1200. }
  1201. func (m *ResponseSetOption) Reset() { *m = ResponseSetOption{} }
  1202. func (m *ResponseSetOption) String() string { return proto.CompactTextString(m) }
  1203. func (*ResponseSetOption) ProtoMessage() {}
  1204. func (*ResponseSetOption) Descriptor() ([]byte, []int) {
  1205. return fileDescriptor_9f1eaa49c51fa1ac, []int{17}
  1206. }
  1207. func (m *ResponseSetOption) XXX_Unmarshal(b []byte) error {
  1208. return m.Unmarshal(b)
  1209. }
  1210. func (m *ResponseSetOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1211. if deterministic {
  1212. return xxx_messageInfo_ResponseSetOption.Marshal(b, m, deterministic)
  1213. } else {
  1214. b = b[:cap(b)]
  1215. n, err := m.MarshalToSizedBuffer(b)
  1216. if err != nil {
  1217. return nil, err
  1218. }
  1219. return b[:n], nil
  1220. }
  1221. }
  1222. func (m *ResponseSetOption) XXX_Merge(src proto.Message) {
  1223. xxx_messageInfo_ResponseSetOption.Merge(m, src)
  1224. }
  1225. func (m *ResponseSetOption) XXX_Size() int {
  1226. return m.Size()
  1227. }
  1228. func (m *ResponseSetOption) XXX_DiscardUnknown() {
  1229. xxx_messageInfo_ResponseSetOption.DiscardUnknown(m)
  1230. }
  1231. var xxx_messageInfo_ResponseSetOption proto.InternalMessageInfo
  1232. func (m *ResponseSetOption) GetCode() uint32 {
  1233. if m != nil {
  1234. return m.Code
  1235. }
  1236. return 0
  1237. }
  1238. func (m *ResponseSetOption) GetLog() string {
  1239. if m != nil {
  1240. return m.Log
  1241. }
  1242. return ""
  1243. }
  1244. func (m *ResponseSetOption) GetInfo() string {
  1245. if m != nil {
  1246. return m.Info
  1247. }
  1248. return ""
  1249. }
  1250. type ResponseInitChain struct {
  1251. ConsensusParams *ConsensusParams `protobuf:"bytes,1,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"`
  1252. Validators []ValidatorUpdate `protobuf:"bytes,2,rep,name=validators,proto3" json:"validators"`
  1253. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1254. XXX_unrecognized []byte `json:"-"`
  1255. XXX_sizecache int32 `json:"-"`
  1256. }
  1257. func (m *ResponseInitChain) Reset() { *m = ResponseInitChain{} }
  1258. func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) }
  1259. func (*ResponseInitChain) ProtoMessage() {}
  1260. func (*ResponseInitChain) Descriptor() ([]byte, []int) {
  1261. return fileDescriptor_9f1eaa49c51fa1ac, []int{18}
  1262. }
  1263. func (m *ResponseInitChain) XXX_Unmarshal(b []byte) error {
  1264. return m.Unmarshal(b)
  1265. }
  1266. func (m *ResponseInitChain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1267. if deterministic {
  1268. return xxx_messageInfo_ResponseInitChain.Marshal(b, m, deterministic)
  1269. } else {
  1270. b = b[:cap(b)]
  1271. n, err := m.MarshalToSizedBuffer(b)
  1272. if err != nil {
  1273. return nil, err
  1274. }
  1275. return b[:n], nil
  1276. }
  1277. }
  1278. func (m *ResponseInitChain) XXX_Merge(src proto.Message) {
  1279. xxx_messageInfo_ResponseInitChain.Merge(m, src)
  1280. }
  1281. func (m *ResponseInitChain) XXX_Size() int {
  1282. return m.Size()
  1283. }
  1284. func (m *ResponseInitChain) XXX_DiscardUnknown() {
  1285. xxx_messageInfo_ResponseInitChain.DiscardUnknown(m)
  1286. }
  1287. var xxx_messageInfo_ResponseInitChain proto.InternalMessageInfo
  1288. func (m *ResponseInitChain) GetConsensusParams() *ConsensusParams {
  1289. if m != nil {
  1290. return m.ConsensusParams
  1291. }
  1292. return nil
  1293. }
  1294. func (m *ResponseInitChain) GetValidators() []ValidatorUpdate {
  1295. if m != nil {
  1296. return m.Validators
  1297. }
  1298. return nil
  1299. }
  1300. type ResponseQuery struct {
  1301. Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
  1302. // bytes data = 2; // use "value" instead.
  1303. Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
  1304. Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
  1305. Index int64 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"`
  1306. Key []byte `protobuf:"bytes,6,opt,name=key,proto3" json:"key,omitempty"`
  1307. Value []byte `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"`
  1308. Proof *merkle.Proof `protobuf:"bytes,8,opt,name=proof,proto3" json:"proof,omitempty"`
  1309. Height int64 `protobuf:"varint,9,opt,name=height,proto3" json:"height,omitempty"`
  1310. Codespace string `protobuf:"bytes,10,opt,name=codespace,proto3" json:"codespace,omitempty"`
  1311. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1312. XXX_unrecognized []byte `json:"-"`
  1313. XXX_sizecache int32 `json:"-"`
  1314. }
  1315. func (m *ResponseQuery) Reset() { *m = ResponseQuery{} }
  1316. func (m *ResponseQuery) String() string { return proto.CompactTextString(m) }
  1317. func (*ResponseQuery) ProtoMessage() {}
  1318. func (*ResponseQuery) Descriptor() ([]byte, []int) {
  1319. return fileDescriptor_9f1eaa49c51fa1ac, []int{19}
  1320. }
  1321. func (m *ResponseQuery) XXX_Unmarshal(b []byte) error {
  1322. return m.Unmarshal(b)
  1323. }
  1324. func (m *ResponseQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1325. if deterministic {
  1326. return xxx_messageInfo_ResponseQuery.Marshal(b, m, deterministic)
  1327. } else {
  1328. b = b[:cap(b)]
  1329. n, err := m.MarshalToSizedBuffer(b)
  1330. if err != nil {
  1331. return nil, err
  1332. }
  1333. return b[:n], nil
  1334. }
  1335. }
  1336. func (m *ResponseQuery) XXX_Merge(src proto.Message) {
  1337. xxx_messageInfo_ResponseQuery.Merge(m, src)
  1338. }
  1339. func (m *ResponseQuery) XXX_Size() int {
  1340. return m.Size()
  1341. }
  1342. func (m *ResponseQuery) XXX_DiscardUnknown() {
  1343. xxx_messageInfo_ResponseQuery.DiscardUnknown(m)
  1344. }
  1345. var xxx_messageInfo_ResponseQuery proto.InternalMessageInfo
  1346. func (m *ResponseQuery) GetCode() uint32 {
  1347. if m != nil {
  1348. return m.Code
  1349. }
  1350. return 0
  1351. }
  1352. func (m *ResponseQuery) GetLog() string {
  1353. if m != nil {
  1354. return m.Log
  1355. }
  1356. return ""
  1357. }
  1358. func (m *ResponseQuery) GetInfo() string {
  1359. if m != nil {
  1360. return m.Info
  1361. }
  1362. return ""
  1363. }
  1364. func (m *ResponseQuery) GetIndex() int64 {
  1365. if m != nil {
  1366. return m.Index
  1367. }
  1368. return 0
  1369. }
  1370. func (m *ResponseQuery) GetKey() []byte {
  1371. if m != nil {
  1372. return m.Key
  1373. }
  1374. return nil
  1375. }
  1376. func (m *ResponseQuery) GetValue() []byte {
  1377. if m != nil {
  1378. return m.Value
  1379. }
  1380. return nil
  1381. }
  1382. func (m *ResponseQuery) GetProof() *merkle.Proof {
  1383. if m != nil {
  1384. return m.Proof
  1385. }
  1386. return nil
  1387. }
  1388. func (m *ResponseQuery) GetHeight() int64 {
  1389. if m != nil {
  1390. return m.Height
  1391. }
  1392. return 0
  1393. }
  1394. func (m *ResponseQuery) GetCodespace() string {
  1395. if m != nil {
  1396. return m.Codespace
  1397. }
  1398. return ""
  1399. }
  1400. type ResponseBeginBlock struct {
  1401. Events []Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
  1402. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1403. XXX_unrecognized []byte `json:"-"`
  1404. XXX_sizecache int32 `json:"-"`
  1405. }
  1406. func (m *ResponseBeginBlock) Reset() { *m = ResponseBeginBlock{} }
  1407. func (m *ResponseBeginBlock) String() string { return proto.CompactTextString(m) }
  1408. func (*ResponseBeginBlock) ProtoMessage() {}
  1409. func (*ResponseBeginBlock) Descriptor() ([]byte, []int) {
  1410. return fileDescriptor_9f1eaa49c51fa1ac, []int{20}
  1411. }
  1412. func (m *ResponseBeginBlock) XXX_Unmarshal(b []byte) error {
  1413. return m.Unmarshal(b)
  1414. }
  1415. func (m *ResponseBeginBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1416. if deterministic {
  1417. return xxx_messageInfo_ResponseBeginBlock.Marshal(b, m, deterministic)
  1418. } else {
  1419. b = b[:cap(b)]
  1420. n, err := m.MarshalToSizedBuffer(b)
  1421. if err != nil {
  1422. return nil, err
  1423. }
  1424. return b[:n], nil
  1425. }
  1426. }
  1427. func (m *ResponseBeginBlock) XXX_Merge(src proto.Message) {
  1428. xxx_messageInfo_ResponseBeginBlock.Merge(m, src)
  1429. }
  1430. func (m *ResponseBeginBlock) XXX_Size() int {
  1431. return m.Size()
  1432. }
  1433. func (m *ResponseBeginBlock) XXX_DiscardUnknown() {
  1434. xxx_messageInfo_ResponseBeginBlock.DiscardUnknown(m)
  1435. }
  1436. var xxx_messageInfo_ResponseBeginBlock proto.InternalMessageInfo
  1437. func (m *ResponseBeginBlock) GetEvents() []Event {
  1438. if m != nil {
  1439. return m.Events
  1440. }
  1441. return nil
  1442. }
  1443. type ResponseCheckTx struct {
  1444. Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
  1445. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  1446. Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
  1447. Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
  1448. GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"`
  1449. GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
  1450. Events []Event `protobuf:"bytes,7,rep,name=events,proto3" json:"events,omitempty"`
  1451. Codespace string `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"`
  1452. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1453. XXX_unrecognized []byte `json:"-"`
  1454. XXX_sizecache int32 `json:"-"`
  1455. }
  1456. func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} }
  1457. func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) }
  1458. func (*ResponseCheckTx) ProtoMessage() {}
  1459. func (*ResponseCheckTx) Descriptor() ([]byte, []int) {
  1460. return fileDescriptor_9f1eaa49c51fa1ac, []int{21}
  1461. }
  1462. func (m *ResponseCheckTx) XXX_Unmarshal(b []byte) error {
  1463. return m.Unmarshal(b)
  1464. }
  1465. func (m *ResponseCheckTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1466. if deterministic {
  1467. return xxx_messageInfo_ResponseCheckTx.Marshal(b, m, deterministic)
  1468. } else {
  1469. b = b[:cap(b)]
  1470. n, err := m.MarshalToSizedBuffer(b)
  1471. if err != nil {
  1472. return nil, err
  1473. }
  1474. return b[:n], nil
  1475. }
  1476. }
  1477. func (m *ResponseCheckTx) XXX_Merge(src proto.Message) {
  1478. xxx_messageInfo_ResponseCheckTx.Merge(m, src)
  1479. }
  1480. func (m *ResponseCheckTx) XXX_Size() int {
  1481. return m.Size()
  1482. }
  1483. func (m *ResponseCheckTx) XXX_DiscardUnknown() {
  1484. xxx_messageInfo_ResponseCheckTx.DiscardUnknown(m)
  1485. }
  1486. var xxx_messageInfo_ResponseCheckTx proto.InternalMessageInfo
  1487. func (m *ResponseCheckTx) GetCode() uint32 {
  1488. if m != nil {
  1489. return m.Code
  1490. }
  1491. return 0
  1492. }
  1493. func (m *ResponseCheckTx) GetData() []byte {
  1494. if m != nil {
  1495. return m.Data
  1496. }
  1497. return nil
  1498. }
  1499. func (m *ResponseCheckTx) GetLog() string {
  1500. if m != nil {
  1501. return m.Log
  1502. }
  1503. return ""
  1504. }
  1505. func (m *ResponseCheckTx) GetInfo() string {
  1506. if m != nil {
  1507. return m.Info
  1508. }
  1509. return ""
  1510. }
  1511. func (m *ResponseCheckTx) GetGasWanted() int64 {
  1512. if m != nil {
  1513. return m.GasWanted
  1514. }
  1515. return 0
  1516. }
  1517. func (m *ResponseCheckTx) GetGasUsed() int64 {
  1518. if m != nil {
  1519. return m.GasUsed
  1520. }
  1521. return 0
  1522. }
  1523. func (m *ResponseCheckTx) GetEvents() []Event {
  1524. if m != nil {
  1525. return m.Events
  1526. }
  1527. return nil
  1528. }
  1529. func (m *ResponseCheckTx) GetCodespace() string {
  1530. if m != nil {
  1531. return m.Codespace
  1532. }
  1533. return ""
  1534. }
  1535. type ResponseDeliverTx struct {
  1536. Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
  1537. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  1538. Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
  1539. Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
  1540. GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"`
  1541. GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
  1542. Events []Event `protobuf:"bytes,7,rep,name=events,proto3" json:"events,omitempty"`
  1543. Codespace string `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"`
  1544. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1545. XXX_unrecognized []byte `json:"-"`
  1546. XXX_sizecache int32 `json:"-"`
  1547. }
  1548. func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} }
  1549. func (m *ResponseDeliverTx) String() string { return proto.CompactTextString(m) }
  1550. func (*ResponseDeliverTx) ProtoMessage() {}
  1551. func (*ResponseDeliverTx) Descriptor() ([]byte, []int) {
  1552. return fileDescriptor_9f1eaa49c51fa1ac, []int{22}
  1553. }
  1554. func (m *ResponseDeliverTx) XXX_Unmarshal(b []byte) error {
  1555. return m.Unmarshal(b)
  1556. }
  1557. func (m *ResponseDeliverTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1558. if deterministic {
  1559. return xxx_messageInfo_ResponseDeliverTx.Marshal(b, m, deterministic)
  1560. } else {
  1561. b = b[:cap(b)]
  1562. n, err := m.MarshalToSizedBuffer(b)
  1563. if err != nil {
  1564. return nil, err
  1565. }
  1566. return b[:n], nil
  1567. }
  1568. }
  1569. func (m *ResponseDeliverTx) XXX_Merge(src proto.Message) {
  1570. xxx_messageInfo_ResponseDeliverTx.Merge(m, src)
  1571. }
  1572. func (m *ResponseDeliverTx) XXX_Size() int {
  1573. return m.Size()
  1574. }
  1575. func (m *ResponseDeliverTx) XXX_DiscardUnknown() {
  1576. xxx_messageInfo_ResponseDeliverTx.DiscardUnknown(m)
  1577. }
  1578. var xxx_messageInfo_ResponseDeliverTx proto.InternalMessageInfo
  1579. func (m *ResponseDeliverTx) GetCode() uint32 {
  1580. if m != nil {
  1581. return m.Code
  1582. }
  1583. return 0
  1584. }
  1585. func (m *ResponseDeliverTx) GetData() []byte {
  1586. if m != nil {
  1587. return m.Data
  1588. }
  1589. return nil
  1590. }
  1591. func (m *ResponseDeliverTx) GetLog() string {
  1592. if m != nil {
  1593. return m.Log
  1594. }
  1595. return ""
  1596. }
  1597. func (m *ResponseDeliverTx) GetInfo() string {
  1598. if m != nil {
  1599. return m.Info
  1600. }
  1601. return ""
  1602. }
  1603. func (m *ResponseDeliverTx) GetGasWanted() int64 {
  1604. if m != nil {
  1605. return m.GasWanted
  1606. }
  1607. return 0
  1608. }
  1609. func (m *ResponseDeliverTx) GetGasUsed() int64 {
  1610. if m != nil {
  1611. return m.GasUsed
  1612. }
  1613. return 0
  1614. }
  1615. func (m *ResponseDeliverTx) GetEvents() []Event {
  1616. if m != nil {
  1617. return m.Events
  1618. }
  1619. return nil
  1620. }
  1621. func (m *ResponseDeliverTx) GetCodespace() string {
  1622. if m != nil {
  1623. return m.Codespace
  1624. }
  1625. return ""
  1626. }
  1627. type ResponseEndBlock struct {
  1628. ValidatorUpdates []ValidatorUpdate `protobuf:"bytes,1,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates"`
  1629. ConsensusParamUpdates *ConsensusParams `protobuf:"bytes,2,opt,name=consensus_param_updates,json=consensusParamUpdates,proto3" json:"consensus_param_updates,omitempty"`
  1630. Events []Event `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"`
  1631. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1632. XXX_unrecognized []byte `json:"-"`
  1633. XXX_sizecache int32 `json:"-"`
  1634. }
  1635. func (m *ResponseEndBlock) Reset() { *m = ResponseEndBlock{} }
  1636. func (m *ResponseEndBlock) String() string { return proto.CompactTextString(m) }
  1637. func (*ResponseEndBlock) ProtoMessage() {}
  1638. func (*ResponseEndBlock) Descriptor() ([]byte, []int) {
  1639. return fileDescriptor_9f1eaa49c51fa1ac, []int{23}
  1640. }
  1641. func (m *ResponseEndBlock) XXX_Unmarshal(b []byte) error {
  1642. return m.Unmarshal(b)
  1643. }
  1644. func (m *ResponseEndBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1645. if deterministic {
  1646. return xxx_messageInfo_ResponseEndBlock.Marshal(b, m, deterministic)
  1647. } else {
  1648. b = b[:cap(b)]
  1649. n, err := m.MarshalToSizedBuffer(b)
  1650. if err != nil {
  1651. return nil, err
  1652. }
  1653. return b[:n], nil
  1654. }
  1655. }
  1656. func (m *ResponseEndBlock) XXX_Merge(src proto.Message) {
  1657. xxx_messageInfo_ResponseEndBlock.Merge(m, src)
  1658. }
  1659. func (m *ResponseEndBlock) XXX_Size() int {
  1660. return m.Size()
  1661. }
  1662. func (m *ResponseEndBlock) XXX_DiscardUnknown() {
  1663. xxx_messageInfo_ResponseEndBlock.DiscardUnknown(m)
  1664. }
  1665. var xxx_messageInfo_ResponseEndBlock proto.InternalMessageInfo
  1666. func (m *ResponseEndBlock) GetValidatorUpdates() []ValidatorUpdate {
  1667. if m != nil {
  1668. return m.ValidatorUpdates
  1669. }
  1670. return nil
  1671. }
  1672. func (m *ResponseEndBlock) GetConsensusParamUpdates() *ConsensusParams {
  1673. if m != nil {
  1674. return m.ConsensusParamUpdates
  1675. }
  1676. return nil
  1677. }
  1678. func (m *ResponseEndBlock) GetEvents() []Event {
  1679. if m != nil {
  1680. return m.Events
  1681. }
  1682. return nil
  1683. }
  1684. type ResponseCommit struct {
  1685. // reserve 1
  1686. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  1687. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1688. XXX_unrecognized []byte `json:"-"`
  1689. XXX_sizecache int32 `json:"-"`
  1690. }
  1691. func (m *ResponseCommit) Reset() { *m = ResponseCommit{} }
  1692. func (m *ResponseCommit) String() string { return proto.CompactTextString(m) }
  1693. func (*ResponseCommit) ProtoMessage() {}
  1694. func (*ResponseCommit) Descriptor() ([]byte, []int) {
  1695. return fileDescriptor_9f1eaa49c51fa1ac, []int{24}
  1696. }
  1697. func (m *ResponseCommit) XXX_Unmarshal(b []byte) error {
  1698. return m.Unmarshal(b)
  1699. }
  1700. func (m *ResponseCommit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1701. if deterministic {
  1702. return xxx_messageInfo_ResponseCommit.Marshal(b, m, deterministic)
  1703. } else {
  1704. b = b[:cap(b)]
  1705. n, err := m.MarshalToSizedBuffer(b)
  1706. if err != nil {
  1707. return nil, err
  1708. }
  1709. return b[:n], nil
  1710. }
  1711. }
  1712. func (m *ResponseCommit) XXX_Merge(src proto.Message) {
  1713. xxx_messageInfo_ResponseCommit.Merge(m, src)
  1714. }
  1715. func (m *ResponseCommit) XXX_Size() int {
  1716. return m.Size()
  1717. }
  1718. func (m *ResponseCommit) XXX_DiscardUnknown() {
  1719. xxx_messageInfo_ResponseCommit.DiscardUnknown(m)
  1720. }
  1721. var xxx_messageInfo_ResponseCommit proto.InternalMessageInfo
  1722. func (m *ResponseCommit) GetData() []byte {
  1723. if m != nil {
  1724. return m.Data
  1725. }
  1726. return nil
  1727. }
  1728. // ConsensusParams contains all consensus-relevant parameters
  1729. // that can be adjusted by the abci app
  1730. type ConsensusParams struct {
  1731. Block *BlockParams `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"`
  1732. Evidence *EvidenceParams `protobuf:"bytes,2,opt,name=evidence,proto3" json:"evidence,omitempty"`
  1733. Validator *ValidatorParams `protobuf:"bytes,3,opt,name=validator,proto3" json:"validator,omitempty"`
  1734. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1735. XXX_unrecognized []byte `json:"-"`
  1736. XXX_sizecache int32 `json:"-"`
  1737. }
  1738. func (m *ConsensusParams) Reset() { *m = ConsensusParams{} }
  1739. func (m *ConsensusParams) String() string { return proto.CompactTextString(m) }
  1740. func (*ConsensusParams) ProtoMessage() {}
  1741. func (*ConsensusParams) Descriptor() ([]byte, []int) {
  1742. return fileDescriptor_9f1eaa49c51fa1ac, []int{25}
  1743. }
  1744. func (m *ConsensusParams) XXX_Unmarshal(b []byte) error {
  1745. return m.Unmarshal(b)
  1746. }
  1747. func (m *ConsensusParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1748. if deterministic {
  1749. return xxx_messageInfo_ConsensusParams.Marshal(b, m, deterministic)
  1750. } else {
  1751. b = b[:cap(b)]
  1752. n, err := m.MarshalToSizedBuffer(b)
  1753. if err != nil {
  1754. return nil, err
  1755. }
  1756. return b[:n], nil
  1757. }
  1758. }
  1759. func (m *ConsensusParams) XXX_Merge(src proto.Message) {
  1760. xxx_messageInfo_ConsensusParams.Merge(m, src)
  1761. }
  1762. func (m *ConsensusParams) XXX_Size() int {
  1763. return m.Size()
  1764. }
  1765. func (m *ConsensusParams) XXX_DiscardUnknown() {
  1766. xxx_messageInfo_ConsensusParams.DiscardUnknown(m)
  1767. }
  1768. var xxx_messageInfo_ConsensusParams proto.InternalMessageInfo
  1769. func (m *ConsensusParams) GetBlock() *BlockParams {
  1770. if m != nil {
  1771. return m.Block
  1772. }
  1773. return nil
  1774. }
  1775. func (m *ConsensusParams) GetEvidence() *EvidenceParams {
  1776. if m != nil {
  1777. return m.Evidence
  1778. }
  1779. return nil
  1780. }
  1781. func (m *ConsensusParams) GetValidator() *ValidatorParams {
  1782. if m != nil {
  1783. return m.Validator
  1784. }
  1785. return nil
  1786. }
  1787. // BlockParams contains limits on the block size.
  1788. type BlockParams struct {
  1789. // Note: must be greater than 0
  1790. MaxBytes int64 `protobuf:"varint,1,opt,name=max_bytes,json=maxBytes,proto3" json:"max_bytes,omitempty"`
  1791. // Note: must be greater or equal to -1
  1792. MaxGas int64 `protobuf:"varint,2,opt,name=max_gas,json=maxGas,proto3" json:"max_gas,omitempty"`
  1793. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1794. XXX_unrecognized []byte `json:"-"`
  1795. XXX_sizecache int32 `json:"-"`
  1796. }
  1797. func (m *BlockParams) Reset() { *m = BlockParams{} }
  1798. func (m *BlockParams) String() string { return proto.CompactTextString(m) }
  1799. func (*BlockParams) ProtoMessage() {}
  1800. func (*BlockParams) Descriptor() ([]byte, []int) {
  1801. return fileDescriptor_9f1eaa49c51fa1ac, []int{26}
  1802. }
  1803. func (m *BlockParams) XXX_Unmarshal(b []byte) error {
  1804. return m.Unmarshal(b)
  1805. }
  1806. func (m *BlockParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1807. if deterministic {
  1808. return xxx_messageInfo_BlockParams.Marshal(b, m, deterministic)
  1809. } else {
  1810. b = b[:cap(b)]
  1811. n, err := m.MarshalToSizedBuffer(b)
  1812. if err != nil {
  1813. return nil, err
  1814. }
  1815. return b[:n], nil
  1816. }
  1817. }
  1818. func (m *BlockParams) XXX_Merge(src proto.Message) {
  1819. xxx_messageInfo_BlockParams.Merge(m, src)
  1820. }
  1821. func (m *BlockParams) XXX_Size() int {
  1822. return m.Size()
  1823. }
  1824. func (m *BlockParams) XXX_DiscardUnknown() {
  1825. xxx_messageInfo_BlockParams.DiscardUnknown(m)
  1826. }
  1827. var xxx_messageInfo_BlockParams proto.InternalMessageInfo
  1828. func (m *BlockParams) GetMaxBytes() int64 {
  1829. if m != nil {
  1830. return m.MaxBytes
  1831. }
  1832. return 0
  1833. }
  1834. func (m *BlockParams) GetMaxGas() int64 {
  1835. if m != nil {
  1836. return m.MaxGas
  1837. }
  1838. return 0
  1839. }
  1840. // EvidenceParams contains limits on the evidence.
  1841. type EvidenceParams struct {
  1842. // Note: must be greater than 0
  1843. MaxAge int64 `protobuf:"varint,1,opt,name=max_age,json=maxAge,proto3" json:"max_age,omitempty"`
  1844. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1845. XXX_unrecognized []byte `json:"-"`
  1846. XXX_sizecache int32 `json:"-"`
  1847. }
  1848. func (m *EvidenceParams) Reset() { *m = EvidenceParams{} }
  1849. func (m *EvidenceParams) String() string { return proto.CompactTextString(m) }
  1850. func (*EvidenceParams) ProtoMessage() {}
  1851. func (*EvidenceParams) Descriptor() ([]byte, []int) {
  1852. return fileDescriptor_9f1eaa49c51fa1ac, []int{27}
  1853. }
  1854. func (m *EvidenceParams) XXX_Unmarshal(b []byte) error {
  1855. return m.Unmarshal(b)
  1856. }
  1857. func (m *EvidenceParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1858. if deterministic {
  1859. return xxx_messageInfo_EvidenceParams.Marshal(b, m, deterministic)
  1860. } else {
  1861. b = b[:cap(b)]
  1862. n, err := m.MarshalToSizedBuffer(b)
  1863. if err != nil {
  1864. return nil, err
  1865. }
  1866. return b[:n], nil
  1867. }
  1868. }
  1869. func (m *EvidenceParams) XXX_Merge(src proto.Message) {
  1870. xxx_messageInfo_EvidenceParams.Merge(m, src)
  1871. }
  1872. func (m *EvidenceParams) XXX_Size() int {
  1873. return m.Size()
  1874. }
  1875. func (m *EvidenceParams) XXX_DiscardUnknown() {
  1876. xxx_messageInfo_EvidenceParams.DiscardUnknown(m)
  1877. }
  1878. var xxx_messageInfo_EvidenceParams proto.InternalMessageInfo
  1879. func (m *EvidenceParams) GetMaxAge() int64 {
  1880. if m != nil {
  1881. return m.MaxAge
  1882. }
  1883. return 0
  1884. }
  1885. // ValidatorParams contains limits on validators.
  1886. type ValidatorParams struct {
  1887. PubKeyTypes []string `protobuf:"bytes,1,rep,name=pub_key_types,json=pubKeyTypes,proto3" json:"pub_key_types,omitempty"`
  1888. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1889. XXX_unrecognized []byte `json:"-"`
  1890. XXX_sizecache int32 `json:"-"`
  1891. }
  1892. func (m *ValidatorParams) Reset() { *m = ValidatorParams{} }
  1893. func (m *ValidatorParams) String() string { return proto.CompactTextString(m) }
  1894. func (*ValidatorParams) ProtoMessage() {}
  1895. func (*ValidatorParams) Descriptor() ([]byte, []int) {
  1896. return fileDescriptor_9f1eaa49c51fa1ac, []int{28}
  1897. }
  1898. func (m *ValidatorParams) XXX_Unmarshal(b []byte) error {
  1899. return m.Unmarshal(b)
  1900. }
  1901. func (m *ValidatorParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1902. if deterministic {
  1903. return xxx_messageInfo_ValidatorParams.Marshal(b, m, deterministic)
  1904. } else {
  1905. b = b[:cap(b)]
  1906. n, err := m.MarshalToSizedBuffer(b)
  1907. if err != nil {
  1908. return nil, err
  1909. }
  1910. return b[:n], nil
  1911. }
  1912. }
  1913. func (m *ValidatorParams) XXX_Merge(src proto.Message) {
  1914. xxx_messageInfo_ValidatorParams.Merge(m, src)
  1915. }
  1916. func (m *ValidatorParams) XXX_Size() int {
  1917. return m.Size()
  1918. }
  1919. func (m *ValidatorParams) XXX_DiscardUnknown() {
  1920. xxx_messageInfo_ValidatorParams.DiscardUnknown(m)
  1921. }
  1922. var xxx_messageInfo_ValidatorParams proto.InternalMessageInfo
  1923. func (m *ValidatorParams) GetPubKeyTypes() []string {
  1924. if m != nil {
  1925. return m.PubKeyTypes
  1926. }
  1927. return nil
  1928. }
  1929. type LastCommitInfo struct {
  1930. Round int32 `protobuf:"varint,1,opt,name=round,proto3" json:"round,omitempty"`
  1931. Votes []VoteInfo `protobuf:"bytes,2,rep,name=votes,proto3" json:"votes"`
  1932. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1933. XXX_unrecognized []byte `json:"-"`
  1934. XXX_sizecache int32 `json:"-"`
  1935. }
  1936. func (m *LastCommitInfo) Reset() { *m = LastCommitInfo{} }
  1937. func (m *LastCommitInfo) String() string { return proto.CompactTextString(m) }
  1938. func (*LastCommitInfo) ProtoMessage() {}
  1939. func (*LastCommitInfo) Descriptor() ([]byte, []int) {
  1940. return fileDescriptor_9f1eaa49c51fa1ac, []int{29}
  1941. }
  1942. func (m *LastCommitInfo) XXX_Unmarshal(b []byte) error {
  1943. return m.Unmarshal(b)
  1944. }
  1945. func (m *LastCommitInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1946. if deterministic {
  1947. return xxx_messageInfo_LastCommitInfo.Marshal(b, m, deterministic)
  1948. } else {
  1949. b = b[:cap(b)]
  1950. n, err := m.MarshalToSizedBuffer(b)
  1951. if err != nil {
  1952. return nil, err
  1953. }
  1954. return b[:n], nil
  1955. }
  1956. }
  1957. func (m *LastCommitInfo) XXX_Merge(src proto.Message) {
  1958. xxx_messageInfo_LastCommitInfo.Merge(m, src)
  1959. }
  1960. func (m *LastCommitInfo) XXX_Size() int {
  1961. return m.Size()
  1962. }
  1963. func (m *LastCommitInfo) XXX_DiscardUnknown() {
  1964. xxx_messageInfo_LastCommitInfo.DiscardUnknown(m)
  1965. }
  1966. var xxx_messageInfo_LastCommitInfo proto.InternalMessageInfo
  1967. func (m *LastCommitInfo) GetRound() int32 {
  1968. if m != nil {
  1969. return m.Round
  1970. }
  1971. return 0
  1972. }
  1973. func (m *LastCommitInfo) GetVotes() []VoteInfo {
  1974. if m != nil {
  1975. return m.Votes
  1976. }
  1977. return nil
  1978. }
  1979. type Event struct {
  1980. Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
  1981. Attributes []common.KVPair `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty"`
  1982. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1983. XXX_unrecognized []byte `json:"-"`
  1984. XXX_sizecache int32 `json:"-"`
  1985. }
  1986. func (m *Event) Reset() { *m = Event{} }
  1987. func (m *Event) String() string { return proto.CompactTextString(m) }
  1988. func (*Event) ProtoMessage() {}
  1989. func (*Event) Descriptor() ([]byte, []int) {
  1990. return fileDescriptor_9f1eaa49c51fa1ac, []int{30}
  1991. }
  1992. func (m *Event) XXX_Unmarshal(b []byte) error {
  1993. return m.Unmarshal(b)
  1994. }
  1995. func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1996. if deterministic {
  1997. return xxx_messageInfo_Event.Marshal(b, m, deterministic)
  1998. } else {
  1999. b = b[:cap(b)]
  2000. n, err := m.MarshalToSizedBuffer(b)
  2001. if err != nil {
  2002. return nil, err
  2003. }
  2004. return b[:n], nil
  2005. }
  2006. }
  2007. func (m *Event) XXX_Merge(src proto.Message) {
  2008. xxx_messageInfo_Event.Merge(m, src)
  2009. }
  2010. func (m *Event) XXX_Size() int {
  2011. return m.Size()
  2012. }
  2013. func (m *Event) XXX_DiscardUnknown() {
  2014. xxx_messageInfo_Event.DiscardUnknown(m)
  2015. }
  2016. var xxx_messageInfo_Event proto.InternalMessageInfo
  2017. func (m *Event) GetType() string {
  2018. if m != nil {
  2019. return m.Type
  2020. }
  2021. return ""
  2022. }
  2023. func (m *Event) GetAttributes() []common.KVPair {
  2024. if m != nil {
  2025. return m.Attributes
  2026. }
  2027. return nil
  2028. }
  2029. type Header struct {
  2030. // basic block info
  2031. Version Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version"`
  2032. ChainID string `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
  2033. Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
  2034. Time time.Time `protobuf:"bytes,4,opt,name=time,proto3,stdtime" json:"time"`
  2035. NumTxs int64 `protobuf:"varint,5,opt,name=num_txs,json=numTxs,proto3" json:"num_txs,omitempty"`
  2036. TotalTxs int64 `protobuf:"varint,6,opt,name=total_txs,json=totalTxs,proto3" json:"total_txs,omitempty"`
  2037. // prev block info
  2038. LastBlockId BlockID `protobuf:"bytes,7,opt,name=last_block_id,json=lastBlockId,proto3" json:"last_block_id"`
  2039. // hashes of block data
  2040. LastCommitHash []byte `protobuf:"bytes,8,opt,name=last_commit_hash,json=lastCommitHash,proto3" json:"last_commit_hash,omitempty"`
  2041. DataHash []byte `protobuf:"bytes,9,opt,name=data_hash,json=dataHash,proto3" json:"data_hash,omitempty"`
  2042. // hashes from the app output from the prev block
  2043. ValidatorsHash []byte `protobuf:"bytes,10,opt,name=validators_hash,json=validatorsHash,proto3" json:"validators_hash,omitempty"`
  2044. NextValidatorsHash []byte `protobuf:"bytes,11,opt,name=next_validators_hash,json=nextValidatorsHash,proto3" json:"next_validators_hash,omitempty"`
  2045. ConsensusHash []byte `protobuf:"bytes,12,opt,name=consensus_hash,json=consensusHash,proto3" json:"consensus_hash,omitempty"`
  2046. AppHash []byte `protobuf:"bytes,13,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"`
  2047. LastResultsHash []byte `protobuf:"bytes,14,opt,name=last_results_hash,json=lastResultsHash,proto3" json:"last_results_hash,omitempty"`
  2048. // consensus info
  2049. EvidenceHash []byte `protobuf:"bytes,15,opt,name=evidence_hash,json=evidenceHash,proto3" json:"evidence_hash,omitempty"`
  2050. ProposerAddress []byte `protobuf:"bytes,16,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"`
  2051. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2052. XXX_unrecognized []byte `json:"-"`
  2053. XXX_sizecache int32 `json:"-"`
  2054. }
  2055. func (m *Header) Reset() { *m = Header{} }
  2056. func (m *Header) String() string { return proto.CompactTextString(m) }
  2057. func (*Header) ProtoMessage() {}
  2058. func (*Header) Descriptor() ([]byte, []int) {
  2059. return fileDescriptor_9f1eaa49c51fa1ac, []int{31}
  2060. }
  2061. func (m *Header) XXX_Unmarshal(b []byte) error {
  2062. return m.Unmarshal(b)
  2063. }
  2064. func (m *Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2065. if deterministic {
  2066. return xxx_messageInfo_Header.Marshal(b, m, deterministic)
  2067. } else {
  2068. b = b[:cap(b)]
  2069. n, err := m.MarshalToSizedBuffer(b)
  2070. if err != nil {
  2071. return nil, err
  2072. }
  2073. return b[:n], nil
  2074. }
  2075. }
  2076. func (m *Header) XXX_Merge(src proto.Message) {
  2077. xxx_messageInfo_Header.Merge(m, src)
  2078. }
  2079. func (m *Header) XXX_Size() int {
  2080. return m.Size()
  2081. }
  2082. func (m *Header) XXX_DiscardUnknown() {
  2083. xxx_messageInfo_Header.DiscardUnknown(m)
  2084. }
  2085. var xxx_messageInfo_Header proto.InternalMessageInfo
  2086. func (m *Header) GetVersion() Version {
  2087. if m != nil {
  2088. return m.Version
  2089. }
  2090. return Version{}
  2091. }
  2092. func (m *Header) GetChainID() string {
  2093. if m != nil {
  2094. return m.ChainID
  2095. }
  2096. return ""
  2097. }
  2098. func (m *Header) GetHeight() int64 {
  2099. if m != nil {
  2100. return m.Height
  2101. }
  2102. return 0
  2103. }
  2104. func (m *Header) GetTime() time.Time {
  2105. if m != nil {
  2106. return m.Time
  2107. }
  2108. return time.Time{}
  2109. }
  2110. func (m *Header) GetNumTxs() int64 {
  2111. if m != nil {
  2112. return m.NumTxs
  2113. }
  2114. return 0
  2115. }
  2116. func (m *Header) GetTotalTxs() int64 {
  2117. if m != nil {
  2118. return m.TotalTxs
  2119. }
  2120. return 0
  2121. }
  2122. func (m *Header) GetLastBlockId() BlockID {
  2123. if m != nil {
  2124. return m.LastBlockId
  2125. }
  2126. return BlockID{}
  2127. }
  2128. func (m *Header) GetLastCommitHash() []byte {
  2129. if m != nil {
  2130. return m.LastCommitHash
  2131. }
  2132. return nil
  2133. }
  2134. func (m *Header) GetDataHash() []byte {
  2135. if m != nil {
  2136. return m.DataHash
  2137. }
  2138. return nil
  2139. }
  2140. func (m *Header) GetValidatorsHash() []byte {
  2141. if m != nil {
  2142. return m.ValidatorsHash
  2143. }
  2144. return nil
  2145. }
  2146. func (m *Header) GetNextValidatorsHash() []byte {
  2147. if m != nil {
  2148. return m.NextValidatorsHash
  2149. }
  2150. return nil
  2151. }
  2152. func (m *Header) GetConsensusHash() []byte {
  2153. if m != nil {
  2154. return m.ConsensusHash
  2155. }
  2156. return nil
  2157. }
  2158. func (m *Header) GetAppHash() []byte {
  2159. if m != nil {
  2160. return m.AppHash
  2161. }
  2162. return nil
  2163. }
  2164. func (m *Header) GetLastResultsHash() []byte {
  2165. if m != nil {
  2166. return m.LastResultsHash
  2167. }
  2168. return nil
  2169. }
  2170. func (m *Header) GetEvidenceHash() []byte {
  2171. if m != nil {
  2172. return m.EvidenceHash
  2173. }
  2174. return nil
  2175. }
  2176. func (m *Header) GetProposerAddress() []byte {
  2177. if m != nil {
  2178. return m.ProposerAddress
  2179. }
  2180. return nil
  2181. }
  2182. type Version struct {
  2183. Block uint64 `protobuf:"varint,1,opt,name=Block,proto3" json:"Block,omitempty"`
  2184. App uint64 `protobuf:"varint,2,opt,name=App,proto3" json:"App,omitempty"`
  2185. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2186. XXX_unrecognized []byte `json:"-"`
  2187. XXX_sizecache int32 `json:"-"`
  2188. }
  2189. func (m *Version) Reset() { *m = Version{} }
  2190. func (m *Version) String() string { return proto.CompactTextString(m) }
  2191. func (*Version) ProtoMessage() {}
  2192. func (*Version) Descriptor() ([]byte, []int) {
  2193. return fileDescriptor_9f1eaa49c51fa1ac, []int{32}
  2194. }
  2195. func (m *Version) XXX_Unmarshal(b []byte) error {
  2196. return m.Unmarshal(b)
  2197. }
  2198. func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2199. if deterministic {
  2200. return xxx_messageInfo_Version.Marshal(b, m, deterministic)
  2201. } else {
  2202. b = b[:cap(b)]
  2203. n, err := m.MarshalToSizedBuffer(b)
  2204. if err != nil {
  2205. return nil, err
  2206. }
  2207. return b[:n], nil
  2208. }
  2209. }
  2210. func (m *Version) XXX_Merge(src proto.Message) {
  2211. xxx_messageInfo_Version.Merge(m, src)
  2212. }
  2213. func (m *Version) XXX_Size() int {
  2214. return m.Size()
  2215. }
  2216. func (m *Version) XXX_DiscardUnknown() {
  2217. xxx_messageInfo_Version.DiscardUnknown(m)
  2218. }
  2219. var xxx_messageInfo_Version proto.InternalMessageInfo
  2220. func (m *Version) GetBlock() uint64 {
  2221. if m != nil {
  2222. return m.Block
  2223. }
  2224. return 0
  2225. }
  2226. func (m *Version) GetApp() uint64 {
  2227. if m != nil {
  2228. return m.App
  2229. }
  2230. return 0
  2231. }
  2232. type BlockID struct {
  2233. Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
  2234. PartsHeader PartSetHeader `protobuf:"bytes,2,opt,name=parts_header,json=partsHeader,proto3" json:"parts_header"`
  2235. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2236. XXX_unrecognized []byte `json:"-"`
  2237. XXX_sizecache int32 `json:"-"`
  2238. }
  2239. func (m *BlockID) Reset() { *m = BlockID{} }
  2240. func (m *BlockID) String() string { return proto.CompactTextString(m) }
  2241. func (*BlockID) ProtoMessage() {}
  2242. func (*BlockID) Descriptor() ([]byte, []int) {
  2243. return fileDescriptor_9f1eaa49c51fa1ac, []int{33}
  2244. }
  2245. func (m *BlockID) XXX_Unmarshal(b []byte) error {
  2246. return m.Unmarshal(b)
  2247. }
  2248. func (m *BlockID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2249. if deterministic {
  2250. return xxx_messageInfo_BlockID.Marshal(b, m, deterministic)
  2251. } else {
  2252. b = b[:cap(b)]
  2253. n, err := m.MarshalToSizedBuffer(b)
  2254. if err != nil {
  2255. return nil, err
  2256. }
  2257. return b[:n], nil
  2258. }
  2259. }
  2260. func (m *BlockID) XXX_Merge(src proto.Message) {
  2261. xxx_messageInfo_BlockID.Merge(m, src)
  2262. }
  2263. func (m *BlockID) XXX_Size() int {
  2264. return m.Size()
  2265. }
  2266. func (m *BlockID) XXX_DiscardUnknown() {
  2267. xxx_messageInfo_BlockID.DiscardUnknown(m)
  2268. }
  2269. var xxx_messageInfo_BlockID proto.InternalMessageInfo
  2270. func (m *BlockID) GetHash() []byte {
  2271. if m != nil {
  2272. return m.Hash
  2273. }
  2274. return nil
  2275. }
  2276. func (m *BlockID) GetPartsHeader() PartSetHeader {
  2277. if m != nil {
  2278. return m.PartsHeader
  2279. }
  2280. return PartSetHeader{}
  2281. }
  2282. type PartSetHeader struct {
  2283. Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
  2284. Hash []byte `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
  2285. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2286. XXX_unrecognized []byte `json:"-"`
  2287. XXX_sizecache int32 `json:"-"`
  2288. }
  2289. func (m *PartSetHeader) Reset() { *m = PartSetHeader{} }
  2290. func (m *PartSetHeader) String() string { return proto.CompactTextString(m) }
  2291. func (*PartSetHeader) ProtoMessage() {}
  2292. func (*PartSetHeader) Descriptor() ([]byte, []int) {
  2293. return fileDescriptor_9f1eaa49c51fa1ac, []int{34}
  2294. }
  2295. func (m *PartSetHeader) XXX_Unmarshal(b []byte) error {
  2296. return m.Unmarshal(b)
  2297. }
  2298. func (m *PartSetHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2299. if deterministic {
  2300. return xxx_messageInfo_PartSetHeader.Marshal(b, m, deterministic)
  2301. } else {
  2302. b = b[:cap(b)]
  2303. n, err := m.MarshalToSizedBuffer(b)
  2304. if err != nil {
  2305. return nil, err
  2306. }
  2307. return b[:n], nil
  2308. }
  2309. }
  2310. func (m *PartSetHeader) XXX_Merge(src proto.Message) {
  2311. xxx_messageInfo_PartSetHeader.Merge(m, src)
  2312. }
  2313. func (m *PartSetHeader) XXX_Size() int {
  2314. return m.Size()
  2315. }
  2316. func (m *PartSetHeader) XXX_DiscardUnknown() {
  2317. xxx_messageInfo_PartSetHeader.DiscardUnknown(m)
  2318. }
  2319. var xxx_messageInfo_PartSetHeader proto.InternalMessageInfo
  2320. func (m *PartSetHeader) GetTotal() int32 {
  2321. if m != nil {
  2322. return m.Total
  2323. }
  2324. return 0
  2325. }
  2326. func (m *PartSetHeader) GetHash() []byte {
  2327. if m != nil {
  2328. return m.Hash
  2329. }
  2330. return nil
  2331. }
  2332. // Validator
  2333. type Validator struct {
  2334. Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
  2335. //PubKey pub_key = 2 [(gogoproto.nullable)=false];
  2336. Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"`
  2337. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2338. XXX_unrecognized []byte `json:"-"`
  2339. XXX_sizecache int32 `json:"-"`
  2340. }
  2341. func (m *Validator) Reset() { *m = Validator{} }
  2342. func (m *Validator) String() string { return proto.CompactTextString(m) }
  2343. func (*Validator) ProtoMessage() {}
  2344. func (*Validator) Descriptor() ([]byte, []int) {
  2345. return fileDescriptor_9f1eaa49c51fa1ac, []int{35}
  2346. }
  2347. func (m *Validator) XXX_Unmarshal(b []byte) error {
  2348. return m.Unmarshal(b)
  2349. }
  2350. func (m *Validator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2351. if deterministic {
  2352. return xxx_messageInfo_Validator.Marshal(b, m, deterministic)
  2353. } else {
  2354. b = b[:cap(b)]
  2355. n, err := m.MarshalToSizedBuffer(b)
  2356. if err != nil {
  2357. return nil, err
  2358. }
  2359. return b[:n], nil
  2360. }
  2361. }
  2362. func (m *Validator) XXX_Merge(src proto.Message) {
  2363. xxx_messageInfo_Validator.Merge(m, src)
  2364. }
  2365. func (m *Validator) XXX_Size() int {
  2366. return m.Size()
  2367. }
  2368. func (m *Validator) XXX_DiscardUnknown() {
  2369. xxx_messageInfo_Validator.DiscardUnknown(m)
  2370. }
  2371. var xxx_messageInfo_Validator proto.InternalMessageInfo
  2372. func (m *Validator) GetAddress() []byte {
  2373. if m != nil {
  2374. return m.Address
  2375. }
  2376. return nil
  2377. }
  2378. func (m *Validator) GetPower() int64 {
  2379. if m != nil {
  2380. return m.Power
  2381. }
  2382. return 0
  2383. }
  2384. // ValidatorUpdate
  2385. type ValidatorUpdate struct {
  2386. PubKey PubKey `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key"`
  2387. Power int64 `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"`
  2388. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2389. XXX_unrecognized []byte `json:"-"`
  2390. XXX_sizecache int32 `json:"-"`
  2391. }
  2392. func (m *ValidatorUpdate) Reset() { *m = ValidatorUpdate{} }
  2393. func (m *ValidatorUpdate) String() string { return proto.CompactTextString(m) }
  2394. func (*ValidatorUpdate) ProtoMessage() {}
  2395. func (*ValidatorUpdate) Descriptor() ([]byte, []int) {
  2396. return fileDescriptor_9f1eaa49c51fa1ac, []int{36}
  2397. }
  2398. func (m *ValidatorUpdate) XXX_Unmarshal(b []byte) error {
  2399. return m.Unmarshal(b)
  2400. }
  2401. func (m *ValidatorUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2402. if deterministic {
  2403. return xxx_messageInfo_ValidatorUpdate.Marshal(b, m, deterministic)
  2404. } else {
  2405. b = b[:cap(b)]
  2406. n, err := m.MarshalToSizedBuffer(b)
  2407. if err != nil {
  2408. return nil, err
  2409. }
  2410. return b[:n], nil
  2411. }
  2412. }
  2413. func (m *ValidatorUpdate) XXX_Merge(src proto.Message) {
  2414. xxx_messageInfo_ValidatorUpdate.Merge(m, src)
  2415. }
  2416. func (m *ValidatorUpdate) XXX_Size() int {
  2417. return m.Size()
  2418. }
  2419. func (m *ValidatorUpdate) XXX_DiscardUnknown() {
  2420. xxx_messageInfo_ValidatorUpdate.DiscardUnknown(m)
  2421. }
  2422. var xxx_messageInfo_ValidatorUpdate proto.InternalMessageInfo
  2423. func (m *ValidatorUpdate) GetPubKey() PubKey {
  2424. if m != nil {
  2425. return m.PubKey
  2426. }
  2427. return PubKey{}
  2428. }
  2429. func (m *ValidatorUpdate) GetPower() int64 {
  2430. if m != nil {
  2431. return m.Power
  2432. }
  2433. return 0
  2434. }
  2435. // VoteInfo
  2436. type VoteInfo struct {
  2437. Validator Validator `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator"`
  2438. SignedLastBlock bool `protobuf:"varint,2,opt,name=signed_last_block,json=signedLastBlock,proto3" json:"signed_last_block,omitempty"`
  2439. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2440. XXX_unrecognized []byte `json:"-"`
  2441. XXX_sizecache int32 `json:"-"`
  2442. }
  2443. func (m *VoteInfo) Reset() { *m = VoteInfo{} }
  2444. func (m *VoteInfo) String() string { return proto.CompactTextString(m) }
  2445. func (*VoteInfo) ProtoMessage() {}
  2446. func (*VoteInfo) Descriptor() ([]byte, []int) {
  2447. return fileDescriptor_9f1eaa49c51fa1ac, []int{37}
  2448. }
  2449. func (m *VoteInfo) XXX_Unmarshal(b []byte) error {
  2450. return m.Unmarshal(b)
  2451. }
  2452. func (m *VoteInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2453. if deterministic {
  2454. return xxx_messageInfo_VoteInfo.Marshal(b, m, deterministic)
  2455. } else {
  2456. b = b[:cap(b)]
  2457. n, err := m.MarshalToSizedBuffer(b)
  2458. if err != nil {
  2459. return nil, err
  2460. }
  2461. return b[:n], nil
  2462. }
  2463. }
  2464. func (m *VoteInfo) XXX_Merge(src proto.Message) {
  2465. xxx_messageInfo_VoteInfo.Merge(m, src)
  2466. }
  2467. func (m *VoteInfo) XXX_Size() int {
  2468. return m.Size()
  2469. }
  2470. func (m *VoteInfo) XXX_DiscardUnknown() {
  2471. xxx_messageInfo_VoteInfo.DiscardUnknown(m)
  2472. }
  2473. var xxx_messageInfo_VoteInfo proto.InternalMessageInfo
  2474. func (m *VoteInfo) GetValidator() Validator {
  2475. if m != nil {
  2476. return m.Validator
  2477. }
  2478. return Validator{}
  2479. }
  2480. func (m *VoteInfo) GetSignedLastBlock() bool {
  2481. if m != nil {
  2482. return m.SignedLastBlock
  2483. }
  2484. return false
  2485. }
  2486. type PubKey struct {
  2487. Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
  2488. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  2489. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2490. XXX_unrecognized []byte `json:"-"`
  2491. XXX_sizecache int32 `json:"-"`
  2492. }
  2493. func (m *PubKey) Reset() { *m = PubKey{} }
  2494. func (m *PubKey) String() string { return proto.CompactTextString(m) }
  2495. func (*PubKey) ProtoMessage() {}
  2496. func (*PubKey) Descriptor() ([]byte, []int) {
  2497. return fileDescriptor_9f1eaa49c51fa1ac, []int{38}
  2498. }
  2499. func (m *PubKey) XXX_Unmarshal(b []byte) error {
  2500. return m.Unmarshal(b)
  2501. }
  2502. func (m *PubKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2503. if deterministic {
  2504. return xxx_messageInfo_PubKey.Marshal(b, m, deterministic)
  2505. } else {
  2506. b = b[:cap(b)]
  2507. n, err := m.MarshalToSizedBuffer(b)
  2508. if err != nil {
  2509. return nil, err
  2510. }
  2511. return b[:n], nil
  2512. }
  2513. }
  2514. func (m *PubKey) XXX_Merge(src proto.Message) {
  2515. xxx_messageInfo_PubKey.Merge(m, src)
  2516. }
  2517. func (m *PubKey) XXX_Size() int {
  2518. return m.Size()
  2519. }
  2520. func (m *PubKey) XXX_DiscardUnknown() {
  2521. xxx_messageInfo_PubKey.DiscardUnknown(m)
  2522. }
  2523. var xxx_messageInfo_PubKey proto.InternalMessageInfo
  2524. func (m *PubKey) GetType() string {
  2525. if m != nil {
  2526. return m.Type
  2527. }
  2528. return ""
  2529. }
  2530. func (m *PubKey) GetData() []byte {
  2531. if m != nil {
  2532. return m.Data
  2533. }
  2534. return nil
  2535. }
  2536. type Evidence struct {
  2537. Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
  2538. Validator Validator `protobuf:"bytes,2,opt,name=validator,proto3" json:"validator"`
  2539. Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
  2540. Time time.Time `protobuf:"bytes,4,opt,name=time,proto3,stdtime" json:"time"`
  2541. TotalVotingPower int64 `protobuf:"varint,5,opt,name=total_voting_power,json=totalVotingPower,proto3" json:"total_voting_power,omitempty"`
  2542. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2543. XXX_unrecognized []byte `json:"-"`
  2544. XXX_sizecache int32 `json:"-"`
  2545. }
  2546. func (m *Evidence) Reset() { *m = Evidence{} }
  2547. func (m *Evidence) String() string { return proto.CompactTextString(m) }
  2548. func (*Evidence) ProtoMessage() {}
  2549. func (*Evidence) Descriptor() ([]byte, []int) {
  2550. return fileDescriptor_9f1eaa49c51fa1ac, []int{39}
  2551. }
  2552. func (m *Evidence) XXX_Unmarshal(b []byte) error {
  2553. return m.Unmarshal(b)
  2554. }
  2555. func (m *Evidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2556. if deterministic {
  2557. return xxx_messageInfo_Evidence.Marshal(b, m, deterministic)
  2558. } else {
  2559. b = b[:cap(b)]
  2560. n, err := m.MarshalToSizedBuffer(b)
  2561. if err != nil {
  2562. return nil, err
  2563. }
  2564. return b[:n], nil
  2565. }
  2566. }
  2567. func (m *Evidence) XXX_Merge(src proto.Message) {
  2568. xxx_messageInfo_Evidence.Merge(m, src)
  2569. }
  2570. func (m *Evidence) XXX_Size() int {
  2571. return m.Size()
  2572. }
  2573. func (m *Evidence) XXX_DiscardUnknown() {
  2574. xxx_messageInfo_Evidence.DiscardUnknown(m)
  2575. }
  2576. var xxx_messageInfo_Evidence proto.InternalMessageInfo
  2577. func (m *Evidence) GetType() string {
  2578. if m != nil {
  2579. return m.Type
  2580. }
  2581. return ""
  2582. }
  2583. func (m *Evidence) GetValidator() Validator {
  2584. if m != nil {
  2585. return m.Validator
  2586. }
  2587. return Validator{}
  2588. }
  2589. func (m *Evidence) GetHeight() int64 {
  2590. if m != nil {
  2591. return m.Height
  2592. }
  2593. return 0
  2594. }
  2595. func (m *Evidence) GetTime() time.Time {
  2596. if m != nil {
  2597. return m.Time
  2598. }
  2599. return time.Time{}
  2600. }
  2601. func (m *Evidence) GetTotalVotingPower() int64 {
  2602. if m != nil {
  2603. return m.TotalVotingPower
  2604. }
  2605. return 0
  2606. }
  2607. func init() {
  2608. proto.RegisterEnum("types.CheckTxType", CheckTxType_name, CheckTxType_value)
  2609. golang_proto.RegisterEnum("types.CheckTxType", CheckTxType_name, CheckTxType_value)
  2610. proto.RegisterType((*Request)(nil), "types.Request")
  2611. golang_proto.RegisterType((*Request)(nil), "types.Request")
  2612. proto.RegisterType((*RequestEcho)(nil), "types.RequestEcho")
  2613. golang_proto.RegisterType((*RequestEcho)(nil), "types.RequestEcho")
  2614. proto.RegisterType((*RequestFlush)(nil), "types.RequestFlush")
  2615. golang_proto.RegisterType((*RequestFlush)(nil), "types.RequestFlush")
  2616. proto.RegisterType((*RequestInfo)(nil), "types.RequestInfo")
  2617. golang_proto.RegisterType((*RequestInfo)(nil), "types.RequestInfo")
  2618. proto.RegisterType((*RequestSetOption)(nil), "types.RequestSetOption")
  2619. golang_proto.RegisterType((*RequestSetOption)(nil), "types.RequestSetOption")
  2620. proto.RegisterType((*RequestInitChain)(nil), "types.RequestInitChain")
  2621. golang_proto.RegisterType((*RequestInitChain)(nil), "types.RequestInitChain")
  2622. proto.RegisterType((*RequestQuery)(nil), "types.RequestQuery")
  2623. golang_proto.RegisterType((*RequestQuery)(nil), "types.RequestQuery")
  2624. proto.RegisterType((*RequestBeginBlock)(nil), "types.RequestBeginBlock")
  2625. golang_proto.RegisterType((*RequestBeginBlock)(nil), "types.RequestBeginBlock")
  2626. proto.RegisterType((*RequestCheckTx)(nil), "types.RequestCheckTx")
  2627. golang_proto.RegisterType((*RequestCheckTx)(nil), "types.RequestCheckTx")
  2628. proto.RegisterType((*RequestDeliverTx)(nil), "types.RequestDeliverTx")
  2629. golang_proto.RegisterType((*RequestDeliverTx)(nil), "types.RequestDeliverTx")
  2630. proto.RegisterType((*RequestEndBlock)(nil), "types.RequestEndBlock")
  2631. golang_proto.RegisterType((*RequestEndBlock)(nil), "types.RequestEndBlock")
  2632. proto.RegisterType((*RequestCommit)(nil), "types.RequestCommit")
  2633. golang_proto.RegisterType((*RequestCommit)(nil), "types.RequestCommit")
  2634. proto.RegisterType((*Response)(nil), "types.Response")
  2635. golang_proto.RegisterType((*Response)(nil), "types.Response")
  2636. proto.RegisterType((*ResponseException)(nil), "types.ResponseException")
  2637. golang_proto.RegisterType((*ResponseException)(nil), "types.ResponseException")
  2638. proto.RegisterType((*ResponseEcho)(nil), "types.ResponseEcho")
  2639. golang_proto.RegisterType((*ResponseEcho)(nil), "types.ResponseEcho")
  2640. proto.RegisterType((*ResponseFlush)(nil), "types.ResponseFlush")
  2641. golang_proto.RegisterType((*ResponseFlush)(nil), "types.ResponseFlush")
  2642. proto.RegisterType((*ResponseInfo)(nil), "types.ResponseInfo")
  2643. golang_proto.RegisterType((*ResponseInfo)(nil), "types.ResponseInfo")
  2644. proto.RegisterType((*ResponseSetOption)(nil), "types.ResponseSetOption")
  2645. golang_proto.RegisterType((*ResponseSetOption)(nil), "types.ResponseSetOption")
  2646. proto.RegisterType((*ResponseInitChain)(nil), "types.ResponseInitChain")
  2647. golang_proto.RegisterType((*ResponseInitChain)(nil), "types.ResponseInitChain")
  2648. proto.RegisterType((*ResponseQuery)(nil), "types.ResponseQuery")
  2649. golang_proto.RegisterType((*ResponseQuery)(nil), "types.ResponseQuery")
  2650. proto.RegisterType((*ResponseBeginBlock)(nil), "types.ResponseBeginBlock")
  2651. golang_proto.RegisterType((*ResponseBeginBlock)(nil), "types.ResponseBeginBlock")
  2652. proto.RegisterType((*ResponseCheckTx)(nil), "types.ResponseCheckTx")
  2653. golang_proto.RegisterType((*ResponseCheckTx)(nil), "types.ResponseCheckTx")
  2654. proto.RegisterType((*ResponseDeliverTx)(nil), "types.ResponseDeliverTx")
  2655. golang_proto.RegisterType((*ResponseDeliverTx)(nil), "types.ResponseDeliverTx")
  2656. proto.RegisterType((*ResponseEndBlock)(nil), "types.ResponseEndBlock")
  2657. golang_proto.RegisterType((*ResponseEndBlock)(nil), "types.ResponseEndBlock")
  2658. proto.RegisterType((*ResponseCommit)(nil), "types.ResponseCommit")
  2659. golang_proto.RegisterType((*ResponseCommit)(nil), "types.ResponseCommit")
  2660. proto.RegisterType((*ConsensusParams)(nil), "types.ConsensusParams")
  2661. golang_proto.RegisterType((*ConsensusParams)(nil), "types.ConsensusParams")
  2662. proto.RegisterType((*BlockParams)(nil), "types.BlockParams")
  2663. golang_proto.RegisterType((*BlockParams)(nil), "types.BlockParams")
  2664. proto.RegisterType((*EvidenceParams)(nil), "types.EvidenceParams")
  2665. golang_proto.RegisterType((*EvidenceParams)(nil), "types.EvidenceParams")
  2666. proto.RegisterType((*ValidatorParams)(nil), "types.ValidatorParams")
  2667. golang_proto.RegisterType((*ValidatorParams)(nil), "types.ValidatorParams")
  2668. proto.RegisterType((*LastCommitInfo)(nil), "types.LastCommitInfo")
  2669. golang_proto.RegisterType((*LastCommitInfo)(nil), "types.LastCommitInfo")
  2670. proto.RegisterType((*Event)(nil), "types.Event")
  2671. golang_proto.RegisterType((*Event)(nil), "types.Event")
  2672. proto.RegisterType((*Header)(nil), "types.Header")
  2673. golang_proto.RegisterType((*Header)(nil), "types.Header")
  2674. proto.RegisterType((*Version)(nil), "types.Version")
  2675. golang_proto.RegisterType((*Version)(nil), "types.Version")
  2676. proto.RegisterType((*BlockID)(nil), "types.BlockID")
  2677. golang_proto.RegisterType((*BlockID)(nil), "types.BlockID")
  2678. proto.RegisterType((*PartSetHeader)(nil), "types.PartSetHeader")
  2679. golang_proto.RegisterType((*PartSetHeader)(nil), "types.PartSetHeader")
  2680. proto.RegisterType((*Validator)(nil), "types.Validator")
  2681. golang_proto.RegisterType((*Validator)(nil), "types.Validator")
  2682. proto.RegisterType((*ValidatorUpdate)(nil), "types.ValidatorUpdate")
  2683. golang_proto.RegisterType((*ValidatorUpdate)(nil), "types.ValidatorUpdate")
  2684. proto.RegisterType((*VoteInfo)(nil), "types.VoteInfo")
  2685. golang_proto.RegisterType((*VoteInfo)(nil), "types.VoteInfo")
  2686. proto.RegisterType((*PubKey)(nil), "types.PubKey")
  2687. golang_proto.RegisterType((*PubKey)(nil), "types.PubKey")
  2688. proto.RegisterType((*Evidence)(nil), "types.Evidence")
  2689. golang_proto.RegisterType((*Evidence)(nil), "types.Evidence")
  2690. }
  2691. func init() { proto.RegisterFile("abci/types/types.proto", fileDescriptor_9f1eaa49c51fa1ac) }
  2692. func init() { golang_proto.RegisterFile("abci/types/types.proto", fileDescriptor_9f1eaa49c51fa1ac) }
  2693. var fileDescriptor_9f1eaa49c51fa1ac = []byte{
  2694. // 2279 bytes of a gzipped FileDescriptorProto
  2695. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0xcd, 0x73, 0x1c, 0x47,
  2696. 0x15, 0xd7, 0xec, 0xf7, 0xbc, 0xd5, 0x7e, 0xb8, 0x2d, 0xdb, 0xeb, 0xc5, 0x48, 0xae, 0x31, 0x38,
  2697. 0x52, 0xe2, 0xac, 0x12, 0x05, 0x53, 0x32, 0x0e, 0xa9, 0xd2, 0xda, 0x06, 0xa9, 0x62, 0x82, 0x18,
  2698. 0xdb, 0xe2, 0x42, 0xd5, 0x54, 0xef, 0x4e, 0x7b, 0x77, 0xca, 0xbb, 0x33, 0x93, 0x99, 0x5e, 0x79,
  2699. 0xc5, 0x91, 0x73, 0x0e, 0x39, 0xf0, 0x27, 0x70, 0xe0, 0x4f, 0xc8, 0x91, 0x13, 0x95, 0x23, 0x07,
  2700. 0xce, 0x06, 0x44, 0x71, 0xa1, 0x8a, 0x33, 0x70, 0xa3, 0xfa, 0x75, 0xcf, 0xa7, 0x66, 0x4d, 0x62,
  2701. 0xb8, 0xe5, 0x22, 0x4d, 0xf7, 0xfb, 0xbd, 0xde, 0x7e, 0xdd, 0xef, 0xbd, 0xdf, 0x7b, 0x0d, 0x57,
  2702. 0xe9, 0x68, 0xec, 0xec, 0xf2, 0x33, 0x9f, 0x85, 0xf2, 0xef, 0xc0, 0x0f, 0x3c, 0xee, 0x91, 0x2a,
  2703. 0x0e, 0xfa, 0xef, 0x4e, 0x1c, 0x3e, 0x5d, 0x8c, 0x06, 0x63, 0x6f, 0xbe, 0x3b, 0xf1, 0x26, 0xde,
  2704. 0x2e, 0x4a, 0x47, 0x8b, 0xe7, 0x38, 0xc2, 0x01, 0x7e, 0x49, 0xad, 0xfe, 0xfd, 0x14, 0x9c, 0x33,
  2705. 0xd7, 0x66, 0xc1, 0xdc, 0x71, 0x79, 0xfa, 0x73, 0x1c, 0x9c, 0xf9, 0xdc, 0xdb, 0x9d, 0xb3, 0xe0,
  2706. 0xc5, 0x8c, 0xa9, 0x7f, 0x4a, 0x79, 0xff, 0xbf, 0x2a, 0xcf, 0x9c, 0x51, 0xb8, 0x3b, 0xf6, 0xe6,
  2707. 0x73, 0xcf, 0x4d, 0x6f, 0xb6, 0xbf, 0x35, 0xf1, 0xbc, 0xc9, 0x8c, 0x25, 0x9b, 0xe3, 0xce, 0x9c,
  2708. 0x85, 0x9c, 0xce, 0x7d, 0x09, 0x30, 0x7e, 0x5f, 0x81, 0xba, 0xc9, 0x3e, 0x5d, 0xb0, 0x90, 0x93,
  2709. 0x6d, 0xa8, 0xb0, 0xf1, 0xd4, 0xeb, 0x95, 0x6e, 0x6a, 0xdb, 0xcd, 0x3d, 0x32, 0x90, 0x0b, 0x29,
  2710. 0xe9, 0xa3, 0xf1, 0xd4, 0x3b, 0x5c, 0x33, 0x11, 0x41, 0xde, 0x81, 0xea, 0xf3, 0xd9, 0x22, 0x9c,
  2711. 0xf6, 0xca, 0x08, 0xbd, 0x9c, 0x85, 0xfe, 0x48, 0x88, 0x0e, 0xd7, 0x4c, 0x89, 0x11, 0xcb, 0x3a,
  2712. 0xee, 0x73, 0xaf, 0x57, 0x29, 0x5a, 0xf6, 0xc8, 0x7d, 0x8e, 0xcb, 0x0a, 0x04, 0xd9, 0x07, 0x08,
  2713. 0x19, 0xb7, 0x3c, 0x9f, 0x3b, 0x9e, 0xdb, 0xab, 0x22, 0xfe, 0x5a, 0x16, 0xff, 0x84, 0xf1, 0x9f,
  2714. 0xa2, 0xf8, 0x70, 0xcd, 0xd4, 0xc3, 0x68, 0x20, 0x34, 0x1d, 0xd7, 0xe1, 0xd6, 0x78, 0x4a, 0x1d,
  2715. 0xb7, 0x57, 0x2b, 0xd2, 0x3c, 0x72, 0x1d, 0xfe, 0x40, 0x88, 0x85, 0xa6, 0x13, 0x0d, 0x84, 0x29,
  2716. 0x9f, 0x2e, 0x58, 0x70, 0xd6, 0xab, 0x17, 0x99, 0xf2, 0x33, 0x21, 0x12, 0xa6, 0x20, 0x86, 0xdc,
  2717. 0x87, 0xe6, 0x88, 0x4d, 0x1c, 0xd7, 0x1a, 0xcd, 0xbc, 0xf1, 0x8b, 0x5e, 0x03, 0x55, 0x7a, 0x59,
  2718. 0x95, 0xa1, 0x00, 0x0c, 0x85, 0xfc, 0x70, 0xcd, 0x84, 0x51, 0x3c, 0x22, 0x7b, 0xd0, 0x18, 0x4f,
  2719. 0xd9, 0xf8, 0x85, 0xc5, 0x97, 0x3d, 0x1d, 0x35, 0xaf, 0x64, 0x35, 0x1f, 0x08, 0xe9, 0xd3, 0xe5,
  2720. 0xe1, 0x9a, 0x59, 0x1f, 0xcb, 0x4f, 0x61, 0x97, 0xcd, 0x66, 0xce, 0x29, 0x0b, 0x84, 0xd6, 0xe5,
  2721. 0x22, 0xbb, 0x1e, 0x4a, 0x39, 0xea, 0xe9, 0x76, 0x34, 0x20, 0x77, 0x41, 0x67, 0xae, 0xad, 0x36,
  2722. 0xda, 0x44, 0xc5, 0xab, 0xb9, 0x1b, 0x75, 0xed, 0x68, 0x9b, 0x0d, 0xa6, 0xbe, 0xc9, 0x00, 0x6a,
  2723. 0xc2, 0x8d, 0x1c, 0xde, 0x5b, 0x47, 0x9d, 0x8d, 0xdc, 0x16, 0x51, 0x76, 0xb8, 0x66, 0x2a, 0xd4,
  2724. 0xb0, 0x0e, 0xd5, 0x53, 0x3a, 0x5b, 0x30, 0xe3, 0x2d, 0x68, 0xa6, 0x3c, 0x85, 0xf4, 0xa0, 0x3e,
  2725. 0x67, 0x61, 0x48, 0x27, 0xac, 0xa7, 0xdd, 0xd4, 0xb6, 0x75, 0x33, 0x1a, 0x1a, 0x6d, 0x58, 0x4f,
  2726. 0xfb, 0x89, 0x31, 0x8f, 0x15, 0x85, 0x2f, 0x08, 0xc5, 0x53, 0x16, 0x84, 0xc2, 0x01, 0x94, 0xa2,
  2727. 0x1a, 0x92, 0x5b, 0xd0, 0x42, 0x6b, 0xac, 0x48, 0x2e, 0xfc, 0xb4, 0x62, 0xae, 0xe3, 0xe4, 0x89,
  2728. 0x02, 0x6d, 0x41, 0xd3, 0xdf, 0xf3, 0x63, 0x48, 0x19, 0x21, 0xe0, 0xef, 0xf9, 0x0a, 0x60, 0xfc,
  2729. 0x00, 0xba, 0x79, 0x57, 0x22, 0x5d, 0x28, 0xbf, 0x60, 0x67, 0xea, 0xf7, 0xc4, 0x27, 0xd9, 0x50,
  2730. 0x66, 0xe1, 0x6f, 0xe8, 0xa6, 0xb2, 0xf1, 0xf3, 0x52, 0xac, 0x1c, 0x7b, 0x13, 0xd9, 0x87, 0x8a,
  2731. 0x08, 0x2a, 0xd4, 0x6e, 0xee, 0xf5, 0x07, 0x32, 0xe2, 0x06, 0x51, 0xc4, 0x0d, 0x9e, 0x46, 0x11,
  2732. 0x37, 0x6c, 0x7c, 0xf9, 0x6a, 0x6b, 0xed, 0xf3, 0x3f, 0x6d, 0x69, 0x26, 0x6a, 0x90, 0xeb, 0xc2,
  2733. 0x21, 0xa8, 0xe3, 0x5a, 0x8e, 0xad, 0x7e, 0xa7, 0x8e, 0xe3, 0x23, 0x9b, 0x1c, 0x40, 0x77, 0xec,
  2734. 0xb9, 0x21, 0x73, 0xc3, 0x45, 0x68, 0xf9, 0x34, 0xa0, 0xf3, 0x50, 0xc5, 0x5a, 0x74, 0x89, 0x0f,
  2735. 0x22, 0xf1, 0x31, 0x4a, 0xcd, 0xce, 0x38, 0x3b, 0x41, 0x3e, 0x04, 0x38, 0xa5, 0x33, 0xc7, 0xa6,
  2736. 0xdc, 0x0b, 0xc2, 0x5e, 0xe5, 0x66, 0x39, 0xa5, 0x7c, 0x12, 0x09, 0x9e, 0xf9, 0x36, 0xe5, 0x6c,
  2737. 0x58, 0x11, 0x3b, 0x33, 0x53, 0x78, 0x72, 0x1b, 0x3a, 0xd4, 0xf7, 0xad, 0x90, 0x53, 0xce, 0xac,
  2738. 0xd1, 0x19, 0x67, 0x21, 0xc6, 0xe3, 0xba, 0xd9, 0xa2, 0xbe, 0xff, 0x44, 0xcc, 0x0e, 0xc5, 0xa4,
  2739. 0x61, 0xc7, 0xb7, 0x89, 0xa1, 0x42, 0x08, 0x54, 0x6c, 0xca, 0x29, 0x9e, 0xc6, 0xba, 0x89, 0xdf,
  2740. 0x62, 0xce, 0xa7, 0x7c, 0xaa, 0x6c, 0xc4, 0x6f, 0x72, 0x15, 0x6a, 0x53, 0xe6, 0x4c, 0xa6, 0x1c,
  2741. 0xcd, 0x2a, 0x9b, 0x6a, 0x24, 0x0e, 0xde, 0x0f, 0xbc, 0x53, 0x86, 0xd9, 0xa2, 0x61, 0xca, 0x81,
  2742. 0xf1, 0x37, 0x0d, 0x2e, 0x5d, 0x08, 0x2f, 0xb1, 0xee, 0x94, 0x86, 0xd3, 0xe8, 0xb7, 0xc4, 0x37,
  2743. 0x79, 0x47, 0xac, 0x4b, 0x6d, 0x16, 0xa8, 0x2c, 0xd6, 0x52, 0x16, 0x1f, 0xe2, 0xa4, 0x32, 0x54,
  2744. 0x41, 0xc8, 0x23, 0xe8, 0xce, 0x68, 0xc8, 0x2d, 0xe9, 0xcb, 0x16, 0x66, 0xa9, 0x72, 0x26, 0x32,
  2745. 0x1f, 0xd3, 0xc8, 0xe7, 0x85, 0x73, 0x2a, 0xf5, 0xf6, 0x2c, 0x33, 0x4b, 0x0e, 0x61, 0x63, 0x74,
  2746. 0xf6, 0x4b, 0xea, 0x72, 0xc7, 0x65, 0xd6, 0x85, 0x33, 0xef, 0xa8, 0xa5, 0x1e, 0x9d, 0x3a, 0x36,
  2747. 0x73, 0xc7, 0xd1, 0x61, 0x5f, 0x8e, 0x55, 0xe2, 0xcb, 0x08, 0x8d, 0x43, 0x68, 0x67, 0x73, 0x01,
  2748. 0x69, 0x43, 0x89, 0x2f, 0x95, 0x85, 0x25, 0xbe, 0x24, 0xb7, 0xa1, 0x22, 0x96, 0x43, 0xeb, 0xda,
  2749. 0x71, 0x32, 0x55, 0xe8, 0xa7, 0x67, 0x3e, 0x33, 0x51, 0x6e, 0x18, 0xb1, 0xa7, 0xc6, 0xf9, 0x21,
  2750. 0xbf, 0x96, 0xb1, 0x03, 0x9d, 0x5c, 0x2a, 0x48, 0x5d, 0x8b, 0x96, 0xbe, 0x16, 0xa3, 0x03, 0xad,
  2751. 0x4c, 0x06, 0x30, 0x3e, 0xab, 0x42, 0xc3, 0x64, 0xa1, 0x2f, 0x9c, 0x8e, 0xec, 0x83, 0xce, 0x96,
  2752. 0x63, 0x26, 0xd3, 0xb6, 0x96, 0x4b, 0x8a, 0x12, 0xf3, 0x28, 0x92, 0x8b, 0x2c, 0x15, 0x83, 0xc9,
  2753. 0x4e, 0x86, 0x72, 0x2e, 0xe7, 0x95, 0xd2, 0x9c, 0x73, 0x27, 0xcb, 0x39, 0x1b, 0x39, 0x6c, 0x8e,
  2754. 0x74, 0x76, 0x32, 0xa4, 0x93, 0x5f, 0x38, 0xc3, 0x3a, 0xf7, 0x0a, 0x58, 0x27, 0xbf, 0xfd, 0x15,
  2755. 0xb4, 0x73, 0xaf, 0x80, 0x76, 0x7a, 0x17, 0x7e, 0xab, 0x90, 0x77, 0xee, 0x64, 0x79, 0x27, 0x6f,
  2756. 0x4e, 0x8e, 0x78, 0x3e, 0x2c, 0x22, 0x9e, 0xeb, 0x39, 0x9d, 0x95, 0xcc, 0xf3, 0xc1, 0x05, 0xe6,
  2757. 0xb9, 0x9a, 0x53, 0x2d, 0xa0, 0x9e, 0x7b, 0x19, 0xea, 0x81, 0x42, 0xdb, 0x56, 0x70, 0xcf, 0xf7,
  2758. 0x2f, 0x72, 0xcf, 0xb5, 0xfc, 0xd5, 0x16, 0x91, 0xcf, 0x6e, 0x8e, 0x7c, 0xae, 0xe4, 0x77, 0xb9,
  2759. 0x92, 0x7d, 0x76, 0x44, 0x7e, 0xc8, 0x79, 0x9a, 0xc8, 0x25, 0x2c, 0x08, 0xbc, 0x40, 0x25, 0x76,
  2760. 0x39, 0x30, 0xb6, 0x45, 0xc6, 0x4a, 0xfc, 0xeb, 0x35, 0x4c, 0x85, 0x4e, 0x9f, 0xf2, 0x2e, 0xe3,
  2761. 0x0b, 0x2d, 0xd1, 0xc5, 0xc8, 0x4f, 0x67, 0x3b, 0x5d, 0x65, 0xbb, 0x14, 0x81, 0x95, 0xb2, 0x04,
  2762. 0xb6, 0x05, 0x4d, 0x91, 0x53, 0x73, 0xdc, 0x44, 0xfd, 0x88, 0x9b, 0xc8, 0xdb, 0x70, 0x09, 0xf3,
  2763. 0x91, 0xa4, 0x39, 0x15, 0x88, 0x15, 0x0c, 0xc4, 0x8e, 0x10, 0xc8, 0x13, 0x93, 0x89, 0xf2, 0x5d,
  2764. 0xb8, 0x9c, 0xc2, 0x8a, 0x75, 0x31, 0x17, 0xca, 0x24, 0xdd, 0x8d, 0xd1, 0x07, 0xbe, 0x7f, 0x48,
  2765. 0xc3, 0xa9, 0xf1, 0x93, 0xe4, 0x80, 0x12, 0xde, 0x23, 0x50, 0x19, 0x7b, 0xb6, 0xb4, 0xbb, 0x65,
  2766. 0xe2, 0xb7, 0xe0, 0xc2, 0x99, 0x37, 0xc1, 0xcd, 0xe9, 0xa6, 0xf8, 0x14, 0xa8, 0x38, 0x94, 0x74,
  2767. 0x19, 0x33, 0xc6, 0xaf, 0xb5, 0x64, 0xbd, 0x84, 0x0a, 0x8b, 0x58, 0x4b, 0xfb, 0x5f, 0x58, 0xab,
  2768. 0xf4, 0xf5, 0x58, 0xcb, 0x38, 0xd7, 0x92, 0x2b, 0x8b, 0xf9, 0xe8, 0xcd, 0x4c, 0x14, 0xde, 0xe3,
  2769. 0xb8, 0x36, 0x5b, 0xe2, 0x91, 0x96, 0x4d, 0x39, 0x88, 0x4a, 0x85, 0x1a, 0x1e, 0x73, 0xb6, 0x54,
  2770. 0xa8, 0xe3, 0x9c, 0x1c, 0x90, 0x5b, 0xc8, 0x63, 0xde, 0x73, 0x15, 0xaa, 0xad, 0x81, 0x2a, 0xe8,
  2771. 0x8f, 0xc5, 0xa4, 0x29, 0x65, 0xa9, 0x6c, 0xab, 0x67, 0x48, 0xf0, 0x06, 0xe8, 0x62, 0xa3, 0xa1,
  2772. 0x4f, 0xc7, 0x0c, 0x23, 0x4f, 0x37, 0x93, 0x09, 0xe3, 0x29, 0x90, 0x8b, 0x11, 0x4f, 0x3e, 0x82,
  2773. 0x1a, 0x3b, 0x65, 0x2e, 0x17, 0x27, 0x2e, 0x0e, 0x6d, 0x3d, 0xa6, 0x1d, 0xe6, 0xf2, 0x61, 0x4f,
  2774. 0x1c, 0xd5, 0xdf, 0x5f, 0x6d, 0x75, 0x25, 0xe6, 0x8e, 0x37, 0x77, 0x38, 0x9b, 0xfb, 0xfc, 0xcc,
  2775. 0x54, 0x5a, 0xc6, 0x3f, 0x35, 0xc1, 0x06, 0x99, 0x6c, 0x50, 0x78, 0x78, 0x91, 0xcb, 0x97, 0x52,
  2776. 0x04, 0xff, 0xd5, 0x0e, 0xf4, 0xdb, 0x00, 0x13, 0x1a, 0x5a, 0x2f, 0xa9, 0xcb, 0x99, 0xad, 0x4e,
  2777. 0x55, 0x9f, 0xd0, 0xf0, 0xe7, 0x38, 0x21, 0xaa, 0x21, 0x21, 0x5e, 0x84, 0xcc, 0xc6, 0xe3, 0x2d,
  2778. 0x9b, 0xf5, 0x09, 0x0d, 0x9f, 0x85, 0xcc, 0x4e, 0xd9, 0x56, 0x7f, 0x13, 0xdb, 0xb2, 0xe7, 0xd9,
  2779. 0xc8, 0x9f, 0xe7, 0xbf, 0x53, 0xbe, 0x9c, 0x90, 0xe5, 0x37, 0xc3, 0xf6, 0x7f, 0x68, 0xa2, 0x4e,
  2780. 0xc8, 0xa6, 0x64, 0x72, 0x04, 0x97, 0xe2, 0x98, 0xb2, 0x16, 0x18, 0x6b, 0x91, 0x57, 0xbd, 0x3e,
  2781. 0x14, 0xbb, 0xa7, 0xd9, 0xe9, 0x90, 0x7c, 0x02, 0xd7, 0x72, 0x19, 0x21, 0x5e, 0xb0, 0xf4, 0xda,
  2782. 0xc4, 0x70, 0x25, 0x9b, 0x18, 0xa2, 0xf5, 0x92, 0xd3, 0x28, 0xbf, 0x91, 0x97, 0x7f, 0x47, 0x14,
  2783. 0x58, 0x69, 0x32, 0x29, 0xba, 0x53, 0xe3, 0x37, 0x1a, 0x74, 0x72, 0x1b, 0x22, 0xdb, 0x50, 0x95,
  2784. 0x7c, 0xa6, 0x65, 0xda, 0x58, 0x3c, 0x31, 0xb5, 0x67, 0x09, 0x20, 0xef, 0x43, 0x83, 0xa9, 0x5a,
  2785. 0x4f, 0x19, 0x79, 0x25, 0x57, 0x02, 0x2a, 0x7c, 0x0c, 0x23, 0xdf, 0x03, 0x3d, 0x3e, 0xba, 0x5c,
  2786. 0x9d, 0x1f, 0x9f, 0xb4, 0x52, 0x4a, 0x80, 0xc6, 0x03, 0x68, 0xa6, 0x7e, 0x9e, 0x7c, 0x0b, 0xf4,
  2787. 0x39, 0x5d, 0xaa, 0x62, 0x5d, 0x96, 0x6f, 0x8d, 0x39, 0x5d, 0x62, 0x9d, 0x4e, 0xae, 0x41, 0x5d,
  2788. 0x08, 0x27, 0x54, 0x1e, 0x7c, 0xd9, 0xac, 0xcd, 0xe9, 0xf2, 0xc7, 0x34, 0x34, 0x76, 0xa0, 0x9d,
  2789. 0xdd, 0x56, 0x04, 0x8d, 0x08, 0x51, 0x42, 0x0f, 0x26, 0xcc, 0xb8, 0x0b, 0x9d, 0xdc, 0x6e, 0x88,
  2790. 0x01, 0x2d, 0x7f, 0x31, 0xb2, 0x5e, 0xb0, 0x33, 0x0b, 0xb7, 0x8b, 0x6e, 0xa2, 0x9b, 0x4d, 0x7f,
  2791. 0x31, 0xfa, 0x98, 0x9d, 0x89, 0x7a, 0x34, 0x34, 0x9e, 0x40, 0x3b, 0x5b, 0x46, 0x8b, 0x94, 0x19,
  2792. 0x78, 0x0b, 0xd7, 0xc6, 0xf5, 0xab, 0xa6, 0x1c, 0x88, 0x4e, 0xfc, 0xd4, 0x93, 0x9e, 0x91, 0xae,
  2793. 0x9b, 0x4f, 0x3c, 0xce, 0x52, 0xc5, 0xb7, 0xc4, 0x18, 0x0e, 0x54, 0xf1, 0xce, 0xc5, 0xfd, 0x61,
  2794. 0x41, 0xac, 0x28, 0x58, 0x7c, 0x93, 0xc7, 0x00, 0x94, 0xf3, 0xc0, 0x19, 0x2d, 0x92, 0xe5, 0xda,
  2795. 0x03, 0xf9, 0x3c, 0x32, 0xf8, 0xf8, 0xe4, 0x98, 0x3a, 0xc1, 0xf0, 0x86, 0xf2, 0x95, 0x8d, 0x04,
  2796. 0x99, 0xf2, 0x97, 0x94, 0xbe, 0xf1, 0xab, 0x2a, 0xd4, 0x64, 0xfb, 0x40, 0x06, 0xd9, 0xe6, 0x54,
  2797. 0xac, 0xaa, 0x36, 0x29, 0x67, 0xd5, 0x1e, 0x63, 0xc6, 0xbf, 0x9d, 0xef, 0xf0, 0x86, 0xcd, 0xf3,
  2798. 0x57, 0x5b, 0x75, 0x64, 0xcb, 0xa3, 0x87, 0x49, 0xbb, 0xb7, 0xaa, 0x1b, 0x8a, 0x7a, 0xcb, 0xca,
  2799. 0xd7, 0xee, 0x2d, 0xaf, 0x41, 0xdd, 0x5d, 0xcc, 0x2d, 0xbe, 0x0c, 0x55, 0xb6, 0xa9, 0xb9, 0x8b,
  2800. 0xf9, 0xd3, 0x25, 0x7a, 0x09, 0xf7, 0x38, 0x9d, 0xa1, 0x48, 0xe6, 0x9a, 0x06, 0x4e, 0x08, 0xe1,
  2801. 0x3e, 0xb4, 0x52, 0x45, 0x85, 0x63, 0xab, 0xe2, 0xb4, 0x9d, 0x76, 0xf6, 0xa3, 0x87, 0xca, 0xca,
  2802. 0x66, 0x5c, 0x64, 0x1c, 0xd9, 0x64, 0x3b, 0xdb, 0x4a, 0x61, 0x2d, 0xd2, 0xc0, 0x90, 0x4a, 0x75,
  2803. 0x4b, 0xa2, 0x12, 0x11, 0x1b, 0x10, 0x41, 0x26, 0x21, 0x3a, 0x42, 0x1a, 0x62, 0x02, 0x85, 0x6f,
  2804. 0x41, 0x27, 0xa1, 0x73, 0x09, 0x01, 0xb9, 0x4a, 0x32, 0x8d, 0xc0, 0xf7, 0x60, 0xc3, 0x65, 0x4b,
  2805. 0x6e, 0xe5, 0xd1, 0x4d, 0x44, 0x13, 0x21, 0x3b, 0xc9, 0x6a, 0x7c, 0x17, 0xda, 0x49, 0x2a, 0x42,
  2806. 0xec, 0xba, 0x6c, 0x68, 0xe3, 0x59, 0x84, 0x5d, 0x87, 0x46, 0x5c, 0x4c, 0xb5, 0x10, 0x50, 0xa7,
  2807. 0xb2, 0x86, 0x8a, 0xcb, 0xb3, 0x80, 0x85, 0x8b, 0x19, 0x57, 0x8b, 0xb4, 0x11, 0x83, 0xe5, 0x99,
  2808. 0x29, 0xe7, 0x11, 0x7b, 0x0b, 0x5a, 0x51, 0x74, 0x4b, 0x5c, 0x07, 0x71, 0xeb, 0xd1, 0x24, 0x82,
  2809. 0x76, 0xa0, 0xeb, 0x07, 0x9e, 0xef, 0x85, 0x2c, 0xb0, 0xa8, 0x6d, 0x07, 0x2c, 0x0c, 0x7b, 0x5d,
  2810. 0xb9, 0x5e, 0x34, 0x7f, 0x20, 0xa7, 0x8d, 0xf7, 0xa1, 0x1e, 0x55, 0x89, 0x1b, 0x50, 0x1d, 0xc6,
  2811. 0x99, 0xa8, 0x62, 0xca, 0x81, 0xe0, 0xa1, 0x03, 0xdf, 0x57, 0x6f, 0x22, 0xe2, 0xd3, 0xf8, 0x05,
  2812. 0xd4, 0xd5, 0x85, 0x15, 0x76, 0xca, 0x3f, 0x84, 0x75, 0x9f, 0x06, 0xc2, 0x8c, 0x74, 0xbf, 0x1c,
  2813. 0xf5, 0x21, 0xc7, 0x34, 0xe0, 0x4f, 0x18, 0xcf, 0xb4, 0xcd, 0x4d, 0xc4, 0xcb, 0x29, 0xe3, 0x1e,
  2814. 0xb4, 0x32, 0x18, 0xb1, 0x2d, 0xf4, 0xa3, 0x28, 0xa8, 0x71, 0x10, 0xff, 0x72, 0x29, 0xf9, 0x65,
  2815. 0xe3, 0x3e, 0xe8, 0xf1, 0xdd, 0x88, 0x72, 0x39, 0x32, 0x5d, 0x53, 0xc7, 0x2d, 0x87, 0xf8, 0x14,
  2816. 0xe0, 0xbd, 0x64, 0x81, 0x8a, 0x09, 0x39, 0x30, 0x9e, 0xa5, 0x92, 0x90, 0x64, 0x05, 0x72, 0x07,
  2817. 0xea, 0x2a, 0x09, 0xa9, 0xa8, 0x8c, 0x9a, 0xfe, 0x63, 0xcc, 0x42, 0x51, 0xd3, 0x2f, 0x73, 0x52,
  2818. 0xb2, 0x6c, 0x29, 0xbd, 0xec, 0x0c, 0x1a, 0x51, 0xa2, 0xc9, 0x66, 0x63, 0xb9, 0x62, 0x37, 0x9f,
  2819. 0x8d, 0xd5, 0xa2, 0x09, 0x50, 0x78, 0x47, 0xe8, 0x4c, 0x5c, 0x66, 0x5b, 0x49, 0x08, 0xe1, 0x6f,
  2820. 0x34, 0xcc, 0x8e, 0x14, 0x3c, 0x8e, 0xe2, 0xc5, 0x78, 0x0f, 0x6a, 0x72, 0x6f, 0x85, 0xe9, 0xab,
  2821. 0x88, 0x92, 0xfe, 0xa8, 0x41, 0x23, 0xca, 0xd3, 0x85, 0x4a, 0x99, 0x4d, 0x97, 0xbe, 0xea, 0xa6,
  2822. 0xff, 0xff, 0x89, 0xe7, 0x0e, 0x10, 0x99, 0x5f, 0x4e, 0x3d, 0xee, 0xb8, 0x13, 0x4b, 0x9e, 0xb5,
  2823. 0xcc, 0x41, 0x5d, 0x94, 0x9c, 0xa0, 0xe0, 0x58, 0xcc, 0xbf, 0x7d, 0x0b, 0x9a, 0xa9, 0xb7, 0x0b,
  2824. 0x52, 0x87, 0xf2, 0x27, 0xec, 0x65, 0x77, 0x8d, 0x34, 0xa1, 0x6e, 0x32, 0xec, 0x44, 0xbb, 0xda,
  2825. 0xde, 0x67, 0x55, 0xe8, 0x1c, 0x0c, 0x1f, 0x1c, 0x1d, 0xf8, 0xfe, 0xcc, 0x19, 0x53, 0x6c, 0x5d,
  2826. 0x76, 0xa1, 0x82, 0xdd, 0x5b, 0xc1, 0x2b, 0x75, 0xbf, 0xe8, 0x19, 0x81, 0xec, 0x41, 0x15, 0x9b,
  2827. 0x38, 0x52, 0xf4, 0x58, 0xdd, 0x2f, 0x7c, 0x4d, 0x10, 0x3f, 0x22, 0xdb, 0xbc, 0x8b, 0x6f, 0xd6,
  2828. 0xfd, 0xa2, 0x27, 0x05, 0xf2, 0x11, 0xe8, 0x49, 0x77, 0xb5, 0xea, 0xe5, 0xba, 0xbf, 0xf2, 0x71,
  2829. 0x41, 0xe8, 0x27, 0x15, 0xe8, 0xaa, 0x77, 0xde, 0xfe, 0xca, 0x2e, 0x9c, 0xec, 0x43, 0x3d, 0xaa,
  2830. 0xdd, 0x8b, 0xdf, 0x96, 0xfb, 0x2b, 0x1a, 0x7f, 0x71, 0x3c, 0xb2, 0x61, 0x2a, 0x7a, 0x00, 0xef,
  2831. 0x17, 0xbe, 0x4e, 0x90, 0xbb, 0x50, 0x53, 0x45, 0x54, 0xe1, 0x2b, 0x71, 0xbf, 0xb8, 0x7d, 0x17,
  2832. 0x46, 0x26, 0x2d, 0xe3, 0xaa, 0x47, 0xfa, 0xfe, 0xca, 0x67, 0x14, 0x72, 0x00, 0x90, 0xea, 0x7b,
  2833. 0x56, 0xbe, 0xbe, 0xf7, 0x57, 0x3f, 0x8f, 0x90, 0xfb, 0xd0, 0x48, 0x9e, 0xbc, 0x8a, 0x5f, 0xc5,
  2834. 0xfb, 0xab, 0x5e, 0x2c, 0x86, 0x37, 0xfe, 0xf5, 0x97, 0x4d, 0xed, 0xb7, 0xe7, 0x9b, 0xda, 0x17,
  2835. 0xe7, 0x9b, 0xda, 0x97, 0xe7, 0x9b, 0xda, 0x1f, 0xce, 0x37, 0xb5, 0x3f, 0x9f, 0x6f, 0x6a, 0xbf,
  2836. 0xfb, 0xeb, 0xa6, 0x36, 0xaa, 0x61, 0x8c, 0x7c, 0xf0, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x46,
  2837. 0x07, 0xcf, 0xb8, 0x3f, 0x1a, 0x00, 0x00,
  2838. }
  2839. func (this *Request) Equal(that interface{}) bool {
  2840. if that == nil {
  2841. return this == nil
  2842. }
  2843. that1, ok := that.(*Request)
  2844. if !ok {
  2845. that2, ok := that.(Request)
  2846. if ok {
  2847. that1 = &that2
  2848. } else {
  2849. return false
  2850. }
  2851. }
  2852. if that1 == nil {
  2853. return this == nil
  2854. } else if this == nil {
  2855. return false
  2856. }
  2857. if that1.Value == nil {
  2858. if this.Value != nil {
  2859. return false
  2860. }
  2861. } else if this.Value == nil {
  2862. return false
  2863. } else if !this.Value.Equal(that1.Value) {
  2864. return false
  2865. }
  2866. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  2867. return false
  2868. }
  2869. return true
  2870. }
  2871. func (this *Request_Echo) Equal(that interface{}) bool {
  2872. if that == nil {
  2873. return this == nil
  2874. }
  2875. that1, ok := that.(*Request_Echo)
  2876. if !ok {
  2877. that2, ok := that.(Request_Echo)
  2878. if ok {
  2879. that1 = &that2
  2880. } else {
  2881. return false
  2882. }
  2883. }
  2884. if that1 == nil {
  2885. return this == nil
  2886. } else if this == nil {
  2887. return false
  2888. }
  2889. if !this.Echo.Equal(that1.Echo) {
  2890. return false
  2891. }
  2892. return true
  2893. }
  2894. func (this *Request_Flush) Equal(that interface{}) bool {
  2895. if that == nil {
  2896. return this == nil
  2897. }
  2898. that1, ok := that.(*Request_Flush)
  2899. if !ok {
  2900. that2, ok := that.(Request_Flush)
  2901. if ok {
  2902. that1 = &that2
  2903. } else {
  2904. return false
  2905. }
  2906. }
  2907. if that1 == nil {
  2908. return this == nil
  2909. } else if this == nil {
  2910. return false
  2911. }
  2912. if !this.Flush.Equal(that1.Flush) {
  2913. return false
  2914. }
  2915. return true
  2916. }
  2917. func (this *Request_Info) Equal(that interface{}) bool {
  2918. if that == nil {
  2919. return this == nil
  2920. }
  2921. that1, ok := that.(*Request_Info)
  2922. if !ok {
  2923. that2, ok := that.(Request_Info)
  2924. if ok {
  2925. that1 = &that2
  2926. } else {
  2927. return false
  2928. }
  2929. }
  2930. if that1 == nil {
  2931. return this == nil
  2932. } else if this == nil {
  2933. return false
  2934. }
  2935. if !this.Info.Equal(that1.Info) {
  2936. return false
  2937. }
  2938. return true
  2939. }
  2940. func (this *Request_SetOption) Equal(that interface{}) bool {
  2941. if that == nil {
  2942. return this == nil
  2943. }
  2944. that1, ok := that.(*Request_SetOption)
  2945. if !ok {
  2946. that2, ok := that.(Request_SetOption)
  2947. if ok {
  2948. that1 = &that2
  2949. } else {
  2950. return false
  2951. }
  2952. }
  2953. if that1 == nil {
  2954. return this == nil
  2955. } else if this == nil {
  2956. return false
  2957. }
  2958. if !this.SetOption.Equal(that1.SetOption) {
  2959. return false
  2960. }
  2961. return true
  2962. }
  2963. func (this *Request_InitChain) Equal(that interface{}) bool {
  2964. if that == nil {
  2965. return this == nil
  2966. }
  2967. that1, ok := that.(*Request_InitChain)
  2968. if !ok {
  2969. that2, ok := that.(Request_InitChain)
  2970. if ok {
  2971. that1 = &that2
  2972. } else {
  2973. return false
  2974. }
  2975. }
  2976. if that1 == nil {
  2977. return this == nil
  2978. } else if this == nil {
  2979. return false
  2980. }
  2981. if !this.InitChain.Equal(that1.InitChain) {
  2982. return false
  2983. }
  2984. return true
  2985. }
  2986. func (this *Request_Query) Equal(that interface{}) bool {
  2987. if that == nil {
  2988. return this == nil
  2989. }
  2990. that1, ok := that.(*Request_Query)
  2991. if !ok {
  2992. that2, ok := that.(Request_Query)
  2993. if ok {
  2994. that1 = &that2
  2995. } else {
  2996. return false
  2997. }
  2998. }
  2999. if that1 == nil {
  3000. return this == nil
  3001. } else if this == nil {
  3002. return false
  3003. }
  3004. if !this.Query.Equal(that1.Query) {
  3005. return false
  3006. }
  3007. return true
  3008. }
  3009. func (this *Request_BeginBlock) Equal(that interface{}) bool {
  3010. if that == nil {
  3011. return this == nil
  3012. }
  3013. that1, ok := that.(*Request_BeginBlock)
  3014. if !ok {
  3015. that2, ok := that.(Request_BeginBlock)
  3016. if ok {
  3017. that1 = &that2
  3018. } else {
  3019. return false
  3020. }
  3021. }
  3022. if that1 == nil {
  3023. return this == nil
  3024. } else if this == nil {
  3025. return false
  3026. }
  3027. if !this.BeginBlock.Equal(that1.BeginBlock) {
  3028. return false
  3029. }
  3030. return true
  3031. }
  3032. func (this *Request_CheckTx) Equal(that interface{}) bool {
  3033. if that == nil {
  3034. return this == nil
  3035. }
  3036. that1, ok := that.(*Request_CheckTx)
  3037. if !ok {
  3038. that2, ok := that.(Request_CheckTx)
  3039. if ok {
  3040. that1 = &that2
  3041. } else {
  3042. return false
  3043. }
  3044. }
  3045. if that1 == nil {
  3046. return this == nil
  3047. } else if this == nil {
  3048. return false
  3049. }
  3050. if !this.CheckTx.Equal(that1.CheckTx) {
  3051. return false
  3052. }
  3053. return true
  3054. }
  3055. func (this *Request_DeliverTx) Equal(that interface{}) bool {
  3056. if that == nil {
  3057. return this == nil
  3058. }
  3059. that1, ok := that.(*Request_DeliverTx)
  3060. if !ok {
  3061. that2, ok := that.(Request_DeliverTx)
  3062. if ok {
  3063. that1 = &that2
  3064. } else {
  3065. return false
  3066. }
  3067. }
  3068. if that1 == nil {
  3069. return this == nil
  3070. } else if this == nil {
  3071. return false
  3072. }
  3073. if !this.DeliverTx.Equal(that1.DeliverTx) {
  3074. return false
  3075. }
  3076. return true
  3077. }
  3078. func (this *Request_EndBlock) Equal(that interface{}) bool {
  3079. if that == nil {
  3080. return this == nil
  3081. }
  3082. that1, ok := that.(*Request_EndBlock)
  3083. if !ok {
  3084. that2, ok := that.(Request_EndBlock)
  3085. if ok {
  3086. that1 = &that2
  3087. } else {
  3088. return false
  3089. }
  3090. }
  3091. if that1 == nil {
  3092. return this == nil
  3093. } else if this == nil {
  3094. return false
  3095. }
  3096. if !this.EndBlock.Equal(that1.EndBlock) {
  3097. return false
  3098. }
  3099. return true
  3100. }
  3101. func (this *Request_Commit) Equal(that interface{}) bool {
  3102. if that == nil {
  3103. return this == nil
  3104. }
  3105. that1, ok := that.(*Request_Commit)
  3106. if !ok {
  3107. that2, ok := that.(Request_Commit)
  3108. if ok {
  3109. that1 = &that2
  3110. } else {
  3111. return false
  3112. }
  3113. }
  3114. if that1 == nil {
  3115. return this == nil
  3116. } else if this == nil {
  3117. return false
  3118. }
  3119. if !this.Commit.Equal(that1.Commit) {
  3120. return false
  3121. }
  3122. return true
  3123. }
  3124. func (this *RequestEcho) Equal(that interface{}) bool {
  3125. if that == nil {
  3126. return this == nil
  3127. }
  3128. that1, ok := that.(*RequestEcho)
  3129. if !ok {
  3130. that2, ok := that.(RequestEcho)
  3131. if ok {
  3132. that1 = &that2
  3133. } else {
  3134. return false
  3135. }
  3136. }
  3137. if that1 == nil {
  3138. return this == nil
  3139. } else if this == nil {
  3140. return false
  3141. }
  3142. if this.Message != that1.Message {
  3143. return false
  3144. }
  3145. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3146. return false
  3147. }
  3148. return true
  3149. }
  3150. func (this *RequestFlush) Equal(that interface{}) bool {
  3151. if that == nil {
  3152. return this == nil
  3153. }
  3154. that1, ok := that.(*RequestFlush)
  3155. if !ok {
  3156. that2, ok := that.(RequestFlush)
  3157. if ok {
  3158. that1 = &that2
  3159. } else {
  3160. return false
  3161. }
  3162. }
  3163. if that1 == nil {
  3164. return this == nil
  3165. } else if this == nil {
  3166. return false
  3167. }
  3168. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3169. return false
  3170. }
  3171. return true
  3172. }
  3173. func (this *RequestInfo) Equal(that interface{}) bool {
  3174. if that == nil {
  3175. return this == nil
  3176. }
  3177. that1, ok := that.(*RequestInfo)
  3178. if !ok {
  3179. that2, ok := that.(RequestInfo)
  3180. if ok {
  3181. that1 = &that2
  3182. } else {
  3183. return false
  3184. }
  3185. }
  3186. if that1 == nil {
  3187. return this == nil
  3188. } else if this == nil {
  3189. return false
  3190. }
  3191. if this.Version != that1.Version {
  3192. return false
  3193. }
  3194. if this.BlockVersion != that1.BlockVersion {
  3195. return false
  3196. }
  3197. if this.P2PVersion != that1.P2PVersion {
  3198. return false
  3199. }
  3200. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3201. return false
  3202. }
  3203. return true
  3204. }
  3205. func (this *RequestSetOption) Equal(that interface{}) bool {
  3206. if that == nil {
  3207. return this == nil
  3208. }
  3209. that1, ok := that.(*RequestSetOption)
  3210. if !ok {
  3211. that2, ok := that.(RequestSetOption)
  3212. if ok {
  3213. that1 = &that2
  3214. } else {
  3215. return false
  3216. }
  3217. }
  3218. if that1 == nil {
  3219. return this == nil
  3220. } else if this == nil {
  3221. return false
  3222. }
  3223. if this.Key != that1.Key {
  3224. return false
  3225. }
  3226. if this.Value != that1.Value {
  3227. return false
  3228. }
  3229. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3230. return false
  3231. }
  3232. return true
  3233. }
  3234. func (this *RequestInitChain) Equal(that interface{}) bool {
  3235. if that == nil {
  3236. return this == nil
  3237. }
  3238. that1, ok := that.(*RequestInitChain)
  3239. if !ok {
  3240. that2, ok := that.(RequestInitChain)
  3241. if ok {
  3242. that1 = &that2
  3243. } else {
  3244. return false
  3245. }
  3246. }
  3247. if that1 == nil {
  3248. return this == nil
  3249. } else if this == nil {
  3250. return false
  3251. }
  3252. if !this.Time.Equal(that1.Time) {
  3253. return false
  3254. }
  3255. if this.ChainId != that1.ChainId {
  3256. return false
  3257. }
  3258. if !this.ConsensusParams.Equal(that1.ConsensusParams) {
  3259. return false
  3260. }
  3261. if len(this.Validators) != len(that1.Validators) {
  3262. return false
  3263. }
  3264. for i := range this.Validators {
  3265. if !this.Validators[i].Equal(&that1.Validators[i]) {
  3266. return false
  3267. }
  3268. }
  3269. if !bytes.Equal(this.AppStateBytes, that1.AppStateBytes) {
  3270. return false
  3271. }
  3272. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3273. return false
  3274. }
  3275. return true
  3276. }
  3277. func (this *RequestQuery) Equal(that interface{}) bool {
  3278. if that == nil {
  3279. return this == nil
  3280. }
  3281. that1, ok := that.(*RequestQuery)
  3282. if !ok {
  3283. that2, ok := that.(RequestQuery)
  3284. if ok {
  3285. that1 = &that2
  3286. } else {
  3287. return false
  3288. }
  3289. }
  3290. if that1 == nil {
  3291. return this == nil
  3292. } else if this == nil {
  3293. return false
  3294. }
  3295. if !bytes.Equal(this.Data, that1.Data) {
  3296. return false
  3297. }
  3298. if this.Path != that1.Path {
  3299. return false
  3300. }
  3301. if this.Height != that1.Height {
  3302. return false
  3303. }
  3304. if this.Prove != that1.Prove {
  3305. return false
  3306. }
  3307. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3308. return false
  3309. }
  3310. return true
  3311. }
  3312. func (this *RequestBeginBlock) Equal(that interface{}) bool {
  3313. if that == nil {
  3314. return this == nil
  3315. }
  3316. that1, ok := that.(*RequestBeginBlock)
  3317. if !ok {
  3318. that2, ok := that.(RequestBeginBlock)
  3319. if ok {
  3320. that1 = &that2
  3321. } else {
  3322. return false
  3323. }
  3324. }
  3325. if that1 == nil {
  3326. return this == nil
  3327. } else if this == nil {
  3328. return false
  3329. }
  3330. if !bytes.Equal(this.Hash, that1.Hash) {
  3331. return false
  3332. }
  3333. if !this.Header.Equal(&that1.Header) {
  3334. return false
  3335. }
  3336. if !this.LastCommitInfo.Equal(&that1.LastCommitInfo) {
  3337. return false
  3338. }
  3339. if len(this.ByzantineValidators) != len(that1.ByzantineValidators) {
  3340. return false
  3341. }
  3342. for i := range this.ByzantineValidators {
  3343. if !this.ByzantineValidators[i].Equal(&that1.ByzantineValidators[i]) {
  3344. return false
  3345. }
  3346. }
  3347. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3348. return false
  3349. }
  3350. return true
  3351. }
  3352. func (this *RequestCheckTx) Equal(that interface{}) bool {
  3353. if that == nil {
  3354. return this == nil
  3355. }
  3356. that1, ok := that.(*RequestCheckTx)
  3357. if !ok {
  3358. that2, ok := that.(RequestCheckTx)
  3359. if ok {
  3360. that1 = &that2
  3361. } else {
  3362. return false
  3363. }
  3364. }
  3365. if that1 == nil {
  3366. return this == nil
  3367. } else if this == nil {
  3368. return false
  3369. }
  3370. if !bytes.Equal(this.Tx, that1.Tx) {
  3371. return false
  3372. }
  3373. if this.Type != that1.Type {
  3374. return false
  3375. }
  3376. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3377. return false
  3378. }
  3379. return true
  3380. }
  3381. func (this *RequestDeliverTx) Equal(that interface{}) bool {
  3382. if that == nil {
  3383. return this == nil
  3384. }
  3385. that1, ok := that.(*RequestDeliverTx)
  3386. if !ok {
  3387. that2, ok := that.(RequestDeliverTx)
  3388. if ok {
  3389. that1 = &that2
  3390. } else {
  3391. return false
  3392. }
  3393. }
  3394. if that1 == nil {
  3395. return this == nil
  3396. } else if this == nil {
  3397. return false
  3398. }
  3399. if !bytes.Equal(this.Tx, that1.Tx) {
  3400. return false
  3401. }
  3402. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3403. return false
  3404. }
  3405. return true
  3406. }
  3407. func (this *RequestEndBlock) Equal(that interface{}) bool {
  3408. if that == nil {
  3409. return this == nil
  3410. }
  3411. that1, ok := that.(*RequestEndBlock)
  3412. if !ok {
  3413. that2, ok := that.(RequestEndBlock)
  3414. if ok {
  3415. that1 = &that2
  3416. } else {
  3417. return false
  3418. }
  3419. }
  3420. if that1 == nil {
  3421. return this == nil
  3422. } else if this == nil {
  3423. return false
  3424. }
  3425. if this.Height != that1.Height {
  3426. return false
  3427. }
  3428. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3429. return false
  3430. }
  3431. return true
  3432. }
  3433. func (this *RequestCommit) Equal(that interface{}) bool {
  3434. if that == nil {
  3435. return this == nil
  3436. }
  3437. that1, ok := that.(*RequestCommit)
  3438. if !ok {
  3439. that2, ok := that.(RequestCommit)
  3440. if ok {
  3441. that1 = &that2
  3442. } else {
  3443. return false
  3444. }
  3445. }
  3446. if that1 == nil {
  3447. return this == nil
  3448. } else if this == nil {
  3449. return false
  3450. }
  3451. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3452. return false
  3453. }
  3454. return true
  3455. }
  3456. func (this *Response) Equal(that interface{}) bool {
  3457. if that == nil {
  3458. return this == nil
  3459. }
  3460. that1, ok := that.(*Response)
  3461. if !ok {
  3462. that2, ok := that.(Response)
  3463. if ok {
  3464. that1 = &that2
  3465. } else {
  3466. return false
  3467. }
  3468. }
  3469. if that1 == nil {
  3470. return this == nil
  3471. } else if this == nil {
  3472. return false
  3473. }
  3474. if that1.Value == nil {
  3475. if this.Value != nil {
  3476. return false
  3477. }
  3478. } else if this.Value == nil {
  3479. return false
  3480. } else if !this.Value.Equal(that1.Value) {
  3481. return false
  3482. }
  3483. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3484. return false
  3485. }
  3486. return true
  3487. }
  3488. func (this *Response_Exception) Equal(that interface{}) bool {
  3489. if that == nil {
  3490. return this == nil
  3491. }
  3492. that1, ok := that.(*Response_Exception)
  3493. if !ok {
  3494. that2, ok := that.(Response_Exception)
  3495. if ok {
  3496. that1 = &that2
  3497. } else {
  3498. return false
  3499. }
  3500. }
  3501. if that1 == nil {
  3502. return this == nil
  3503. } else if this == nil {
  3504. return false
  3505. }
  3506. if !this.Exception.Equal(that1.Exception) {
  3507. return false
  3508. }
  3509. return true
  3510. }
  3511. func (this *Response_Echo) Equal(that interface{}) bool {
  3512. if that == nil {
  3513. return this == nil
  3514. }
  3515. that1, ok := that.(*Response_Echo)
  3516. if !ok {
  3517. that2, ok := that.(Response_Echo)
  3518. if ok {
  3519. that1 = &that2
  3520. } else {
  3521. return false
  3522. }
  3523. }
  3524. if that1 == nil {
  3525. return this == nil
  3526. } else if this == nil {
  3527. return false
  3528. }
  3529. if !this.Echo.Equal(that1.Echo) {
  3530. return false
  3531. }
  3532. return true
  3533. }
  3534. func (this *Response_Flush) Equal(that interface{}) bool {
  3535. if that == nil {
  3536. return this == nil
  3537. }
  3538. that1, ok := that.(*Response_Flush)
  3539. if !ok {
  3540. that2, ok := that.(Response_Flush)
  3541. if ok {
  3542. that1 = &that2
  3543. } else {
  3544. return false
  3545. }
  3546. }
  3547. if that1 == nil {
  3548. return this == nil
  3549. } else if this == nil {
  3550. return false
  3551. }
  3552. if !this.Flush.Equal(that1.Flush) {
  3553. return false
  3554. }
  3555. return true
  3556. }
  3557. func (this *Response_Info) Equal(that interface{}) bool {
  3558. if that == nil {
  3559. return this == nil
  3560. }
  3561. that1, ok := that.(*Response_Info)
  3562. if !ok {
  3563. that2, ok := that.(Response_Info)
  3564. if ok {
  3565. that1 = &that2
  3566. } else {
  3567. return false
  3568. }
  3569. }
  3570. if that1 == nil {
  3571. return this == nil
  3572. } else if this == nil {
  3573. return false
  3574. }
  3575. if !this.Info.Equal(that1.Info) {
  3576. return false
  3577. }
  3578. return true
  3579. }
  3580. func (this *Response_SetOption) Equal(that interface{}) bool {
  3581. if that == nil {
  3582. return this == nil
  3583. }
  3584. that1, ok := that.(*Response_SetOption)
  3585. if !ok {
  3586. that2, ok := that.(Response_SetOption)
  3587. if ok {
  3588. that1 = &that2
  3589. } else {
  3590. return false
  3591. }
  3592. }
  3593. if that1 == nil {
  3594. return this == nil
  3595. } else if this == nil {
  3596. return false
  3597. }
  3598. if !this.SetOption.Equal(that1.SetOption) {
  3599. return false
  3600. }
  3601. return true
  3602. }
  3603. func (this *Response_InitChain) Equal(that interface{}) bool {
  3604. if that == nil {
  3605. return this == nil
  3606. }
  3607. that1, ok := that.(*Response_InitChain)
  3608. if !ok {
  3609. that2, ok := that.(Response_InitChain)
  3610. if ok {
  3611. that1 = &that2
  3612. } else {
  3613. return false
  3614. }
  3615. }
  3616. if that1 == nil {
  3617. return this == nil
  3618. } else if this == nil {
  3619. return false
  3620. }
  3621. if !this.InitChain.Equal(that1.InitChain) {
  3622. return false
  3623. }
  3624. return true
  3625. }
  3626. func (this *Response_Query) Equal(that interface{}) bool {
  3627. if that == nil {
  3628. return this == nil
  3629. }
  3630. that1, ok := that.(*Response_Query)
  3631. if !ok {
  3632. that2, ok := that.(Response_Query)
  3633. if ok {
  3634. that1 = &that2
  3635. } else {
  3636. return false
  3637. }
  3638. }
  3639. if that1 == nil {
  3640. return this == nil
  3641. } else if this == nil {
  3642. return false
  3643. }
  3644. if !this.Query.Equal(that1.Query) {
  3645. return false
  3646. }
  3647. return true
  3648. }
  3649. func (this *Response_BeginBlock) Equal(that interface{}) bool {
  3650. if that == nil {
  3651. return this == nil
  3652. }
  3653. that1, ok := that.(*Response_BeginBlock)
  3654. if !ok {
  3655. that2, ok := that.(Response_BeginBlock)
  3656. if ok {
  3657. that1 = &that2
  3658. } else {
  3659. return false
  3660. }
  3661. }
  3662. if that1 == nil {
  3663. return this == nil
  3664. } else if this == nil {
  3665. return false
  3666. }
  3667. if !this.BeginBlock.Equal(that1.BeginBlock) {
  3668. return false
  3669. }
  3670. return true
  3671. }
  3672. func (this *Response_CheckTx) Equal(that interface{}) bool {
  3673. if that == nil {
  3674. return this == nil
  3675. }
  3676. that1, ok := that.(*Response_CheckTx)
  3677. if !ok {
  3678. that2, ok := that.(Response_CheckTx)
  3679. if ok {
  3680. that1 = &that2
  3681. } else {
  3682. return false
  3683. }
  3684. }
  3685. if that1 == nil {
  3686. return this == nil
  3687. } else if this == nil {
  3688. return false
  3689. }
  3690. if !this.CheckTx.Equal(that1.CheckTx) {
  3691. return false
  3692. }
  3693. return true
  3694. }
  3695. func (this *Response_DeliverTx) Equal(that interface{}) bool {
  3696. if that == nil {
  3697. return this == nil
  3698. }
  3699. that1, ok := that.(*Response_DeliverTx)
  3700. if !ok {
  3701. that2, ok := that.(Response_DeliverTx)
  3702. if ok {
  3703. that1 = &that2
  3704. } else {
  3705. return false
  3706. }
  3707. }
  3708. if that1 == nil {
  3709. return this == nil
  3710. } else if this == nil {
  3711. return false
  3712. }
  3713. if !this.DeliverTx.Equal(that1.DeliverTx) {
  3714. return false
  3715. }
  3716. return true
  3717. }
  3718. func (this *Response_EndBlock) Equal(that interface{}) bool {
  3719. if that == nil {
  3720. return this == nil
  3721. }
  3722. that1, ok := that.(*Response_EndBlock)
  3723. if !ok {
  3724. that2, ok := that.(Response_EndBlock)
  3725. if ok {
  3726. that1 = &that2
  3727. } else {
  3728. return false
  3729. }
  3730. }
  3731. if that1 == nil {
  3732. return this == nil
  3733. } else if this == nil {
  3734. return false
  3735. }
  3736. if !this.EndBlock.Equal(that1.EndBlock) {
  3737. return false
  3738. }
  3739. return true
  3740. }
  3741. func (this *Response_Commit) Equal(that interface{}) bool {
  3742. if that == nil {
  3743. return this == nil
  3744. }
  3745. that1, ok := that.(*Response_Commit)
  3746. if !ok {
  3747. that2, ok := that.(Response_Commit)
  3748. if ok {
  3749. that1 = &that2
  3750. } else {
  3751. return false
  3752. }
  3753. }
  3754. if that1 == nil {
  3755. return this == nil
  3756. } else if this == nil {
  3757. return false
  3758. }
  3759. if !this.Commit.Equal(that1.Commit) {
  3760. return false
  3761. }
  3762. return true
  3763. }
  3764. func (this *ResponseException) Equal(that interface{}) bool {
  3765. if that == nil {
  3766. return this == nil
  3767. }
  3768. that1, ok := that.(*ResponseException)
  3769. if !ok {
  3770. that2, ok := that.(ResponseException)
  3771. if ok {
  3772. that1 = &that2
  3773. } else {
  3774. return false
  3775. }
  3776. }
  3777. if that1 == nil {
  3778. return this == nil
  3779. } else if this == nil {
  3780. return false
  3781. }
  3782. if this.Error != that1.Error {
  3783. return false
  3784. }
  3785. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3786. return false
  3787. }
  3788. return true
  3789. }
  3790. func (this *ResponseEcho) Equal(that interface{}) bool {
  3791. if that == nil {
  3792. return this == nil
  3793. }
  3794. that1, ok := that.(*ResponseEcho)
  3795. if !ok {
  3796. that2, ok := that.(ResponseEcho)
  3797. if ok {
  3798. that1 = &that2
  3799. } else {
  3800. return false
  3801. }
  3802. }
  3803. if that1 == nil {
  3804. return this == nil
  3805. } else if this == nil {
  3806. return false
  3807. }
  3808. if this.Message != that1.Message {
  3809. return false
  3810. }
  3811. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3812. return false
  3813. }
  3814. return true
  3815. }
  3816. func (this *ResponseFlush) Equal(that interface{}) bool {
  3817. if that == nil {
  3818. return this == nil
  3819. }
  3820. that1, ok := that.(*ResponseFlush)
  3821. if !ok {
  3822. that2, ok := that.(ResponseFlush)
  3823. if ok {
  3824. that1 = &that2
  3825. } else {
  3826. return false
  3827. }
  3828. }
  3829. if that1 == nil {
  3830. return this == nil
  3831. } else if this == nil {
  3832. return false
  3833. }
  3834. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3835. return false
  3836. }
  3837. return true
  3838. }
  3839. func (this *ResponseInfo) Equal(that interface{}) bool {
  3840. if that == nil {
  3841. return this == nil
  3842. }
  3843. that1, ok := that.(*ResponseInfo)
  3844. if !ok {
  3845. that2, ok := that.(ResponseInfo)
  3846. if ok {
  3847. that1 = &that2
  3848. } else {
  3849. return false
  3850. }
  3851. }
  3852. if that1 == nil {
  3853. return this == nil
  3854. } else if this == nil {
  3855. return false
  3856. }
  3857. if this.Data != that1.Data {
  3858. return false
  3859. }
  3860. if this.Version != that1.Version {
  3861. return false
  3862. }
  3863. if this.AppVersion != that1.AppVersion {
  3864. return false
  3865. }
  3866. if this.LastBlockHeight != that1.LastBlockHeight {
  3867. return false
  3868. }
  3869. if !bytes.Equal(this.LastBlockAppHash, that1.LastBlockAppHash) {
  3870. return false
  3871. }
  3872. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3873. return false
  3874. }
  3875. return true
  3876. }
  3877. func (this *ResponseSetOption) Equal(that interface{}) bool {
  3878. if that == nil {
  3879. return this == nil
  3880. }
  3881. that1, ok := that.(*ResponseSetOption)
  3882. if !ok {
  3883. that2, ok := that.(ResponseSetOption)
  3884. if ok {
  3885. that1 = &that2
  3886. } else {
  3887. return false
  3888. }
  3889. }
  3890. if that1 == nil {
  3891. return this == nil
  3892. } else if this == nil {
  3893. return false
  3894. }
  3895. if this.Code != that1.Code {
  3896. return false
  3897. }
  3898. if this.Log != that1.Log {
  3899. return false
  3900. }
  3901. if this.Info != that1.Info {
  3902. return false
  3903. }
  3904. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3905. return false
  3906. }
  3907. return true
  3908. }
  3909. func (this *ResponseInitChain) Equal(that interface{}) bool {
  3910. if that == nil {
  3911. return this == nil
  3912. }
  3913. that1, ok := that.(*ResponseInitChain)
  3914. if !ok {
  3915. that2, ok := that.(ResponseInitChain)
  3916. if ok {
  3917. that1 = &that2
  3918. } else {
  3919. return false
  3920. }
  3921. }
  3922. if that1 == nil {
  3923. return this == nil
  3924. } else if this == nil {
  3925. return false
  3926. }
  3927. if !this.ConsensusParams.Equal(that1.ConsensusParams) {
  3928. return false
  3929. }
  3930. if len(this.Validators) != len(that1.Validators) {
  3931. return false
  3932. }
  3933. for i := range this.Validators {
  3934. if !this.Validators[i].Equal(&that1.Validators[i]) {
  3935. return false
  3936. }
  3937. }
  3938. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3939. return false
  3940. }
  3941. return true
  3942. }
  3943. func (this *ResponseQuery) Equal(that interface{}) bool {
  3944. if that == nil {
  3945. return this == nil
  3946. }
  3947. that1, ok := that.(*ResponseQuery)
  3948. if !ok {
  3949. that2, ok := that.(ResponseQuery)
  3950. if ok {
  3951. that1 = &that2
  3952. } else {
  3953. return false
  3954. }
  3955. }
  3956. if that1 == nil {
  3957. return this == nil
  3958. } else if this == nil {
  3959. return false
  3960. }
  3961. if this.Code != that1.Code {
  3962. return false
  3963. }
  3964. if this.Log != that1.Log {
  3965. return false
  3966. }
  3967. if this.Info != that1.Info {
  3968. return false
  3969. }
  3970. if this.Index != that1.Index {
  3971. return false
  3972. }
  3973. if !bytes.Equal(this.Key, that1.Key) {
  3974. return false
  3975. }
  3976. if !bytes.Equal(this.Value, that1.Value) {
  3977. return false
  3978. }
  3979. if !this.Proof.Equal(that1.Proof) {
  3980. return false
  3981. }
  3982. if this.Height != that1.Height {
  3983. return false
  3984. }
  3985. if this.Codespace != that1.Codespace {
  3986. return false
  3987. }
  3988. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3989. return false
  3990. }
  3991. return true
  3992. }
  3993. func (this *ResponseBeginBlock) Equal(that interface{}) bool {
  3994. if that == nil {
  3995. return this == nil
  3996. }
  3997. that1, ok := that.(*ResponseBeginBlock)
  3998. if !ok {
  3999. that2, ok := that.(ResponseBeginBlock)
  4000. if ok {
  4001. that1 = &that2
  4002. } else {
  4003. return false
  4004. }
  4005. }
  4006. if that1 == nil {
  4007. return this == nil
  4008. } else if this == nil {
  4009. return false
  4010. }
  4011. if len(this.Events) != len(that1.Events) {
  4012. return false
  4013. }
  4014. for i := range this.Events {
  4015. if !this.Events[i].Equal(&that1.Events[i]) {
  4016. return false
  4017. }
  4018. }
  4019. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4020. return false
  4021. }
  4022. return true
  4023. }
  4024. func (this *ResponseCheckTx) Equal(that interface{}) bool {
  4025. if that == nil {
  4026. return this == nil
  4027. }
  4028. that1, ok := that.(*ResponseCheckTx)
  4029. if !ok {
  4030. that2, ok := that.(ResponseCheckTx)
  4031. if ok {
  4032. that1 = &that2
  4033. } else {
  4034. return false
  4035. }
  4036. }
  4037. if that1 == nil {
  4038. return this == nil
  4039. } else if this == nil {
  4040. return false
  4041. }
  4042. if this.Code != that1.Code {
  4043. return false
  4044. }
  4045. if !bytes.Equal(this.Data, that1.Data) {
  4046. return false
  4047. }
  4048. if this.Log != that1.Log {
  4049. return false
  4050. }
  4051. if this.Info != that1.Info {
  4052. return false
  4053. }
  4054. if this.GasWanted != that1.GasWanted {
  4055. return false
  4056. }
  4057. if this.GasUsed != that1.GasUsed {
  4058. return false
  4059. }
  4060. if len(this.Events) != len(that1.Events) {
  4061. return false
  4062. }
  4063. for i := range this.Events {
  4064. if !this.Events[i].Equal(&that1.Events[i]) {
  4065. return false
  4066. }
  4067. }
  4068. if this.Codespace != that1.Codespace {
  4069. return false
  4070. }
  4071. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4072. return false
  4073. }
  4074. return true
  4075. }
  4076. func (this *ResponseDeliverTx) Equal(that interface{}) bool {
  4077. if that == nil {
  4078. return this == nil
  4079. }
  4080. that1, ok := that.(*ResponseDeliverTx)
  4081. if !ok {
  4082. that2, ok := that.(ResponseDeliverTx)
  4083. if ok {
  4084. that1 = &that2
  4085. } else {
  4086. return false
  4087. }
  4088. }
  4089. if that1 == nil {
  4090. return this == nil
  4091. } else if this == nil {
  4092. return false
  4093. }
  4094. if this.Code != that1.Code {
  4095. return false
  4096. }
  4097. if !bytes.Equal(this.Data, that1.Data) {
  4098. return false
  4099. }
  4100. if this.Log != that1.Log {
  4101. return false
  4102. }
  4103. if this.Info != that1.Info {
  4104. return false
  4105. }
  4106. if this.GasWanted != that1.GasWanted {
  4107. return false
  4108. }
  4109. if this.GasUsed != that1.GasUsed {
  4110. return false
  4111. }
  4112. if len(this.Events) != len(that1.Events) {
  4113. return false
  4114. }
  4115. for i := range this.Events {
  4116. if !this.Events[i].Equal(&that1.Events[i]) {
  4117. return false
  4118. }
  4119. }
  4120. if this.Codespace != that1.Codespace {
  4121. return false
  4122. }
  4123. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4124. return false
  4125. }
  4126. return true
  4127. }
  4128. func (this *ResponseEndBlock) Equal(that interface{}) bool {
  4129. if that == nil {
  4130. return this == nil
  4131. }
  4132. that1, ok := that.(*ResponseEndBlock)
  4133. if !ok {
  4134. that2, ok := that.(ResponseEndBlock)
  4135. if ok {
  4136. that1 = &that2
  4137. } else {
  4138. return false
  4139. }
  4140. }
  4141. if that1 == nil {
  4142. return this == nil
  4143. } else if this == nil {
  4144. return false
  4145. }
  4146. if len(this.ValidatorUpdates) != len(that1.ValidatorUpdates) {
  4147. return false
  4148. }
  4149. for i := range this.ValidatorUpdates {
  4150. if !this.ValidatorUpdates[i].Equal(&that1.ValidatorUpdates[i]) {
  4151. return false
  4152. }
  4153. }
  4154. if !this.ConsensusParamUpdates.Equal(that1.ConsensusParamUpdates) {
  4155. return false
  4156. }
  4157. if len(this.Events) != len(that1.Events) {
  4158. return false
  4159. }
  4160. for i := range this.Events {
  4161. if !this.Events[i].Equal(&that1.Events[i]) {
  4162. return false
  4163. }
  4164. }
  4165. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4166. return false
  4167. }
  4168. return true
  4169. }
  4170. func (this *ResponseCommit) Equal(that interface{}) bool {
  4171. if that == nil {
  4172. return this == nil
  4173. }
  4174. that1, ok := that.(*ResponseCommit)
  4175. if !ok {
  4176. that2, ok := that.(ResponseCommit)
  4177. if ok {
  4178. that1 = &that2
  4179. } else {
  4180. return false
  4181. }
  4182. }
  4183. if that1 == nil {
  4184. return this == nil
  4185. } else if this == nil {
  4186. return false
  4187. }
  4188. if !bytes.Equal(this.Data, that1.Data) {
  4189. return false
  4190. }
  4191. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4192. return false
  4193. }
  4194. return true
  4195. }
  4196. func (this *ConsensusParams) Equal(that interface{}) bool {
  4197. if that == nil {
  4198. return this == nil
  4199. }
  4200. that1, ok := that.(*ConsensusParams)
  4201. if !ok {
  4202. that2, ok := that.(ConsensusParams)
  4203. if ok {
  4204. that1 = &that2
  4205. } else {
  4206. return false
  4207. }
  4208. }
  4209. if that1 == nil {
  4210. return this == nil
  4211. } else if this == nil {
  4212. return false
  4213. }
  4214. if !this.Block.Equal(that1.Block) {
  4215. return false
  4216. }
  4217. if !this.Evidence.Equal(that1.Evidence) {
  4218. return false
  4219. }
  4220. if !this.Validator.Equal(that1.Validator) {
  4221. return false
  4222. }
  4223. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4224. return false
  4225. }
  4226. return true
  4227. }
  4228. func (this *BlockParams) Equal(that interface{}) bool {
  4229. if that == nil {
  4230. return this == nil
  4231. }
  4232. that1, ok := that.(*BlockParams)
  4233. if !ok {
  4234. that2, ok := that.(BlockParams)
  4235. if ok {
  4236. that1 = &that2
  4237. } else {
  4238. return false
  4239. }
  4240. }
  4241. if that1 == nil {
  4242. return this == nil
  4243. } else if this == nil {
  4244. return false
  4245. }
  4246. if this.MaxBytes != that1.MaxBytes {
  4247. return false
  4248. }
  4249. if this.MaxGas != that1.MaxGas {
  4250. return false
  4251. }
  4252. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4253. return false
  4254. }
  4255. return true
  4256. }
  4257. func (this *EvidenceParams) Equal(that interface{}) bool {
  4258. if that == nil {
  4259. return this == nil
  4260. }
  4261. that1, ok := that.(*EvidenceParams)
  4262. if !ok {
  4263. that2, ok := that.(EvidenceParams)
  4264. if ok {
  4265. that1 = &that2
  4266. } else {
  4267. return false
  4268. }
  4269. }
  4270. if that1 == nil {
  4271. return this == nil
  4272. } else if this == nil {
  4273. return false
  4274. }
  4275. if this.MaxAge != that1.MaxAge {
  4276. return false
  4277. }
  4278. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4279. return false
  4280. }
  4281. return true
  4282. }
  4283. func (this *ValidatorParams) Equal(that interface{}) bool {
  4284. if that == nil {
  4285. return this == nil
  4286. }
  4287. that1, ok := that.(*ValidatorParams)
  4288. if !ok {
  4289. that2, ok := that.(ValidatorParams)
  4290. if ok {
  4291. that1 = &that2
  4292. } else {
  4293. return false
  4294. }
  4295. }
  4296. if that1 == nil {
  4297. return this == nil
  4298. } else if this == nil {
  4299. return false
  4300. }
  4301. if len(this.PubKeyTypes) != len(that1.PubKeyTypes) {
  4302. return false
  4303. }
  4304. for i := range this.PubKeyTypes {
  4305. if this.PubKeyTypes[i] != that1.PubKeyTypes[i] {
  4306. return false
  4307. }
  4308. }
  4309. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4310. return false
  4311. }
  4312. return true
  4313. }
  4314. func (this *LastCommitInfo) Equal(that interface{}) bool {
  4315. if that == nil {
  4316. return this == nil
  4317. }
  4318. that1, ok := that.(*LastCommitInfo)
  4319. if !ok {
  4320. that2, ok := that.(LastCommitInfo)
  4321. if ok {
  4322. that1 = &that2
  4323. } else {
  4324. return false
  4325. }
  4326. }
  4327. if that1 == nil {
  4328. return this == nil
  4329. } else if this == nil {
  4330. return false
  4331. }
  4332. if this.Round != that1.Round {
  4333. return false
  4334. }
  4335. if len(this.Votes) != len(that1.Votes) {
  4336. return false
  4337. }
  4338. for i := range this.Votes {
  4339. if !this.Votes[i].Equal(&that1.Votes[i]) {
  4340. return false
  4341. }
  4342. }
  4343. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4344. return false
  4345. }
  4346. return true
  4347. }
  4348. func (this *Event) Equal(that interface{}) bool {
  4349. if that == nil {
  4350. return this == nil
  4351. }
  4352. that1, ok := that.(*Event)
  4353. if !ok {
  4354. that2, ok := that.(Event)
  4355. if ok {
  4356. that1 = &that2
  4357. } else {
  4358. return false
  4359. }
  4360. }
  4361. if that1 == nil {
  4362. return this == nil
  4363. } else if this == nil {
  4364. return false
  4365. }
  4366. if this.Type != that1.Type {
  4367. return false
  4368. }
  4369. if len(this.Attributes) != len(that1.Attributes) {
  4370. return false
  4371. }
  4372. for i := range this.Attributes {
  4373. if !this.Attributes[i].Equal(&that1.Attributes[i]) {
  4374. return false
  4375. }
  4376. }
  4377. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4378. return false
  4379. }
  4380. return true
  4381. }
  4382. func (this *Header) Equal(that interface{}) bool {
  4383. if that == nil {
  4384. return this == nil
  4385. }
  4386. that1, ok := that.(*Header)
  4387. if !ok {
  4388. that2, ok := that.(Header)
  4389. if ok {
  4390. that1 = &that2
  4391. } else {
  4392. return false
  4393. }
  4394. }
  4395. if that1 == nil {
  4396. return this == nil
  4397. } else if this == nil {
  4398. return false
  4399. }
  4400. if !this.Version.Equal(&that1.Version) {
  4401. return false
  4402. }
  4403. if this.ChainID != that1.ChainID {
  4404. return false
  4405. }
  4406. if this.Height != that1.Height {
  4407. return false
  4408. }
  4409. if !this.Time.Equal(that1.Time) {
  4410. return false
  4411. }
  4412. if this.NumTxs != that1.NumTxs {
  4413. return false
  4414. }
  4415. if this.TotalTxs != that1.TotalTxs {
  4416. return false
  4417. }
  4418. if !this.LastBlockId.Equal(&that1.LastBlockId) {
  4419. return false
  4420. }
  4421. if !bytes.Equal(this.LastCommitHash, that1.LastCommitHash) {
  4422. return false
  4423. }
  4424. if !bytes.Equal(this.DataHash, that1.DataHash) {
  4425. return false
  4426. }
  4427. if !bytes.Equal(this.ValidatorsHash, that1.ValidatorsHash) {
  4428. return false
  4429. }
  4430. if !bytes.Equal(this.NextValidatorsHash, that1.NextValidatorsHash) {
  4431. return false
  4432. }
  4433. if !bytes.Equal(this.ConsensusHash, that1.ConsensusHash) {
  4434. return false
  4435. }
  4436. if !bytes.Equal(this.AppHash, that1.AppHash) {
  4437. return false
  4438. }
  4439. if !bytes.Equal(this.LastResultsHash, that1.LastResultsHash) {
  4440. return false
  4441. }
  4442. if !bytes.Equal(this.EvidenceHash, that1.EvidenceHash) {
  4443. return false
  4444. }
  4445. if !bytes.Equal(this.ProposerAddress, that1.ProposerAddress) {
  4446. return false
  4447. }
  4448. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4449. return false
  4450. }
  4451. return true
  4452. }
  4453. func (this *Version) Equal(that interface{}) bool {
  4454. if that == nil {
  4455. return this == nil
  4456. }
  4457. that1, ok := that.(*Version)
  4458. if !ok {
  4459. that2, ok := that.(Version)
  4460. if ok {
  4461. that1 = &that2
  4462. } else {
  4463. return false
  4464. }
  4465. }
  4466. if that1 == nil {
  4467. return this == nil
  4468. } else if this == nil {
  4469. return false
  4470. }
  4471. if this.Block != that1.Block {
  4472. return false
  4473. }
  4474. if this.App != that1.App {
  4475. return false
  4476. }
  4477. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4478. return false
  4479. }
  4480. return true
  4481. }
  4482. func (this *BlockID) Equal(that interface{}) bool {
  4483. if that == nil {
  4484. return this == nil
  4485. }
  4486. that1, ok := that.(*BlockID)
  4487. if !ok {
  4488. that2, ok := that.(BlockID)
  4489. if ok {
  4490. that1 = &that2
  4491. } else {
  4492. return false
  4493. }
  4494. }
  4495. if that1 == nil {
  4496. return this == nil
  4497. } else if this == nil {
  4498. return false
  4499. }
  4500. if !bytes.Equal(this.Hash, that1.Hash) {
  4501. return false
  4502. }
  4503. if !this.PartsHeader.Equal(&that1.PartsHeader) {
  4504. return false
  4505. }
  4506. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4507. return false
  4508. }
  4509. return true
  4510. }
  4511. func (this *PartSetHeader) Equal(that interface{}) bool {
  4512. if that == nil {
  4513. return this == nil
  4514. }
  4515. that1, ok := that.(*PartSetHeader)
  4516. if !ok {
  4517. that2, ok := that.(PartSetHeader)
  4518. if ok {
  4519. that1 = &that2
  4520. } else {
  4521. return false
  4522. }
  4523. }
  4524. if that1 == nil {
  4525. return this == nil
  4526. } else if this == nil {
  4527. return false
  4528. }
  4529. if this.Total != that1.Total {
  4530. return false
  4531. }
  4532. if !bytes.Equal(this.Hash, that1.Hash) {
  4533. return false
  4534. }
  4535. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4536. return false
  4537. }
  4538. return true
  4539. }
  4540. func (this *Validator) Equal(that interface{}) bool {
  4541. if that == nil {
  4542. return this == nil
  4543. }
  4544. that1, ok := that.(*Validator)
  4545. if !ok {
  4546. that2, ok := that.(Validator)
  4547. if ok {
  4548. that1 = &that2
  4549. } else {
  4550. return false
  4551. }
  4552. }
  4553. if that1 == nil {
  4554. return this == nil
  4555. } else if this == nil {
  4556. return false
  4557. }
  4558. if !bytes.Equal(this.Address, that1.Address) {
  4559. return false
  4560. }
  4561. if this.Power != that1.Power {
  4562. return false
  4563. }
  4564. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4565. return false
  4566. }
  4567. return true
  4568. }
  4569. func (this *ValidatorUpdate) Equal(that interface{}) bool {
  4570. if that == nil {
  4571. return this == nil
  4572. }
  4573. that1, ok := that.(*ValidatorUpdate)
  4574. if !ok {
  4575. that2, ok := that.(ValidatorUpdate)
  4576. if ok {
  4577. that1 = &that2
  4578. } else {
  4579. return false
  4580. }
  4581. }
  4582. if that1 == nil {
  4583. return this == nil
  4584. } else if this == nil {
  4585. return false
  4586. }
  4587. if !this.PubKey.Equal(&that1.PubKey) {
  4588. return false
  4589. }
  4590. if this.Power != that1.Power {
  4591. return false
  4592. }
  4593. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4594. return false
  4595. }
  4596. return true
  4597. }
  4598. func (this *VoteInfo) Equal(that interface{}) bool {
  4599. if that == nil {
  4600. return this == nil
  4601. }
  4602. that1, ok := that.(*VoteInfo)
  4603. if !ok {
  4604. that2, ok := that.(VoteInfo)
  4605. if ok {
  4606. that1 = &that2
  4607. } else {
  4608. return false
  4609. }
  4610. }
  4611. if that1 == nil {
  4612. return this == nil
  4613. } else if this == nil {
  4614. return false
  4615. }
  4616. if !this.Validator.Equal(&that1.Validator) {
  4617. return false
  4618. }
  4619. if this.SignedLastBlock != that1.SignedLastBlock {
  4620. return false
  4621. }
  4622. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4623. return false
  4624. }
  4625. return true
  4626. }
  4627. func (this *PubKey) Equal(that interface{}) bool {
  4628. if that == nil {
  4629. return this == nil
  4630. }
  4631. that1, ok := that.(*PubKey)
  4632. if !ok {
  4633. that2, ok := that.(PubKey)
  4634. if ok {
  4635. that1 = &that2
  4636. } else {
  4637. return false
  4638. }
  4639. }
  4640. if that1 == nil {
  4641. return this == nil
  4642. } else if this == nil {
  4643. return false
  4644. }
  4645. if this.Type != that1.Type {
  4646. return false
  4647. }
  4648. if !bytes.Equal(this.Data, that1.Data) {
  4649. return false
  4650. }
  4651. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4652. return false
  4653. }
  4654. return true
  4655. }
  4656. func (this *Evidence) Equal(that interface{}) bool {
  4657. if that == nil {
  4658. return this == nil
  4659. }
  4660. that1, ok := that.(*Evidence)
  4661. if !ok {
  4662. that2, ok := that.(Evidence)
  4663. if ok {
  4664. that1 = &that2
  4665. } else {
  4666. return false
  4667. }
  4668. }
  4669. if that1 == nil {
  4670. return this == nil
  4671. } else if this == nil {
  4672. return false
  4673. }
  4674. if this.Type != that1.Type {
  4675. return false
  4676. }
  4677. if !this.Validator.Equal(&that1.Validator) {
  4678. return false
  4679. }
  4680. if this.Height != that1.Height {
  4681. return false
  4682. }
  4683. if !this.Time.Equal(that1.Time) {
  4684. return false
  4685. }
  4686. if this.TotalVotingPower != that1.TotalVotingPower {
  4687. return false
  4688. }
  4689. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4690. return false
  4691. }
  4692. return true
  4693. }
  4694. // Reference imports to suppress errors if they are not otherwise used.
  4695. var _ context.Context
  4696. var _ grpc.ClientConn
  4697. // This is a compile-time assertion to ensure that this generated file
  4698. // is compatible with the grpc package it is being compiled against.
  4699. const _ = grpc.SupportPackageIsVersion4
  4700. // ABCIApplicationClient is the client API for ABCIApplication service.
  4701. //
  4702. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
  4703. type ABCIApplicationClient interface {
  4704. Echo(ctx context.Context, in *RequestEcho, opts ...grpc.CallOption) (*ResponseEcho, error)
  4705. Flush(ctx context.Context, in *RequestFlush, opts ...grpc.CallOption) (*ResponseFlush, error)
  4706. Info(ctx context.Context, in *RequestInfo, opts ...grpc.CallOption) (*ResponseInfo, error)
  4707. SetOption(ctx context.Context, in *RequestSetOption, opts ...grpc.CallOption) (*ResponseSetOption, error)
  4708. DeliverTx(ctx context.Context, in *RequestDeliverTx, opts ...grpc.CallOption) (*ResponseDeliverTx, error)
  4709. CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error)
  4710. Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error)
  4711. Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error)
  4712. InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error)
  4713. BeginBlock(ctx context.Context, in *RequestBeginBlock, opts ...grpc.CallOption) (*ResponseBeginBlock, error)
  4714. EndBlock(ctx context.Context, in *RequestEndBlock, opts ...grpc.CallOption) (*ResponseEndBlock, error)
  4715. }
  4716. type aBCIApplicationClient struct {
  4717. cc *grpc.ClientConn
  4718. }
  4719. func NewABCIApplicationClient(cc *grpc.ClientConn) ABCIApplicationClient {
  4720. return &aBCIApplicationClient{cc}
  4721. }
  4722. func (c *aBCIApplicationClient) Echo(ctx context.Context, in *RequestEcho, opts ...grpc.CallOption) (*ResponseEcho, error) {
  4723. out := new(ResponseEcho)
  4724. err := c.cc.Invoke(ctx, "/types.ABCIApplication/Echo", in, out, opts...)
  4725. if err != nil {
  4726. return nil, err
  4727. }
  4728. return out, nil
  4729. }
  4730. func (c *aBCIApplicationClient) Flush(ctx context.Context, in *RequestFlush, opts ...grpc.CallOption) (*ResponseFlush, error) {
  4731. out := new(ResponseFlush)
  4732. err := c.cc.Invoke(ctx, "/types.ABCIApplication/Flush", in, out, opts...)
  4733. if err != nil {
  4734. return nil, err
  4735. }
  4736. return out, nil
  4737. }
  4738. func (c *aBCIApplicationClient) Info(ctx context.Context, in *RequestInfo, opts ...grpc.CallOption) (*ResponseInfo, error) {
  4739. out := new(ResponseInfo)
  4740. err := c.cc.Invoke(ctx, "/types.ABCIApplication/Info", in, out, opts...)
  4741. if err != nil {
  4742. return nil, err
  4743. }
  4744. return out, nil
  4745. }
  4746. func (c *aBCIApplicationClient) SetOption(ctx context.Context, in *RequestSetOption, opts ...grpc.CallOption) (*ResponseSetOption, error) {
  4747. out := new(ResponseSetOption)
  4748. err := c.cc.Invoke(ctx, "/types.ABCIApplication/SetOption", in, out, opts...)
  4749. if err != nil {
  4750. return nil, err
  4751. }
  4752. return out, nil
  4753. }
  4754. func (c *aBCIApplicationClient) DeliverTx(ctx context.Context, in *RequestDeliverTx, opts ...grpc.CallOption) (*ResponseDeliverTx, error) {
  4755. out := new(ResponseDeliverTx)
  4756. err := c.cc.Invoke(ctx, "/types.ABCIApplication/DeliverTx", in, out, opts...)
  4757. if err != nil {
  4758. return nil, err
  4759. }
  4760. return out, nil
  4761. }
  4762. func (c *aBCIApplicationClient) CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error) {
  4763. out := new(ResponseCheckTx)
  4764. err := c.cc.Invoke(ctx, "/types.ABCIApplication/CheckTx", in, out, opts...)
  4765. if err != nil {
  4766. return nil, err
  4767. }
  4768. return out, nil
  4769. }
  4770. func (c *aBCIApplicationClient) Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error) {
  4771. out := new(ResponseQuery)
  4772. err := c.cc.Invoke(ctx, "/types.ABCIApplication/Query", in, out, opts...)
  4773. if err != nil {
  4774. return nil, err
  4775. }
  4776. return out, nil
  4777. }
  4778. func (c *aBCIApplicationClient) Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error) {
  4779. out := new(ResponseCommit)
  4780. err := c.cc.Invoke(ctx, "/types.ABCIApplication/Commit", in, out, opts...)
  4781. if err != nil {
  4782. return nil, err
  4783. }
  4784. return out, nil
  4785. }
  4786. func (c *aBCIApplicationClient) InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error) {
  4787. out := new(ResponseInitChain)
  4788. err := c.cc.Invoke(ctx, "/types.ABCIApplication/InitChain", in, out, opts...)
  4789. if err != nil {
  4790. return nil, err
  4791. }
  4792. return out, nil
  4793. }
  4794. func (c *aBCIApplicationClient) BeginBlock(ctx context.Context, in *RequestBeginBlock, opts ...grpc.CallOption) (*ResponseBeginBlock, error) {
  4795. out := new(ResponseBeginBlock)
  4796. err := c.cc.Invoke(ctx, "/types.ABCIApplication/BeginBlock", in, out, opts...)
  4797. if err != nil {
  4798. return nil, err
  4799. }
  4800. return out, nil
  4801. }
  4802. func (c *aBCIApplicationClient) EndBlock(ctx context.Context, in *RequestEndBlock, opts ...grpc.CallOption) (*ResponseEndBlock, error) {
  4803. out := new(ResponseEndBlock)
  4804. err := c.cc.Invoke(ctx, "/types.ABCIApplication/EndBlock", in, out, opts...)
  4805. if err != nil {
  4806. return nil, err
  4807. }
  4808. return out, nil
  4809. }
  4810. // ABCIApplicationServer is the server API for ABCIApplication service.
  4811. type ABCIApplicationServer interface {
  4812. Echo(context.Context, *RequestEcho) (*ResponseEcho, error)
  4813. Flush(context.Context, *RequestFlush) (*ResponseFlush, error)
  4814. Info(context.Context, *RequestInfo) (*ResponseInfo, error)
  4815. SetOption(context.Context, *RequestSetOption) (*ResponseSetOption, error)
  4816. DeliverTx(context.Context, *RequestDeliverTx) (*ResponseDeliverTx, error)
  4817. CheckTx(context.Context, *RequestCheckTx) (*ResponseCheckTx, error)
  4818. Query(context.Context, *RequestQuery) (*ResponseQuery, error)
  4819. Commit(context.Context, *RequestCommit) (*ResponseCommit, error)
  4820. InitChain(context.Context, *RequestInitChain) (*ResponseInitChain, error)
  4821. BeginBlock(context.Context, *RequestBeginBlock) (*ResponseBeginBlock, error)
  4822. EndBlock(context.Context, *RequestEndBlock) (*ResponseEndBlock, error)
  4823. }
  4824. // UnimplementedABCIApplicationServer can be embedded to have forward compatible implementations.
  4825. type UnimplementedABCIApplicationServer struct {
  4826. }
  4827. func (*UnimplementedABCIApplicationServer) Echo(ctx context.Context, req *RequestEcho) (*ResponseEcho, error) {
  4828. return nil, status.Errorf(codes.Unimplemented, "method Echo not implemented")
  4829. }
  4830. func (*UnimplementedABCIApplicationServer) Flush(ctx context.Context, req *RequestFlush) (*ResponseFlush, error) {
  4831. return nil, status.Errorf(codes.Unimplemented, "method Flush not implemented")
  4832. }
  4833. func (*UnimplementedABCIApplicationServer) Info(ctx context.Context, req *RequestInfo) (*ResponseInfo, error) {
  4834. return nil, status.Errorf(codes.Unimplemented, "method Info not implemented")
  4835. }
  4836. func (*UnimplementedABCIApplicationServer) SetOption(ctx context.Context, req *RequestSetOption) (*ResponseSetOption, error) {
  4837. return nil, status.Errorf(codes.Unimplemented, "method SetOption not implemented")
  4838. }
  4839. func (*UnimplementedABCIApplicationServer) DeliverTx(ctx context.Context, req *RequestDeliverTx) (*ResponseDeliverTx, error) {
  4840. return nil, status.Errorf(codes.Unimplemented, "method DeliverTx not implemented")
  4841. }
  4842. func (*UnimplementedABCIApplicationServer) CheckTx(ctx context.Context, req *RequestCheckTx) (*ResponseCheckTx, error) {
  4843. return nil, status.Errorf(codes.Unimplemented, "method CheckTx not implemented")
  4844. }
  4845. func (*UnimplementedABCIApplicationServer) Query(ctx context.Context, req *RequestQuery) (*ResponseQuery, error) {
  4846. return nil, status.Errorf(codes.Unimplemented, "method Query not implemented")
  4847. }
  4848. func (*UnimplementedABCIApplicationServer) Commit(ctx context.Context, req *RequestCommit) (*ResponseCommit, error) {
  4849. return nil, status.Errorf(codes.Unimplemented, "method Commit not implemented")
  4850. }
  4851. func (*UnimplementedABCIApplicationServer) InitChain(ctx context.Context, req *RequestInitChain) (*ResponseInitChain, error) {
  4852. return nil, status.Errorf(codes.Unimplemented, "method InitChain not implemented")
  4853. }
  4854. func (*UnimplementedABCIApplicationServer) BeginBlock(ctx context.Context, req *RequestBeginBlock) (*ResponseBeginBlock, error) {
  4855. return nil, status.Errorf(codes.Unimplemented, "method BeginBlock not implemented")
  4856. }
  4857. func (*UnimplementedABCIApplicationServer) EndBlock(ctx context.Context, req *RequestEndBlock) (*ResponseEndBlock, error) {
  4858. return nil, status.Errorf(codes.Unimplemented, "method EndBlock not implemented")
  4859. }
  4860. func RegisterABCIApplicationServer(s *grpc.Server, srv ABCIApplicationServer) {
  4861. s.RegisterService(&_ABCIApplication_serviceDesc, srv)
  4862. }
  4863. func _ABCIApplication_Echo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4864. in := new(RequestEcho)
  4865. if err := dec(in); err != nil {
  4866. return nil, err
  4867. }
  4868. if interceptor == nil {
  4869. return srv.(ABCIApplicationServer).Echo(ctx, in)
  4870. }
  4871. info := &grpc.UnaryServerInfo{
  4872. Server: srv,
  4873. FullMethod: "/types.ABCIApplication/Echo",
  4874. }
  4875. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4876. return srv.(ABCIApplicationServer).Echo(ctx, req.(*RequestEcho))
  4877. }
  4878. return interceptor(ctx, in, info, handler)
  4879. }
  4880. func _ABCIApplication_Flush_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4881. in := new(RequestFlush)
  4882. if err := dec(in); err != nil {
  4883. return nil, err
  4884. }
  4885. if interceptor == nil {
  4886. return srv.(ABCIApplicationServer).Flush(ctx, in)
  4887. }
  4888. info := &grpc.UnaryServerInfo{
  4889. Server: srv,
  4890. FullMethod: "/types.ABCIApplication/Flush",
  4891. }
  4892. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4893. return srv.(ABCIApplicationServer).Flush(ctx, req.(*RequestFlush))
  4894. }
  4895. return interceptor(ctx, in, info, handler)
  4896. }
  4897. func _ABCIApplication_Info_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4898. in := new(RequestInfo)
  4899. if err := dec(in); err != nil {
  4900. return nil, err
  4901. }
  4902. if interceptor == nil {
  4903. return srv.(ABCIApplicationServer).Info(ctx, in)
  4904. }
  4905. info := &grpc.UnaryServerInfo{
  4906. Server: srv,
  4907. FullMethod: "/types.ABCIApplication/Info",
  4908. }
  4909. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4910. return srv.(ABCIApplicationServer).Info(ctx, req.(*RequestInfo))
  4911. }
  4912. return interceptor(ctx, in, info, handler)
  4913. }
  4914. func _ABCIApplication_SetOption_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4915. in := new(RequestSetOption)
  4916. if err := dec(in); err != nil {
  4917. return nil, err
  4918. }
  4919. if interceptor == nil {
  4920. return srv.(ABCIApplicationServer).SetOption(ctx, in)
  4921. }
  4922. info := &grpc.UnaryServerInfo{
  4923. Server: srv,
  4924. FullMethod: "/types.ABCIApplication/SetOption",
  4925. }
  4926. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4927. return srv.(ABCIApplicationServer).SetOption(ctx, req.(*RequestSetOption))
  4928. }
  4929. return interceptor(ctx, in, info, handler)
  4930. }
  4931. func _ABCIApplication_DeliverTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4932. in := new(RequestDeliverTx)
  4933. if err := dec(in); err != nil {
  4934. return nil, err
  4935. }
  4936. if interceptor == nil {
  4937. return srv.(ABCIApplicationServer).DeliverTx(ctx, in)
  4938. }
  4939. info := &grpc.UnaryServerInfo{
  4940. Server: srv,
  4941. FullMethod: "/types.ABCIApplication/DeliverTx",
  4942. }
  4943. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4944. return srv.(ABCIApplicationServer).DeliverTx(ctx, req.(*RequestDeliverTx))
  4945. }
  4946. return interceptor(ctx, in, info, handler)
  4947. }
  4948. func _ABCIApplication_CheckTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4949. in := new(RequestCheckTx)
  4950. if err := dec(in); err != nil {
  4951. return nil, err
  4952. }
  4953. if interceptor == nil {
  4954. return srv.(ABCIApplicationServer).CheckTx(ctx, in)
  4955. }
  4956. info := &grpc.UnaryServerInfo{
  4957. Server: srv,
  4958. FullMethod: "/types.ABCIApplication/CheckTx",
  4959. }
  4960. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4961. return srv.(ABCIApplicationServer).CheckTx(ctx, req.(*RequestCheckTx))
  4962. }
  4963. return interceptor(ctx, in, info, handler)
  4964. }
  4965. func _ABCIApplication_Query_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4966. in := new(RequestQuery)
  4967. if err := dec(in); err != nil {
  4968. return nil, err
  4969. }
  4970. if interceptor == nil {
  4971. return srv.(ABCIApplicationServer).Query(ctx, in)
  4972. }
  4973. info := &grpc.UnaryServerInfo{
  4974. Server: srv,
  4975. FullMethod: "/types.ABCIApplication/Query",
  4976. }
  4977. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4978. return srv.(ABCIApplicationServer).Query(ctx, req.(*RequestQuery))
  4979. }
  4980. return interceptor(ctx, in, info, handler)
  4981. }
  4982. func _ABCIApplication_Commit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4983. in := new(RequestCommit)
  4984. if err := dec(in); err != nil {
  4985. return nil, err
  4986. }
  4987. if interceptor == nil {
  4988. return srv.(ABCIApplicationServer).Commit(ctx, in)
  4989. }
  4990. info := &grpc.UnaryServerInfo{
  4991. Server: srv,
  4992. FullMethod: "/types.ABCIApplication/Commit",
  4993. }
  4994. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4995. return srv.(ABCIApplicationServer).Commit(ctx, req.(*RequestCommit))
  4996. }
  4997. return interceptor(ctx, in, info, handler)
  4998. }
  4999. func _ABCIApplication_InitChain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5000. in := new(RequestInitChain)
  5001. if err := dec(in); err != nil {
  5002. return nil, err
  5003. }
  5004. if interceptor == nil {
  5005. return srv.(ABCIApplicationServer).InitChain(ctx, in)
  5006. }
  5007. info := &grpc.UnaryServerInfo{
  5008. Server: srv,
  5009. FullMethod: "/types.ABCIApplication/InitChain",
  5010. }
  5011. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5012. return srv.(ABCIApplicationServer).InitChain(ctx, req.(*RequestInitChain))
  5013. }
  5014. return interceptor(ctx, in, info, handler)
  5015. }
  5016. func _ABCIApplication_BeginBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5017. in := new(RequestBeginBlock)
  5018. if err := dec(in); err != nil {
  5019. return nil, err
  5020. }
  5021. if interceptor == nil {
  5022. return srv.(ABCIApplicationServer).BeginBlock(ctx, in)
  5023. }
  5024. info := &grpc.UnaryServerInfo{
  5025. Server: srv,
  5026. FullMethod: "/types.ABCIApplication/BeginBlock",
  5027. }
  5028. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5029. return srv.(ABCIApplicationServer).BeginBlock(ctx, req.(*RequestBeginBlock))
  5030. }
  5031. return interceptor(ctx, in, info, handler)
  5032. }
  5033. func _ABCIApplication_EndBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5034. in := new(RequestEndBlock)
  5035. if err := dec(in); err != nil {
  5036. return nil, err
  5037. }
  5038. if interceptor == nil {
  5039. return srv.(ABCIApplicationServer).EndBlock(ctx, in)
  5040. }
  5041. info := &grpc.UnaryServerInfo{
  5042. Server: srv,
  5043. FullMethod: "/types.ABCIApplication/EndBlock",
  5044. }
  5045. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5046. return srv.(ABCIApplicationServer).EndBlock(ctx, req.(*RequestEndBlock))
  5047. }
  5048. return interceptor(ctx, in, info, handler)
  5049. }
  5050. var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
  5051. ServiceName: "types.ABCIApplication",
  5052. HandlerType: (*ABCIApplicationServer)(nil),
  5053. Methods: []grpc.MethodDesc{
  5054. {
  5055. MethodName: "Echo",
  5056. Handler: _ABCIApplication_Echo_Handler,
  5057. },
  5058. {
  5059. MethodName: "Flush",
  5060. Handler: _ABCIApplication_Flush_Handler,
  5061. },
  5062. {
  5063. MethodName: "Info",
  5064. Handler: _ABCIApplication_Info_Handler,
  5065. },
  5066. {
  5067. MethodName: "SetOption",
  5068. Handler: _ABCIApplication_SetOption_Handler,
  5069. },
  5070. {
  5071. MethodName: "DeliverTx",
  5072. Handler: _ABCIApplication_DeliverTx_Handler,
  5073. },
  5074. {
  5075. MethodName: "CheckTx",
  5076. Handler: _ABCIApplication_CheckTx_Handler,
  5077. },
  5078. {
  5079. MethodName: "Query",
  5080. Handler: _ABCIApplication_Query_Handler,
  5081. },
  5082. {
  5083. MethodName: "Commit",
  5084. Handler: _ABCIApplication_Commit_Handler,
  5085. },
  5086. {
  5087. MethodName: "InitChain",
  5088. Handler: _ABCIApplication_InitChain_Handler,
  5089. },
  5090. {
  5091. MethodName: "BeginBlock",
  5092. Handler: _ABCIApplication_BeginBlock_Handler,
  5093. },
  5094. {
  5095. MethodName: "EndBlock",
  5096. Handler: _ABCIApplication_EndBlock_Handler,
  5097. },
  5098. },
  5099. Streams: []grpc.StreamDesc{},
  5100. Metadata: "abci/types/types.proto",
  5101. }
  5102. func (m *Request) Marshal() (dAtA []byte, err error) {
  5103. size := m.Size()
  5104. dAtA = make([]byte, size)
  5105. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5106. if err != nil {
  5107. return nil, err
  5108. }
  5109. return dAtA[:n], nil
  5110. }
  5111. func (m *Request) MarshalTo(dAtA []byte) (int, error) {
  5112. size := m.Size()
  5113. return m.MarshalToSizedBuffer(dAtA[:size])
  5114. }
  5115. func (m *Request) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5116. i := len(dAtA)
  5117. _ = i
  5118. var l int
  5119. _ = l
  5120. if m.XXX_unrecognized != nil {
  5121. i -= len(m.XXX_unrecognized)
  5122. copy(dAtA[i:], m.XXX_unrecognized)
  5123. }
  5124. if m.Value != nil {
  5125. {
  5126. size := m.Value.Size()
  5127. i -= size
  5128. if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil {
  5129. return 0, err
  5130. }
  5131. }
  5132. }
  5133. return len(dAtA) - i, nil
  5134. }
  5135. func (m *Request_Echo) MarshalTo(dAtA []byte) (int, error) {
  5136. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5137. }
  5138. func (m *Request_Echo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5139. i := len(dAtA)
  5140. if m.Echo != nil {
  5141. {
  5142. size, err := m.Echo.MarshalToSizedBuffer(dAtA[:i])
  5143. if err != nil {
  5144. return 0, err
  5145. }
  5146. i -= size
  5147. i = encodeVarintTypes(dAtA, i, uint64(size))
  5148. }
  5149. i--
  5150. dAtA[i] = 0x12
  5151. }
  5152. return len(dAtA) - i, nil
  5153. }
  5154. func (m *Request_Flush) MarshalTo(dAtA []byte) (int, error) {
  5155. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5156. }
  5157. func (m *Request_Flush) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5158. i := len(dAtA)
  5159. if m.Flush != nil {
  5160. {
  5161. size, err := m.Flush.MarshalToSizedBuffer(dAtA[:i])
  5162. if err != nil {
  5163. return 0, err
  5164. }
  5165. i -= size
  5166. i = encodeVarintTypes(dAtA, i, uint64(size))
  5167. }
  5168. i--
  5169. dAtA[i] = 0x1a
  5170. }
  5171. return len(dAtA) - i, nil
  5172. }
  5173. func (m *Request_Info) MarshalTo(dAtA []byte) (int, error) {
  5174. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5175. }
  5176. func (m *Request_Info) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5177. i := len(dAtA)
  5178. if m.Info != nil {
  5179. {
  5180. size, err := m.Info.MarshalToSizedBuffer(dAtA[:i])
  5181. if err != nil {
  5182. return 0, err
  5183. }
  5184. i -= size
  5185. i = encodeVarintTypes(dAtA, i, uint64(size))
  5186. }
  5187. i--
  5188. dAtA[i] = 0x22
  5189. }
  5190. return len(dAtA) - i, nil
  5191. }
  5192. func (m *Request_SetOption) MarshalTo(dAtA []byte) (int, error) {
  5193. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5194. }
  5195. func (m *Request_SetOption) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5196. i := len(dAtA)
  5197. if m.SetOption != nil {
  5198. {
  5199. size, err := m.SetOption.MarshalToSizedBuffer(dAtA[:i])
  5200. if err != nil {
  5201. return 0, err
  5202. }
  5203. i -= size
  5204. i = encodeVarintTypes(dAtA, i, uint64(size))
  5205. }
  5206. i--
  5207. dAtA[i] = 0x2a
  5208. }
  5209. return len(dAtA) - i, nil
  5210. }
  5211. func (m *Request_InitChain) MarshalTo(dAtA []byte) (int, error) {
  5212. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5213. }
  5214. func (m *Request_InitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5215. i := len(dAtA)
  5216. if m.InitChain != nil {
  5217. {
  5218. size, err := m.InitChain.MarshalToSizedBuffer(dAtA[:i])
  5219. if err != nil {
  5220. return 0, err
  5221. }
  5222. i -= size
  5223. i = encodeVarintTypes(dAtA, i, uint64(size))
  5224. }
  5225. i--
  5226. dAtA[i] = 0x32
  5227. }
  5228. return len(dAtA) - i, nil
  5229. }
  5230. func (m *Request_Query) MarshalTo(dAtA []byte) (int, error) {
  5231. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5232. }
  5233. func (m *Request_Query) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5234. i := len(dAtA)
  5235. if m.Query != nil {
  5236. {
  5237. size, err := m.Query.MarshalToSizedBuffer(dAtA[:i])
  5238. if err != nil {
  5239. return 0, err
  5240. }
  5241. i -= size
  5242. i = encodeVarintTypes(dAtA, i, uint64(size))
  5243. }
  5244. i--
  5245. dAtA[i] = 0x3a
  5246. }
  5247. return len(dAtA) - i, nil
  5248. }
  5249. func (m *Request_BeginBlock) MarshalTo(dAtA []byte) (int, error) {
  5250. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5251. }
  5252. func (m *Request_BeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5253. i := len(dAtA)
  5254. if m.BeginBlock != nil {
  5255. {
  5256. size, err := m.BeginBlock.MarshalToSizedBuffer(dAtA[:i])
  5257. if err != nil {
  5258. return 0, err
  5259. }
  5260. i -= size
  5261. i = encodeVarintTypes(dAtA, i, uint64(size))
  5262. }
  5263. i--
  5264. dAtA[i] = 0x42
  5265. }
  5266. return len(dAtA) - i, nil
  5267. }
  5268. func (m *Request_CheckTx) MarshalTo(dAtA []byte) (int, error) {
  5269. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5270. }
  5271. func (m *Request_CheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5272. i := len(dAtA)
  5273. if m.CheckTx != nil {
  5274. {
  5275. size, err := m.CheckTx.MarshalToSizedBuffer(dAtA[:i])
  5276. if err != nil {
  5277. return 0, err
  5278. }
  5279. i -= size
  5280. i = encodeVarintTypes(dAtA, i, uint64(size))
  5281. }
  5282. i--
  5283. dAtA[i] = 0x4a
  5284. }
  5285. return len(dAtA) - i, nil
  5286. }
  5287. func (m *Request_EndBlock) MarshalTo(dAtA []byte) (int, error) {
  5288. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5289. }
  5290. func (m *Request_EndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5291. i := len(dAtA)
  5292. if m.EndBlock != nil {
  5293. {
  5294. size, err := m.EndBlock.MarshalToSizedBuffer(dAtA[:i])
  5295. if err != nil {
  5296. return 0, err
  5297. }
  5298. i -= size
  5299. i = encodeVarintTypes(dAtA, i, uint64(size))
  5300. }
  5301. i--
  5302. dAtA[i] = 0x5a
  5303. }
  5304. return len(dAtA) - i, nil
  5305. }
  5306. func (m *Request_Commit) MarshalTo(dAtA []byte) (int, error) {
  5307. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5308. }
  5309. func (m *Request_Commit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5310. i := len(dAtA)
  5311. if m.Commit != nil {
  5312. {
  5313. size, err := m.Commit.MarshalToSizedBuffer(dAtA[:i])
  5314. if err != nil {
  5315. return 0, err
  5316. }
  5317. i -= size
  5318. i = encodeVarintTypes(dAtA, i, uint64(size))
  5319. }
  5320. i--
  5321. dAtA[i] = 0x62
  5322. }
  5323. return len(dAtA) - i, nil
  5324. }
  5325. func (m *Request_DeliverTx) MarshalTo(dAtA []byte) (int, error) {
  5326. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5327. }
  5328. func (m *Request_DeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5329. i := len(dAtA)
  5330. if m.DeliverTx != nil {
  5331. {
  5332. size, err := m.DeliverTx.MarshalToSizedBuffer(dAtA[:i])
  5333. if err != nil {
  5334. return 0, err
  5335. }
  5336. i -= size
  5337. i = encodeVarintTypes(dAtA, i, uint64(size))
  5338. }
  5339. i--
  5340. dAtA[i] = 0x1
  5341. i--
  5342. dAtA[i] = 0x9a
  5343. }
  5344. return len(dAtA) - i, nil
  5345. }
  5346. func (m *RequestEcho) Marshal() (dAtA []byte, err error) {
  5347. size := m.Size()
  5348. dAtA = make([]byte, size)
  5349. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5350. if err != nil {
  5351. return nil, err
  5352. }
  5353. return dAtA[:n], nil
  5354. }
  5355. func (m *RequestEcho) MarshalTo(dAtA []byte) (int, error) {
  5356. size := m.Size()
  5357. return m.MarshalToSizedBuffer(dAtA[:size])
  5358. }
  5359. func (m *RequestEcho) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5360. i := len(dAtA)
  5361. _ = i
  5362. var l int
  5363. _ = l
  5364. if m.XXX_unrecognized != nil {
  5365. i -= len(m.XXX_unrecognized)
  5366. copy(dAtA[i:], m.XXX_unrecognized)
  5367. }
  5368. if len(m.Message) > 0 {
  5369. i -= len(m.Message)
  5370. copy(dAtA[i:], m.Message)
  5371. i = encodeVarintTypes(dAtA, i, uint64(len(m.Message)))
  5372. i--
  5373. dAtA[i] = 0xa
  5374. }
  5375. return len(dAtA) - i, nil
  5376. }
  5377. func (m *RequestFlush) Marshal() (dAtA []byte, err error) {
  5378. size := m.Size()
  5379. dAtA = make([]byte, size)
  5380. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5381. if err != nil {
  5382. return nil, err
  5383. }
  5384. return dAtA[:n], nil
  5385. }
  5386. func (m *RequestFlush) MarshalTo(dAtA []byte) (int, error) {
  5387. size := m.Size()
  5388. return m.MarshalToSizedBuffer(dAtA[:size])
  5389. }
  5390. func (m *RequestFlush) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5391. i := len(dAtA)
  5392. _ = i
  5393. var l int
  5394. _ = l
  5395. if m.XXX_unrecognized != nil {
  5396. i -= len(m.XXX_unrecognized)
  5397. copy(dAtA[i:], m.XXX_unrecognized)
  5398. }
  5399. return len(dAtA) - i, nil
  5400. }
  5401. func (m *RequestInfo) Marshal() (dAtA []byte, err error) {
  5402. size := m.Size()
  5403. dAtA = make([]byte, size)
  5404. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5405. if err != nil {
  5406. return nil, err
  5407. }
  5408. return dAtA[:n], nil
  5409. }
  5410. func (m *RequestInfo) MarshalTo(dAtA []byte) (int, error) {
  5411. size := m.Size()
  5412. return m.MarshalToSizedBuffer(dAtA[:size])
  5413. }
  5414. func (m *RequestInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5415. i := len(dAtA)
  5416. _ = i
  5417. var l int
  5418. _ = l
  5419. if m.XXX_unrecognized != nil {
  5420. i -= len(m.XXX_unrecognized)
  5421. copy(dAtA[i:], m.XXX_unrecognized)
  5422. }
  5423. if m.P2PVersion != 0 {
  5424. i = encodeVarintTypes(dAtA, i, uint64(m.P2PVersion))
  5425. i--
  5426. dAtA[i] = 0x18
  5427. }
  5428. if m.BlockVersion != 0 {
  5429. i = encodeVarintTypes(dAtA, i, uint64(m.BlockVersion))
  5430. i--
  5431. dAtA[i] = 0x10
  5432. }
  5433. if len(m.Version) > 0 {
  5434. i -= len(m.Version)
  5435. copy(dAtA[i:], m.Version)
  5436. i = encodeVarintTypes(dAtA, i, uint64(len(m.Version)))
  5437. i--
  5438. dAtA[i] = 0xa
  5439. }
  5440. return len(dAtA) - i, nil
  5441. }
  5442. func (m *RequestSetOption) Marshal() (dAtA []byte, err error) {
  5443. size := m.Size()
  5444. dAtA = make([]byte, size)
  5445. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5446. if err != nil {
  5447. return nil, err
  5448. }
  5449. return dAtA[:n], nil
  5450. }
  5451. func (m *RequestSetOption) MarshalTo(dAtA []byte) (int, error) {
  5452. size := m.Size()
  5453. return m.MarshalToSizedBuffer(dAtA[:size])
  5454. }
  5455. func (m *RequestSetOption) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5456. i := len(dAtA)
  5457. _ = i
  5458. var l int
  5459. _ = l
  5460. if m.XXX_unrecognized != nil {
  5461. i -= len(m.XXX_unrecognized)
  5462. copy(dAtA[i:], m.XXX_unrecognized)
  5463. }
  5464. if len(m.Value) > 0 {
  5465. i -= len(m.Value)
  5466. copy(dAtA[i:], m.Value)
  5467. i = encodeVarintTypes(dAtA, i, uint64(len(m.Value)))
  5468. i--
  5469. dAtA[i] = 0x12
  5470. }
  5471. if len(m.Key) > 0 {
  5472. i -= len(m.Key)
  5473. copy(dAtA[i:], m.Key)
  5474. i = encodeVarintTypes(dAtA, i, uint64(len(m.Key)))
  5475. i--
  5476. dAtA[i] = 0xa
  5477. }
  5478. return len(dAtA) - i, nil
  5479. }
  5480. func (m *RequestInitChain) Marshal() (dAtA []byte, err error) {
  5481. size := m.Size()
  5482. dAtA = make([]byte, size)
  5483. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5484. if err != nil {
  5485. return nil, err
  5486. }
  5487. return dAtA[:n], nil
  5488. }
  5489. func (m *RequestInitChain) MarshalTo(dAtA []byte) (int, error) {
  5490. size := m.Size()
  5491. return m.MarshalToSizedBuffer(dAtA[:size])
  5492. }
  5493. func (m *RequestInitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5494. i := len(dAtA)
  5495. _ = i
  5496. var l int
  5497. _ = l
  5498. if m.XXX_unrecognized != nil {
  5499. i -= len(m.XXX_unrecognized)
  5500. copy(dAtA[i:], m.XXX_unrecognized)
  5501. }
  5502. if len(m.AppStateBytes) > 0 {
  5503. i -= len(m.AppStateBytes)
  5504. copy(dAtA[i:], m.AppStateBytes)
  5505. i = encodeVarintTypes(dAtA, i, uint64(len(m.AppStateBytes)))
  5506. i--
  5507. dAtA[i] = 0x2a
  5508. }
  5509. if len(m.Validators) > 0 {
  5510. for iNdEx := len(m.Validators) - 1; iNdEx >= 0; iNdEx-- {
  5511. {
  5512. size, err := m.Validators[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  5513. if err != nil {
  5514. return 0, err
  5515. }
  5516. i -= size
  5517. i = encodeVarintTypes(dAtA, i, uint64(size))
  5518. }
  5519. i--
  5520. dAtA[i] = 0x22
  5521. }
  5522. }
  5523. if m.ConsensusParams != nil {
  5524. {
  5525. size, err := m.ConsensusParams.MarshalToSizedBuffer(dAtA[:i])
  5526. if err != nil {
  5527. return 0, err
  5528. }
  5529. i -= size
  5530. i = encodeVarintTypes(dAtA, i, uint64(size))
  5531. }
  5532. i--
  5533. dAtA[i] = 0x1a
  5534. }
  5535. if len(m.ChainId) > 0 {
  5536. i -= len(m.ChainId)
  5537. copy(dAtA[i:], m.ChainId)
  5538. i = encodeVarintTypes(dAtA, i, uint64(len(m.ChainId)))
  5539. i--
  5540. dAtA[i] = 0x12
  5541. }
  5542. n13, err13 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
  5543. if err13 != nil {
  5544. return 0, err13
  5545. }
  5546. i -= n13
  5547. i = encodeVarintTypes(dAtA, i, uint64(n13))
  5548. i--
  5549. dAtA[i] = 0xa
  5550. return len(dAtA) - i, nil
  5551. }
  5552. func (m *RequestQuery) Marshal() (dAtA []byte, err error) {
  5553. size := m.Size()
  5554. dAtA = make([]byte, size)
  5555. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5556. if err != nil {
  5557. return nil, err
  5558. }
  5559. return dAtA[:n], nil
  5560. }
  5561. func (m *RequestQuery) MarshalTo(dAtA []byte) (int, error) {
  5562. size := m.Size()
  5563. return m.MarshalToSizedBuffer(dAtA[:size])
  5564. }
  5565. func (m *RequestQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5566. i := len(dAtA)
  5567. _ = i
  5568. var l int
  5569. _ = l
  5570. if m.XXX_unrecognized != nil {
  5571. i -= len(m.XXX_unrecognized)
  5572. copy(dAtA[i:], m.XXX_unrecognized)
  5573. }
  5574. if m.Prove {
  5575. i--
  5576. if m.Prove {
  5577. dAtA[i] = 1
  5578. } else {
  5579. dAtA[i] = 0
  5580. }
  5581. i--
  5582. dAtA[i] = 0x20
  5583. }
  5584. if m.Height != 0 {
  5585. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  5586. i--
  5587. dAtA[i] = 0x18
  5588. }
  5589. if len(m.Path) > 0 {
  5590. i -= len(m.Path)
  5591. copy(dAtA[i:], m.Path)
  5592. i = encodeVarintTypes(dAtA, i, uint64(len(m.Path)))
  5593. i--
  5594. dAtA[i] = 0x12
  5595. }
  5596. if len(m.Data) > 0 {
  5597. i -= len(m.Data)
  5598. copy(dAtA[i:], m.Data)
  5599. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  5600. i--
  5601. dAtA[i] = 0xa
  5602. }
  5603. return len(dAtA) - i, nil
  5604. }
  5605. func (m *RequestBeginBlock) Marshal() (dAtA []byte, err error) {
  5606. size := m.Size()
  5607. dAtA = make([]byte, size)
  5608. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5609. if err != nil {
  5610. return nil, err
  5611. }
  5612. return dAtA[:n], nil
  5613. }
  5614. func (m *RequestBeginBlock) MarshalTo(dAtA []byte) (int, error) {
  5615. size := m.Size()
  5616. return m.MarshalToSizedBuffer(dAtA[:size])
  5617. }
  5618. func (m *RequestBeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5619. i := len(dAtA)
  5620. _ = i
  5621. var l int
  5622. _ = l
  5623. if m.XXX_unrecognized != nil {
  5624. i -= len(m.XXX_unrecognized)
  5625. copy(dAtA[i:], m.XXX_unrecognized)
  5626. }
  5627. if len(m.ByzantineValidators) > 0 {
  5628. for iNdEx := len(m.ByzantineValidators) - 1; iNdEx >= 0; iNdEx-- {
  5629. {
  5630. size, err := m.ByzantineValidators[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  5631. if err != nil {
  5632. return 0, err
  5633. }
  5634. i -= size
  5635. i = encodeVarintTypes(dAtA, i, uint64(size))
  5636. }
  5637. i--
  5638. dAtA[i] = 0x22
  5639. }
  5640. }
  5641. {
  5642. size, err := m.LastCommitInfo.MarshalToSizedBuffer(dAtA[:i])
  5643. if err != nil {
  5644. return 0, err
  5645. }
  5646. i -= size
  5647. i = encodeVarintTypes(dAtA, i, uint64(size))
  5648. }
  5649. i--
  5650. dAtA[i] = 0x1a
  5651. {
  5652. size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
  5653. if err != nil {
  5654. return 0, err
  5655. }
  5656. i -= size
  5657. i = encodeVarintTypes(dAtA, i, uint64(size))
  5658. }
  5659. i--
  5660. dAtA[i] = 0x12
  5661. if len(m.Hash) > 0 {
  5662. i -= len(m.Hash)
  5663. copy(dAtA[i:], m.Hash)
  5664. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  5665. i--
  5666. dAtA[i] = 0xa
  5667. }
  5668. return len(dAtA) - i, nil
  5669. }
  5670. func (m *RequestCheckTx) Marshal() (dAtA []byte, err error) {
  5671. size := m.Size()
  5672. dAtA = make([]byte, size)
  5673. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5674. if err != nil {
  5675. return nil, err
  5676. }
  5677. return dAtA[:n], nil
  5678. }
  5679. func (m *RequestCheckTx) MarshalTo(dAtA []byte) (int, error) {
  5680. size := m.Size()
  5681. return m.MarshalToSizedBuffer(dAtA[:size])
  5682. }
  5683. func (m *RequestCheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5684. i := len(dAtA)
  5685. _ = i
  5686. var l int
  5687. _ = l
  5688. if m.XXX_unrecognized != nil {
  5689. i -= len(m.XXX_unrecognized)
  5690. copy(dAtA[i:], m.XXX_unrecognized)
  5691. }
  5692. if m.Type != 0 {
  5693. i = encodeVarintTypes(dAtA, i, uint64(m.Type))
  5694. i--
  5695. dAtA[i] = 0x10
  5696. }
  5697. if len(m.Tx) > 0 {
  5698. i -= len(m.Tx)
  5699. copy(dAtA[i:], m.Tx)
  5700. i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx)))
  5701. i--
  5702. dAtA[i] = 0xa
  5703. }
  5704. return len(dAtA) - i, nil
  5705. }
  5706. func (m *RequestDeliverTx) Marshal() (dAtA []byte, err error) {
  5707. size := m.Size()
  5708. dAtA = make([]byte, size)
  5709. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5710. if err != nil {
  5711. return nil, err
  5712. }
  5713. return dAtA[:n], nil
  5714. }
  5715. func (m *RequestDeliverTx) MarshalTo(dAtA []byte) (int, error) {
  5716. size := m.Size()
  5717. return m.MarshalToSizedBuffer(dAtA[:size])
  5718. }
  5719. func (m *RequestDeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5720. i := len(dAtA)
  5721. _ = i
  5722. var l int
  5723. _ = l
  5724. if m.XXX_unrecognized != nil {
  5725. i -= len(m.XXX_unrecognized)
  5726. copy(dAtA[i:], m.XXX_unrecognized)
  5727. }
  5728. if len(m.Tx) > 0 {
  5729. i -= len(m.Tx)
  5730. copy(dAtA[i:], m.Tx)
  5731. i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx)))
  5732. i--
  5733. dAtA[i] = 0xa
  5734. }
  5735. return len(dAtA) - i, nil
  5736. }
  5737. func (m *RequestEndBlock) Marshal() (dAtA []byte, err error) {
  5738. size := m.Size()
  5739. dAtA = make([]byte, size)
  5740. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5741. if err != nil {
  5742. return nil, err
  5743. }
  5744. return dAtA[:n], nil
  5745. }
  5746. func (m *RequestEndBlock) MarshalTo(dAtA []byte) (int, error) {
  5747. size := m.Size()
  5748. return m.MarshalToSizedBuffer(dAtA[:size])
  5749. }
  5750. func (m *RequestEndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5751. i := len(dAtA)
  5752. _ = i
  5753. var l int
  5754. _ = l
  5755. if m.XXX_unrecognized != nil {
  5756. i -= len(m.XXX_unrecognized)
  5757. copy(dAtA[i:], m.XXX_unrecognized)
  5758. }
  5759. if m.Height != 0 {
  5760. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  5761. i--
  5762. dAtA[i] = 0x8
  5763. }
  5764. return len(dAtA) - i, nil
  5765. }
  5766. func (m *RequestCommit) Marshal() (dAtA []byte, err error) {
  5767. size := m.Size()
  5768. dAtA = make([]byte, size)
  5769. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5770. if err != nil {
  5771. return nil, err
  5772. }
  5773. return dAtA[:n], nil
  5774. }
  5775. func (m *RequestCommit) MarshalTo(dAtA []byte) (int, error) {
  5776. size := m.Size()
  5777. return m.MarshalToSizedBuffer(dAtA[:size])
  5778. }
  5779. func (m *RequestCommit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5780. i := len(dAtA)
  5781. _ = i
  5782. var l int
  5783. _ = l
  5784. if m.XXX_unrecognized != nil {
  5785. i -= len(m.XXX_unrecognized)
  5786. copy(dAtA[i:], m.XXX_unrecognized)
  5787. }
  5788. return len(dAtA) - i, nil
  5789. }
  5790. func (m *Response) Marshal() (dAtA []byte, err error) {
  5791. size := m.Size()
  5792. dAtA = make([]byte, size)
  5793. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5794. if err != nil {
  5795. return nil, err
  5796. }
  5797. return dAtA[:n], nil
  5798. }
  5799. func (m *Response) MarshalTo(dAtA []byte) (int, error) {
  5800. size := m.Size()
  5801. return m.MarshalToSizedBuffer(dAtA[:size])
  5802. }
  5803. func (m *Response) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5804. i := len(dAtA)
  5805. _ = i
  5806. var l int
  5807. _ = l
  5808. if m.XXX_unrecognized != nil {
  5809. i -= len(m.XXX_unrecognized)
  5810. copy(dAtA[i:], m.XXX_unrecognized)
  5811. }
  5812. if m.Value != nil {
  5813. {
  5814. size := m.Value.Size()
  5815. i -= size
  5816. if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil {
  5817. return 0, err
  5818. }
  5819. }
  5820. }
  5821. return len(dAtA) - i, nil
  5822. }
  5823. func (m *Response_Exception) MarshalTo(dAtA []byte) (int, error) {
  5824. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5825. }
  5826. func (m *Response_Exception) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5827. i := len(dAtA)
  5828. if m.Exception != nil {
  5829. {
  5830. size, err := m.Exception.MarshalToSizedBuffer(dAtA[:i])
  5831. if err != nil {
  5832. return 0, err
  5833. }
  5834. i -= size
  5835. i = encodeVarintTypes(dAtA, i, uint64(size))
  5836. }
  5837. i--
  5838. dAtA[i] = 0xa
  5839. }
  5840. return len(dAtA) - i, nil
  5841. }
  5842. func (m *Response_Echo) MarshalTo(dAtA []byte) (int, error) {
  5843. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5844. }
  5845. func (m *Response_Echo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5846. i := len(dAtA)
  5847. if m.Echo != nil {
  5848. {
  5849. size, err := m.Echo.MarshalToSizedBuffer(dAtA[:i])
  5850. if err != nil {
  5851. return 0, err
  5852. }
  5853. i -= size
  5854. i = encodeVarintTypes(dAtA, i, uint64(size))
  5855. }
  5856. i--
  5857. dAtA[i] = 0x12
  5858. }
  5859. return len(dAtA) - i, nil
  5860. }
  5861. func (m *Response_Flush) MarshalTo(dAtA []byte) (int, error) {
  5862. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5863. }
  5864. func (m *Response_Flush) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5865. i := len(dAtA)
  5866. if m.Flush != nil {
  5867. {
  5868. size, err := m.Flush.MarshalToSizedBuffer(dAtA[:i])
  5869. if err != nil {
  5870. return 0, err
  5871. }
  5872. i -= size
  5873. i = encodeVarintTypes(dAtA, i, uint64(size))
  5874. }
  5875. i--
  5876. dAtA[i] = 0x1a
  5877. }
  5878. return len(dAtA) - i, nil
  5879. }
  5880. func (m *Response_Info) MarshalTo(dAtA []byte) (int, error) {
  5881. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5882. }
  5883. func (m *Response_Info) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5884. i := len(dAtA)
  5885. if m.Info != nil {
  5886. {
  5887. size, err := m.Info.MarshalToSizedBuffer(dAtA[:i])
  5888. if err != nil {
  5889. return 0, err
  5890. }
  5891. i -= size
  5892. i = encodeVarintTypes(dAtA, i, uint64(size))
  5893. }
  5894. i--
  5895. dAtA[i] = 0x22
  5896. }
  5897. return len(dAtA) - i, nil
  5898. }
  5899. func (m *Response_SetOption) MarshalTo(dAtA []byte) (int, error) {
  5900. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5901. }
  5902. func (m *Response_SetOption) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5903. i := len(dAtA)
  5904. if m.SetOption != nil {
  5905. {
  5906. size, err := m.SetOption.MarshalToSizedBuffer(dAtA[:i])
  5907. if err != nil {
  5908. return 0, err
  5909. }
  5910. i -= size
  5911. i = encodeVarintTypes(dAtA, i, uint64(size))
  5912. }
  5913. i--
  5914. dAtA[i] = 0x2a
  5915. }
  5916. return len(dAtA) - i, nil
  5917. }
  5918. func (m *Response_InitChain) MarshalTo(dAtA []byte) (int, error) {
  5919. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5920. }
  5921. func (m *Response_InitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5922. i := len(dAtA)
  5923. if m.InitChain != nil {
  5924. {
  5925. size, err := m.InitChain.MarshalToSizedBuffer(dAtA[:i])
  5926. if err != nil {
  5927. return 0, err
  5928. }
  5929. i -= size
  5930. i = encodeVarintTypes(dAtA, i, uint64(size))
  5931. }
  5932. i--
  5933. dAtA[i] = 0x32
  5934. }
  5935. return len(dAtA) - i, nil
  5936. }
  5937. func (m *Response_Query) MarshalTo(dAtA []byte) (int, error) {
  5938. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5939. }
  5940. func (m *Response_Query) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5941. i := len(dAtA)
  5942. if m.Query != nil {
  5943. {
  5944. size, err := m.Query.MarshalToSizedBuffer(dAtA[:i])
  5945. if err != nil {
  5946. return 0, err
  5947. }
  5948. i -= size
  5949. i = encodeVarintTypes(dAtA, i, uint64(size))
  5950. }
  5951. i--
  5952. dAtA[i] = 0x3a
  5953. }
  5954. return len(dAtA) - i, nil
  5955. }
  5956. func (m *Response_BeginBlock) MarshalTo(dAtA []byte) (int, error) {
  5957. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5958. }
  5959. func (m *Response_BeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5960. i := len(dAtA)
  5961. if m.BeginBlock != nil {
  5962. {
  5963. size, err := m.BeginBlock.MarshalToSizedBuffer(dAtA[:i])
  5964. if err != nil {
  5965. return 0, err
  5966. }
  5967. i -= size
  5968. i = encodeVarintTypes(dAtA, i, uint64(size))
  5969. }
  5970. i--
  5971. dAtA[i] = 0x42
  5972. }
  5973. return len(dAtA) - i, nil
  5974. }
  5975. func (m *Response_CheckTx) MarshalTo(dAtA []byte) (int, error) {
  5976. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5977. }
  5978. func (m *Response_CheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5979. i := len(dAtA)
  5980. if m.CheckTx != nil {
  5981. {
  5982. size, err := m.CheckTx.MarshalToSizedBuffer(dAtA[:i])
  5983. if err != nil {
  5984. return 0, err
  5985. }
  5986. i -= size
  5987. i = encodeVarintTypes(dAtA, i, uint64(size))
  5988. }
  5989. i--
  5990. dAtA[i] = 0x4a
  5991. }
  5992. return len(dAtA) - i, nil
  5993. }
  5994. func (m *Response_DeliverTx) MarshalTo(dAtA []byte) (int, error) {
  5995. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  5996. }
  5997. func (m *Response_DeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5998. i := len(dAtA)
  5999. if m.DeliverTx != nil {
  6000. {
  6001. size, err := m.DeliverTx.MarshalToSizedBuffer(dAtA[:i])
  6002. if err != nil {
  6003. return 0, err
  6004. }
  6005. i -= size
  6006. i = encodeVarintTypes(dAtA, i, uint64(size))
  6007. }
  6008. i--
  6009. dAtA[i] = 0x52
  6010. }
  6011. return len(dAtA) - i, nil
  6012. }
  6013. func (m *Response_EndBlock) MarshalTo(dAtA []byte) (int, error) {
  6014. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  6015. }
  6016. func (m *Response_EndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6017. i := len(dAtA)
  6018. if m.EndBlock != nil {
  6019. {
  6020. size, err := m.EndBlock.MarshalToSizedBuffer(dAtA[:i])
  6021. if err != nil {
  6022. return 0, err
  6023. }
  6024. i -= size
  6025. i = encodeVarintTypes(dAtA, i, uint64(size))
  6026. }
  6027. i--
  6028. dAtA[i] = 0x5a
  6029. }
  6030. return len(dAtA) - i, nil
  6031. }
  6032. func (m *Response_Commit) MarshalTo(dAtA []byte) (int, error) {
  6033. return m.MarshalToSizedBuffer(dAtA[:m.Size()])
  6034. }
  6035. func (m *Response_Commit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6036. i := len(dAtA)
  6037. if m.Commit != nil {
  6038. {
  6039. size, err := m.Commit.MarshalToSizedBuffer(dAtA[:i])
  6040. if err != nil {
  6041. return 0, err
  6042. }
  6043. i -= size
  6044. i = encodeVarintTypes(dAtA, i, uint64(size))
  6045. }
  6046. i--
  6047. dAtA[i] = 0x62
  6048. }
  6049. return len(dAtA) - i, nil
  6050. }
  6051. func (m *ResponseException) Marshal() (dAtA []byte, err error) {
  6052. size := m.Size()
  6053. dAtA = make([]byte, size)
  6054. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6055. if err != nil {
  6056. return nil, err
  6057. }
  6058. return dAtA[:n], nil
  6059. }
  6060. func (m *ResponseException) MarshalTo(dAtA []byte) (int, error) {
  6061. size := m.Size()
  6062. return m.MarshalToSizedBuffer(dAtA[:size])
  6063. }
  6064. func (m *ResponseException) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6065. i := len(dAtA)
  6066. _ = i
  6067. var l int
  6068. _ = l
  6069. if m.XXX_unrecognized != nil {
  6070. i -= len(m.XXX_unrecognized)
  6071. copy(dAtA[i:], m.XXX_unrecognized)
  6072. }
  6073. if len(m.Error) > 0 {
  6074. i -= len(m.Error)
  6075. copy(dAtA[i:], m.Error)
  6076. i = encodeVarintTypes(dAtA, i, uint64(len(m.Error)))
  6077. i--
  6078. dAtA[i] = 0xa
  6079. }
  6080. return len(dAtA) - i, nil
  6081. }
  6082. func (m *ResponseEcho) Marshal() (dAtA []byte, err error) {
  6083. size := m.Size()
  6084. dAtA = make([]byte, size)
  6085. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6086. if err != nil {
  6087. return nil, err
  6088. }
  6089. return dAtA[:n], nil
  6090. }
  6091. func (m *ResponseEcho) MarshalTo(dAtA []byte) (int, error) {
  6092. size := m.Size()
  6093. return m.MarshalToSizedBuffer(dAtA[:size])
  6094. }
  6095. func (m *ResponseEcho) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6096. i := len(dAtA)
  6097. _ = i
  6098. var l int
  6099. _ = l
  6100. if m.XXX_unrecognized != nil {
  6101. i -= len(m.XXX_unrecognized)
  6102. copy(dAtA[i:], m.XXX_unrecognized)
  6103. }
  6104. if len(m.Message) > 0 {
  6105. i -= len(m.Message)
  6106. copy(dAtA[i:], m.Message)
  6107. i = encodeVarintTypes(dAtA, i, uint64(len(m.Message)))
  6108. i--
  6109. dAtA[i] = 0xa
  6110. }
  6111. return len(dAtA) - i, nil
  6112. }
  6113. func (m *ResponseFlush) Marshal() (dAtA []byte, err error) {
  6114. size := m.Size()
  6115. dAtA = make([]byte, size)
  6116. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6117. if err != nil {
  6118. return nil, err
  6119. }
  6120. return dAtA[:n], nil
  6121. }
  6122. func (m *ResponseFlush) MarshalTo(dAtA []byte) (int, error) {
  6123. size := m.Size()
  6124. return m.MarshalToSizedBuffer(dAtA[:size])
  6125. }
  6126. func (m *ResponseFlush) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6127. i := len(dAtA)
  6128. _ = i
  6129. var l int
  6130. _ = l
  6131. if m.XXX_unrecognized != nil {
  6132. i -= len(m.XXX_unrecognized)
  6133. copy(dAtA[i:], m.XXX_unrecognized)
  6134. }
  6135. return len(dAtA) - i, nil
  6136. }
  6137. func (m *ResponseInfo) Marshal() (dAtA []byte, err error) {
  6138. size := m.Size()
  6139. dAtA = make([]byte, size)
  6140. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6141. if err != nil {
  6142. return nil, err
  6143. }
  6144. return dAtA[:n], nil
  6145. }
  6146. func (m *ResponseInfo) MarshalTo(dAtA []byte) (int, error) {
  6147. size := m.Size()
  6148. return m.MarshalToSizedBuffer(dAtA[:size])
  6149. }
  6150. func (m *ResponseInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6151. i := len(dAtA)
  6152. _ = i
  6153. var l int
  6154. _ = l
  6155. if m.XXX_unrecognized != nil {
  6156. i -= len(m.XXX_unrecognized)
  6157. copy(dAtA[i:], m.XXX_unrecognized)
  6158. }
  6159. if len(m.LastBlockAppHash) > 0 {
  6160. i -= len(m.LastBlockAppHash)
  6161. copy(dAtA[i:], m.LastBlockAppHash)
  6162. i = encodeVarintTypes(dAtA, i, uint64(len(m.LastBlockAppHash)))
  6163. i--
  6164. dAtA[i] = 0x2a
  6165. }
  6166. if m.LastBlockHeight != 0 {
  6167. i = encodeVarintTypes(dAtA, i, uint64(m.LastBlockHeight))
  6168. i--
  6169. dAtA[i] = 0x20
  6170. }
  6171. if m.AppVersion != 0 {
  6172. i = encodeVarintTypes(dAtA, i, uint64(m.AppVersion))
  6173. i--
  6174. dAtA[i] = 0x18
  6175. }
  6176. if len(m.Version) > 0 {
  6177. i -= len(m.Version)
  6178. copy(dAtA[i:], m.Version)
  6179. i = encodeVarintTypes(dAtA, i, uint64(len(m.Version)))
  6180. i--
  6181. dAtA[i] = 0x12
  6182. }
  6183. if len(m.Data) > 0 {
  6184. i -= len(m.Data)
  6185. copy(dAtA[i:], m.Data)
  6186. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6187. i--
  6188. dAtA[i] = 0xa
  6189. }
  6190. return len(dAtA) - i, nil
  6191. }
  6192. func (m *ResponseSetOption) Marshal() (dAtA []byte, err error) {
  6193. size := m.Size()
  6194. dAtA = make([]byte, size)
  6195. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6196. if err != nil {
  6197. return nil, err
  6198. }
  6199. return dAtA[:n], nil
  6200. }
  6201. func (m *ResponseSetOption) MarshalTo(dAtA []byte) (int, error) {
  6202. size := m.Size()
  6203. return m.MarshalToSizedBuffer(dAtA[:size])
  6204. }
  6205. func (m *ResponseSetOption) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6206. i := len(dAtA)
  6207. _ = i
  6208. var l int
  6209. _ = l
  6210. if m.XXX_unrecognized != nil {
  6211. i -= len(m.XXX_unrecognized)
  6212. copy(dAtA[i:], m.XXX_unrecognized)
  6213. }
  6214. if len(m.Info) > 0 {
  6215. i -= len(m.Info)
  6216. copy(dAtA[i:], m.Info)
  6217. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6218. i--
  6219. dAtA[i] = 0x22
  6220. }
  6221. if len(m.Log) > 0 {
  6222. i -= len(m.Log)
  6223. copy(dAtA[i:], m.Log)
  6224. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6225. i--
  6226. dAtA[i] = 0x1a
  6227. }
  6228. if m.Code != 0 {
  6229. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6230. i--
  6231. dAtA[i] = 0x8
  6232. }
  6233. return len(dAtA) - i, nil
  6234. }
  6235. func (m *ResponseInitChain) Marshal() (dAtA []byte, err error) {
  6236. size := m.Size()
  6237. dAtA = make([]byte, size)
  6238. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6239. if err != nil {
  6240. return nil, err
  6241. }
  6242. return dAtA[:n], nil
  6243. }
  6244. func (m *ResponseInitChain) MarshalTo(dAtA []byte) (int, error) {
  6245. size := m.Size()
  6246. return m.MarshalToSizedBuffer(dAtA[:size])
  6247. }
  6248. func (m *ResponseInitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6249. i := len(dAtA)
  6250. _ = i
  6251. var l int
  6252. _ = l
  6253. if m.XXX_unrecognized != nil {
  6254. i -= len(m.XXX_unrecognized)
  6255. copy(dAtA[i:], m.XXX_unrecognized)
  6256. }
  6257. if len(m.Validators) > 0 {
  6258. for iNdEx := len(m.Validators) - 1; iNdEx >= 0; iNdEx-- {
  6259. {
  6260. size, err := m.Validators[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6261. if err != nil {
  6262. return 0, err
  6263. }
  6264. i -= size
  6265. i = encodeVarintTypes(dAtA, i, uint64(size))
  6266. }
  6267. i--
  6268. dAtA[i] = 0x12
  6269. }
  6270. }
  6271. if m.ConsensusParams != nil {
  6272. {
  6273. size, err := m.ConsensusParams.MarshalToSizedBuffer(dAtA[:i])
  6274. if err != nil {
  6275. return 0, err
  6276. }
  6277. i -= size
  6278. i = encodeVarintTypes(dAtA, i, uint64(size))
  6279. }
  6280. i--
  6281. dAtA[i] = 0xa
  6282. }
  6283. return len(dAtA) - i, nil
  6284. }
  6285. func (m *ResponseQuery) Marshal() (dAtA []byte, err error) {
  6286. size := m.Size()
  6287. dAtA = make([]byte, size)
  6288. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6289. if err != nil {
  6290. return nil, err
  6291. }
  6292. return dAtA[:n], nil
  6293. }
  6294. func (m *ResponseQuery) MarshalTo(dAtA []byte) (int, error) {
  6295. size := m.Size()
  6296. return m.MarshalToSizedBuffer(dAtA[:size])
  6297. }
  6298. func (m *ResponseQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6299. i := len(dAtA)
  6300. _ = i
  6301. var l int
  6302. _ = l
  6303. if m.XXX_unrecognized != nil {
  6304. i -= len(m.XXX_unrecognized)
  6305. copy(dAtA[i:], m.XXX_unrecognized)
  6306. }
  6307. if len(m.Codespace) > 0 {
  6308. i -= len(m.Codespace)
  6309. copy(dAtA[i:], m.Codespace)
  6310. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6311. i--
  6312. dAtA[i] = 0x52
  6313. }
  6314. if m.Height != 0 {
  6315. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  6316. i--
  6317. dAtA[i] = 0x48
  6318. }
  6319. if m.Proof != nil {
  6320. {
  6321. size, err := m.Proof.MarshalToSizedBuffer(dAtA[:i])
  6322. if err != nil {
  6323. return 0, err
  6324. }
  6325. i -= size
  6326. i = encodeVarintTypes(dAtA, i, uint64(size))
  6327. }
  6328. i--
  6329. dAtA[i] = 0x42
  6330. }
  6331. if len(m.Value) > 0 {
  6332. i -= len(m.Value)
  6333. copy(dAtA[i:], m.Value)
  6334. i = encodeVarintTypes(dAtA, i, uint64(len(m.Value)))
  6335. i--
  6336. dAtA[i] = 0x3a
  6337. }
  6338. if len(m.Key) > 0 {
  6339. i -= len(m.Key)
  6340. copy(dAtA[i:], m.Key)
  6341. i = encodeVarintTypes(dAtA, i, uint64(len(m.Key)))
  6342. i--
  6343. dAtA[i] = 0x32
  6344. }
  6345. if m.Index != 0 {
  6346. i = encodeVarintTypes(dAtA, i, uint64(m.Index))
  6347. i--
  6348. dAtA[i] = 0x28
  6349. }
  6350. if len(m.Info) > 0 {
  6351. i -= len(m.Info)
  6352. copy(dAtA[i:], m.Info)
  6353. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6354. i--
  6355. dAtA[i] = 0x22
  6356. }
  6357. if len(m.Log) > 0 {
  6358. i -= len(m.Log)
  6359. copy(dAtA[i:], m.Log)
  6360. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6361. i--
  6362. dAtA[i] = 0x1a
  6363. }
  6364. if m.Code != 0 {
  6365. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6366. i--
  6367. dAtA[i] = 0x8
  6368. }
  6369. return len(dAtA) - i, nil
  6370. }
  6371. func (m *ResponseBeginBlock) Marshal() (dAtA []byte, err error) {
  6372. size := m.Size()
  6373. dAtA = make([]byte, size)
  6374. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6375. if err != nil {
  6376. return nil, err
  6377. }
  6378. return dAtA[:n], nil
  6379. }
  6380. func (m *ResponseBeginBlock) MarshalTo(dAtA []byte) (int, error) {
  6381. size := m.Size()
  6382. return m.MarshalToSizedBuffer(dAtA[:size])
  6383. }
  6384. func (m *ResponseBeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6385. i := len(dAtA)
  6386. _ = i
  6387. var l int
  6388. _ = l
  6389. if m.XXX_unrecognized != nil {
  6390. i -= len(m.XXX_unrecognized)
  6391. copy(dAtA[i:], m.XXX_unrecognized)
  6392. }
  6393. if len(m.Events) > 0 {
  6394. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6395. {
  6396. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6397. if err != nil {
  6398. return 0, err
  6399. }
  6400. i -= size
  6401. i = encodeVarintTypes(dAtA, i, uint64(size))
  6402. }
  6403. i--
  6404. dAtA[i] = 0xa
  6405. }
  6406. }
  6407. return len(dAtA) - i, nil
  6408. }
  6409. func (m *ResponseCheckTx) Marshal() (dAtA []byte, err error) {
  6410. size := m.Size()
  6411. dAtA = make([]byte, size)
  6412. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6413. if err != nil {
  6414. return nil, err
  6415. }
  6416. return dAtA[:n], nil
  6417. }
  6418. func (m *ResponseCheckTx) MarshalTo(dAtA []byte) (int, error) {
  6419. size := m.Size()
  6420. return m.MarshalToSizedBuffer(dAtA[:size])
  6421. }
  6422. func (m *ResponseCheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6423. i := len(dAtA)
  6424. _ = i
  6425. var l int
  6426. _ = l
  6427. if m.XXX_unrecognized != nil {
  6428. i -= len(m.XXX_unrecognized)
  6429. copy(dAtA[i:], m.XXX_unrecognized)
  6430. }
  6431. if len(m.Codespace) > 0 {
  6432. i -= len(m.Codespace)
  6433. copy(dAtA[i:], m.Codespace)
  6434. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6435. i--
  6436. dAtA[i] = 0x42
  6437. }
  6438. if len(m.Events) > 0 {
  6439. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6440. {
  6441. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6442. if err != nil {
  6443. return 0, err
  6444. }
  6445. i -= size
  6446. i = encodeVarintTypes(dAtA, i, uint64(size))
  6447. }
  6448. i--
  6449. dAtA[i] = 0x3a
  6450. }
  6451. }
  6452. if m.GasUsed != 0 {
  6453. i = encodeVarintTypes(dAtA, i, uint64(m.GasUsed))
  6454. i--
  6455. dAtA[i] = 0x30
  6456. }
  6457. if m.GasWanted != 0 {
  6458. i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted))
  6459. i--
  6460. dAtA[i] = 0x28
  6461. }
  6462. if len(m.Info) > 0 {
  6463. i -= len(m.Info)
  6464. copy(dAtA[i:], m.Info)
  6465. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6466. i--
  6467. dAtA[i] = 0x22
  6468. }
  6469. if len(m.Log) > 0 {
  6470. i -= len(m.Log)
  6471. copy(dAtA[i:], m.Log)
  6472. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6473. i--
  6474. dAtA[i] = 0x1a
  6475. }
  6476. if len(m.Data) > 0 {
  6477. i -= len(m.Data)
  6478. copy(dAtA[i:], m.Data)
  6479. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6480. i--
  6481. dAtA[i] = 0x12
  6482. }
  6483. if m.Code != 0 {
  6484. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6485. i--
  6486. dAtA[i] = 0x8
  6487. }
  6488. return len(dAtA) - i, nil
  6489. }
  6490. func (m *ResponseDeliverTx) Marshal() (dAtA []byte, err error) {
  6491. size := m.Size()
  6492. dAtA = make([]byte, size)
  6493. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6494. if err != nil {
  6495. return nil, err
  6496. }
  6497. return dAtA[:n], nil
  6498. }
  6499. func (m *ResponseDeliverTx) MarshalTo(dAtA []byte) (int, error) {
  6500. size := m.Size()
  6501. return m.MarshalToSizedBuffer(dAtA[:size])
  6502. }
  6503. func (m *ResponseDeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6504. i := len(dAtA)
  6505. _ = i
  6506. var l int
  6507. _ = l
  6508. if m.XXX_unrecognized != nil {
  6509. i -= len(m.XXX_unrecognized)
  6510. copy(dAtA[i:], m.XXX_unrecognized)
  6511. }
  6512. if len(m.Codespace) > 0 {
  6513. i -= len(m.Codespace)
  6514. copy(dAtA[i:], m.Codespace)
  6515. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6516. i--
  6517. dAtA[i] = 0x42
  6518. }
  6519. if len(m.Events) > 0 {
  6520. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6521. {
  6522. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6523. if err != nil {
  6524. return 0, err
  6525. }
  6526. i -= size
  6527. i = encodeVarintTypes(dAtA, i, uint64(size))
  6528. }
  6529. i--
  6530. dAtA[i] = 0x3a
  6531. }
  6532. }
  6533. if m.GasUsed != 0 {
  6534. i = encodeVarintTypes(dAtA, i, uint64(m.GasUsed))
  6535. i--
  6536. dAtA[i] = 0x30
  6537. }
  6538. if m.GasWanted != 0 {
  6539. i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted))
  6540. i--
  6541. dAtA[i] = 0x28
  6542. }
  6543. if len(m.Info) > 0 {
  6544. i -= len(m.Info)
  6545. copy(dAtA[i:], m.Info)
  6546. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6547. i--
  6548. dAtA[i] = 0x22
  6549. }
  6550. if len(m.Log) > 0 {
  6551. i -= len(m.Log)
  6552. copy(dAtA[i:], m.Log)
  6553. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6554. i--
  6555. dAtA[i] = 0x1a
  6556. }
  6557. if len(m.Data) > 0 {
  6558. i -= len(m.Data)
  6559. copy(dAtA[i:], m.Data)
  6560. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6561. i--
  6562. dAtA[i] = 0x12
  6563. }
  6564. if m.Code != 0 {
  6565. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6566. i--
  6567. dAtA[i] = 0x8
  6568. }
  6569. return len(dAtA) - i, nil
  6570. }
  6571. func (m *ResponseEndBlock) Marshal() (dAtA []byte, err error) {
  6572. size := m.Size()
  6573. dAtA = make([]byte, size)
  6574. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6575. if err != nil {
  6576. return nil, err
  6577. }
  6578. return dAtA[:n], nil
  6579. }
  6580. func (m *ResponseEndBlock) MarshalTo(dAtA []byte) (int, error) {
  6581. size := m.Size()
  6582. return m.MarshalToSizedBuffer(dAtA[:size])
  6583. }
  6584. func (m *ResponseEndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6585. i := len(dAtA)
  6586. _ = i
  6587. var l int
  6588. _ = l
  6589. if m.XXX_unrecognized != nil {
  6590. i -= len(m.XXX_unrecognized)
  6591. copy(dAtA[i:], m.XXX_unrecognized)
  6592. }
  6593. if len(m.Events) > 0 {
  6594. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6595. {
  6596. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6597. if err != nil {
  6598. return 0, err
  6599. }
  6600. i -= size
  6601. i = encodeVarintTypes(dAtA, i, uint64(size))
  6602. }
  6603. i--
  6604. dAtA[i] = 0x1a
  6605. }
  6606. }
  6607. if m.ConsensusParamUpdates != nil {
  6608. {
  6609. size, err := m.ConsensusParamUpdates.MarshalToSizedBuffer(dAtA[:i])
  6610. if err != nil {
  6611. return 0, err
  6612. }
  6613. i -= size
  6614. i = encodeVarintTypes(dAtA, i, uint64(size))
  6615. }
  6616. i--
  6617. dAtA[i] = 0x12
  6618. }
  6619. if len(m.ValidatorUpdates) > 0 {
  6620. for iNdEx := len(m.ValidatorUpdates) - 1; iNdEx >= 0; iNdEx-- {
  6621. {
  6622. size, err := m.ValidatorUpdates[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6623. if err != nil {
  6624. return 0, err
  6625. }
  6626. i -= size
  6627. i = encodeVarintTypes(dAtA, i, uint64(size))
  6628. }
  6629. i--
  6630. dAtA[i] = 0xa
  6631. }
  6632. }
  6633. return len(dAtA) - i, nil
  6634. }
  6635. func (m *ResponseCommit) Marshal() (dAtA []byte, err error) {
  6636. size := m.Size()
  6637. dAtA = make([]byte, size)
  6638. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6639. if err != nil {
  6640. return nil, err
  6641. }
  6642. return dAtA[:n], nil
  6643. }
  6644. func (m *ResponseCommit) MarshalTo(dAtA []byte) (int, error) {
  6645. size := m.Size()
  6646. return m.MarshalToSizedBuffer(dAtA[:size])
  6647. }
  6648. func (m *ResponseCommit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6649. i := len(dAtA)
  6650. _ = i
  6651. var l int
  6652. _ = l
  6653. if m.XXX_unrecognized != nil {
  6654. i -= len(m.XXX_unrecognized)
  6655. copy(dAtA[i:], m.XXX_unrecognized)
  6656. }
  6657. if len(m.Data) > 0 {
  6658. i -= len(m.Data)
  6659. copy(dAtA[i:], m.Data)
  6660. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6661. i--
  6662. dAtA[i] = 0x12
  6663. }
  6664. return len(dAtA) - i, nil
  6665. }
  6666. func (m *ConsensusParams) Marshal() (dAtA []byte, err error) {
  6667. size := m.Size()
  6668. dAtA = make([]byte, size)
  6669. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6670. if err != nil {
  6671. return nil, err
  6672. }
  6673. return dAtA[:n], nil
  6674. }
  6675. func (m *ConsensusParams) MarshalTo(dAtA []byte) (int, error) {
  6676. size := m.Size()
  6677. return m.MarshalToSizedBuffer(dAtA[:size])
  6678. }
  6679. func (m *ConsensusParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6680. i := len(dAtA)
  6681. _ = i
  6682. var l int
  6683. _ = l
  6684. if m.XXX_unrecognized != nil {
  6685. i -= len(m.XXX_unrecognized)
  6686. copy(dAtA[i:], m.XXX_unrecognized)
  6687. }
  6688. if m.Validator != nil {
  6689. {
  6690. size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i])
  6691. if err != nil {
  6692. return 0, err
  6693. }
  6694. i -= size
  6695. i = encodeVarintTypes(dAtA, i, uint64(size))
  6696. }
  6697. i--
  6698. dAtA[i] = 0x1a
  6699. }
  6700. if m.Evidence != nil {
  6701. {
  6702. size, err := m.Evidence.MarshalToSizedBuffer(dAtA[:i])
  6703. if err != nil {
  6704. return 0, err
  6705. }
  6706. i -= size
  6707. i = encodeVarintTypes(dAtA, i, uint64(size))
  6708. }
  6709. i--
  6710. dAtA[i] = 0x12
  6711. }
  6712. if m.Block != nil {
  6713. {
  6714. size, err := m.Block.MarshalToSizedBuffer(dAtA[:i])
  6715. if err != nil {
  6716. return 0, err
  6717. }
  6718. i -= size
  6719. i = encodeVarintTypes(dAtA, i, uint64(size))
  6720. }
  6721. i--
  6722. dAtA[i] = 0xa
  6723. }
  6724. return len(dAtA) - i, nil
  6725. }
  6726. func (m *BlockParams) Marshal() (dAtA []byte, err error) {
  6727. size := m.Size()
  6728. dAtA = make([]byte, size)
  6729. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6730. if err != nil {
  6731. return nil, err
  6732. }
  6733. return dAtA[:n], nil
  6734. }
  6735. func (m *BlockParams) MarshalTo(dAtA []byte) (int, error) {
  6736. size := m.Size()
  6737. return m.MarshalToSizedBuffer(dAtA[:size])
  6738. }
  6739. func (m *BlockParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6740. i := len(dAtA)
  6741. _ = i
  6742. var l int
  6743. _ = l
  6744. if m.XXX_unrecognized != nil {
  6745. i -= len(m.XXX_unrecognized)
  6746. copy(dAtA[i:], m.XXX_unrecognized)
  6747. }
  6748. if m.MaxGas != 0 {
  6749. i = encodeVarintTypes(dAtA, i, uint64(m.MaxGas))
  6750. i--
  6751. dAtA[i] = 0x10
  6752. }
  6753. if m.MaxBytes != 0 {
  6754. i = encodeVarintTypes(dAtA, i, uint64(m.MaxBytes))
  6755. i--
  6756. dAtA[i] = 0x8
  6757. }
  6758. return len(dAtA) - i, nil
  6759. }
  6760. func (m *EvidenceParams) Marshal() (dAtA []byte, err error) {
  6761. size := m.Size()
  6762. dAtA = make([]byte, size)
  6763. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6764. if err != nil {
  6765. return nil, err
  6766. }
  6767. return dAtA[:n], nil
  6768. }
  6769. func (m *EvidenceParams) MarshalTo(dAtA []byte) (int, error) {
  6770. size := m.Size()
  6771. return m.MarshalToSizedBuffer(dAtA[:size])
  6772. }
  6773. func (m *EvidenceParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6774. i := len(dAtA)
  6775. _ = i
  6776. var l int
  6777. _ = l
  6778. if m.XXX_unrecognized != nil {
  6779. i -= len(m.XXX_unrecognized)
  6780. copy(dAtA[i:], m.XXX_unrecognized)
  6781. }
  6782. if m.MaxAge != 0 {
  6783. i = encodeVarintTypes(dAtA, i, uint64(m.MaxAge))
  6784. i--
  6785. dAtA[i] = 0x8
  6786. }
  6787. return len(dAtA) - i, nil
  6788. }
  6789. func (m *ValidatorParams) Marshal() (dAtA []byte, err error) {
  6790. size := m.Size()
  6791. dAtA = make([]byte, size)
  6792. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6793. if err != nil {
  6794. return nil, err
  6795. }
  6796. return dAtA[:n], nil
  6797. }
  6798. func (m *ValidatorParams) MarshalTo(dAtA []byte) (int, error) {
  6799. size := m.Size()
  6800. return m.MarshalToSizedBuffer(dAtA[:size])
  6801. }
  6802. func (m *ValidatorParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6803. i := len(dAtA)
  6804. _ = i
  6805. var l int
  6806. _ = l
  6807. if m.XXX_unrecognized != nil {
  6808. i -= len(m.XXX_unrecognized)
  6809. copy(dAtA[i:], m.XXX_unrecognized)
  6810. }
  6811. if len(m.PubKeyTypes) > 0 {
  6812. for iNdEx := len(m.PubKeyTypes) - 1; iNdEx >= 0; iNdEx-- {
  6813. i -= len(m.PubKeyTypes[iNdEx])
  6814. copy(dAtA[i:], m.PubKeyTypes[iNdEx])
  6815. i = encodeVarintTypes(dAtA, i, uint64(len(m.PubKeyTypes[iNdEx])))
  6816. i--
  6817. dAtA[i] = 0xa
  6818. }
  6819. }
  6820. return len(dAtA) - i, nil
  6821. }
  6822. func (m *LastCommitInfo) Marshal() (dAtA []byte, err error) {
  6823. size := m.Size()
  6824. dAtA = make([]byte, size)
  6825. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6826. if err != nil {
  6827. return nil, err
  6828. }
  6829. return dAtA[:n], nil
  6830. }
  6831. func (m *LastCommitInfo) MarshalTo(dAtA []byte) (int, error) {
  6832. size := m.Size()
  6833. return m.MarshalToSizedBuffer(dAtA[:size])
  6834. }
  6835. func (m *LastCommitInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6836. i := len(dAtA)
  6837. _ = i
  6838. var l int
  6839. _ = l
  6840. if m.XXX_unrecognized != nil {
  6841. i -= len(m.XXX_unrecognized)
  6842. copy(dAtA[i:], m.XXX_unrecognized)
  6843. }
  6844. if len(m.Votes) > 0 {
  6845. for iNdEx := len(m.Votes) - 1; iNdEx >= 0; iNdEx-- {
  6846. {
  6847. size, err := m.Votes[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6848. if err != nil {
  6849. return 0, err
  6850. }
  6851. i -= size
  6852. i = encodeVarintTypes(dAtA, i, uint64(size))
  6853. }
  6854. i--
  6855. dAtA[i] = 0x12
  6856. }
  6857. }
  6858. if m.Round != 0 {
  6859. i = encodeVarintTypes(dAtA, i, uint64(m.Round))
  6860. i--
  6861. dAtA[i] = 0x8
  6862. }
  6863. return len(dAtA) - i, nil
  6864. }
  6865. func (m *Event) Marshal() (dAtA []byte, err error) {
  6866. size := m.Size()
  6867. dAtA = make([]byte, size)
  6868. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6869. if err != nil {
  6870. return nil, err
  6871. }
  6872. return dAtA[:n], nil
  6873. }
  6874. func (m *Event) MarshalTo(dAtA []byte) (int, error) {
  6875. size := m.Size()
  6876. return m.MarshalToSizedBuffer(dAtA[:size])
  6877. }
  6878. func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6879. i := len(dAtA)
  6880. _ = i
  6881. var l int
  6882. _ = l
  6883. if m.XXX_unrecognized != nil {
  6884. i -= len(m.XXX_unrecognized)
  6885. copy(dAtA[i:], m.XXX_unrecognized)
  6886. }
  6887. if len(m.Attributes) > 0 {
  6888. for iNdEx := len(m.Attributes) - 1; iNdEx >= 0; iNdEx-- {
  6889. {
  6890. size, err := m.Attributes[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6891. if err != nil {
  6892. return 0, err
  6893. }
  6894. i -= size
  6895. i = encodeVarintTypes(dAtA, i, uint64(size))
  6896. }
  6897. i--
  6898. dAtA[i] = 0x12
  6899. }
  6900. }
  6901. if len(m.Type) > 0 {
  6902. i -= len(m.Type)
  6903. copy(dAtA[i:], m.Type)
  6904. i = encodeVarintTypes(dAtA, i, uint64(len(m.Type)))
  6905. i--
  6906. dAtA[i] = 0xa
  6907. }
  6908. return len(dAtA) - i, nil
  6909. }
  6910. func (m *Header) Marshal() (dAtA []byte, err error) {
  6911. size := m.Size()
  6912. dAtA = make([]byte, size)
  6913. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6914. if err != nil {
  6915. return nil, err
  6916. }
  6917. return dAtA[:n], nil
  6918. }
  6919. func (m *Header) MarshalTo(dAtA []byte) (int, error) {
  6920. size := m.Size()
  6921. return m.MarshalToSizedBuffer(dAtA[:size])
  6922. }
  6923. func (m *Header) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6924. i := len(dAtA)
  6925. _ = i
  6926. var l int
  6927. _ = l
  6928. if m.XXX_unrecognized != nil {
  6929. i -= len(m.XXX_unrecognized)
  6930. copy(dAtA[i:], m.XXX_unrecognized)
  6931. }
  6932. if len(m.ProposerAddress) > 0 {
  6933. i -= len(m.ProposerAddress)
  6934. copy(dAtA[i:], m.ProposerAddress)
  6935. i = encodeVarintTypes(dAtA, i, uint64(len(m.ProposerAddress)))
  6936. i--
  6937. dAtA[i] = 0x1
  6938. i--
  6939. dAtA[i] = 0x82
  6940. }
  6941. if len(m.EvidenceHash) > 0 {
  6942. i -= len(m.EvidenceHash)
  6943. copy(dAtA[i:], m.EvidenceHash)
  6944. i = encodeVarintTypes(dAtA, i, uint64(len(m.EvidenceHash)))
  6945. i--
  6946. dAtA[i] = 0x7a
  6947. }
  6948. if len(m.LastResultsHash) > 0 {
  6949. i -= len(m.LastResultsHash)
  6950. copy(dAtA[i:], m.LastResultsHash)
  6951. i = encodeVarintTypes(dAtA, i, uint64(len(m.LastResultsHash)))
  6952. i--
  6953. dAtA[i] = 0x72
  6954. }
  6955. if len(m.AppHash) > 0 {
  6956. i -= len(m.AppHash)
  6957. copy(dAtA[i:], m.AppHash)
  6958. i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash)))
  6959. i--
  6960. dAtA[i] = 0x6a
  6961. }
  6962. if len(m.ConsensusHash) > 0 {
  6963. i -= len(m.ConsensusHash)
  6964. copy(dAtA[i:], m.ConsensusHash)
  6965. i = encodeVarintTypes(dAtA, i, uint64(len(m.ConsensusHash)))
  6966. i--
  6967. dAtA[i] = 0x62
  6968. }
  6969. if len(m.NextValidatorsHash) > 0 {
  6970. i -= len(m.NextValidatorsHash)
  6971. copy(dAtA[i:], m.NextValidatorsHash)
  6972. i = encodeVarintTypes(dAtA, i, uint64(len(m.NextValidatorsHash)))
  6973. i--
  6974. dAtA[i] = 0x5a
  6975. }
  6976. if len(m.ValidatorsHash) > 0 {
  6977. i -= len(m.ValidatorsHash)
  6978. copy(dAtA[i:], m.ValidatorsHash)
  6979. i = encodeVarintTypes(dAtA, i, uint64(len(m.ValidatorsHash)))
  6980. i--
  6981. dAtA[i] = 0x52
  6982. }
  6983. if len(m.DataHash) > 0 {
  6984. i -= len(m.DataHash)
  6985. copy(dAtA[i:], m.DataHash)
  6986. i = encodeVarintTypes(dAtA, i, uint64(len(m.DataHash)))
  6987. i--
  6988. dAtA[i] = 0x4a
  6989. }
  6990. if len(m.LastCommitHash) > 0 {
  6991. i -= len(m.LastCommitHash)
  6992. copy(dAtA[i:], m.LastCommitHash)
  6993. i = encodeVarintTypes(dAtA, i, uint64(len(m.LastCommitHash)))
  6994. i--
  6995. dAtA[i] = 0x42
  6996. }
  6997. {
  6998. size, err := m.LastBlockId.MarshalToSizedBuffer(dAtA[:i])
  6999. if err != nil {
  7000. return 0, err
  7001. }
  7002. i -= size
  7003. i = encodeVarintTypes(dAtA, i, uint64(size))
  7004. }
  7005. i--
  7006. dAtA[i] = 0x3a
  7007. if m.TotalTxs != 0 {
  7008. i = encodeVarintTypes(dAtA, i, uint64(m.TotalTxs))
  7009. i--
  7010. dAtA[i] = 0x30
  7011. }
  7012. if m.NumTxs != 0 {
  7013. i = encodeVarintTypes(dAtA, i, uint64(m.NumTxs))
  7014. i--
  7015. dAtA[i] = 0x28
  7016. }
  7017. n35, err35 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
  7018. if err35 != nil {
  7019. return 0, err35
  7020. }
  7021. i -= n35
  7022. i = encodeVarintTypes(dAtA, i, uint64(n35))
  7023. i--
  7024. dAtA[i] = 0x22
  7025. if m.Height != 0 {
  7026. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  7027. i--
  7028. dAtA[i] = 0x18
  7029. }
  7030. if len(m.ChainID) > 0 {
  7031. i -= len(m.ChainID)
  7032. copy(dAtA[i:], m.ChainID)
  7033. i = encodeVarintTypes(dAtA, i, uint64(len(m.ChainID)))
  7034. i--
  7035. dAtA[i] = 0x12
  7036. }
  7037. {
  7038. size, err := m.Version.MarshalToSizedBuffer(dAtA[:i])
  7039. if err != nil {
  7040. return 0, err
  7041. }
  7042. i -= size
  7043. i = encodeVarintTypes(dAtA, i, uint64(size))
  7044. }
  7045. i--
  7046. dAtA[i] = 0xa
  7047. return len(dAtA) - i, nil
  7048. }
  7049. func (m *Version) Marshal() (dAtA []byte, err error) {
  7050. size := m.Size()
  7051. dAtA = make([]byte, size)
  7052. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7053. if err != nil {
  7054. return nil, err
  7055. }
  7056. return dAtA[:n], nil
  7057. }
  7058. func (m *Version) MarshalTo(dAtA []byte) (int, error) {
  7059. size := m.Size()
  7060. return m.MarshalToSizedBuffer(dAtA[:size])
  7061. }
  7062. func (m *Version) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7063. i := len(dAtA)
  7064. _ = i
  7065. var l int
  7066. _ = l
  7067. if m.XXX_unrecognized != nil {
  7068. i -= len(m.XXX_unrecognized)
  7069. copy(dAtA[i:], m.XXX_unrecognized)
  7070. }
  7071. if m.App != 0 {
  7072. i = encodeVarintTypes(dAtA, i, uint64(m.App))
  7073. i--
  7074. dAtA[i] = 0x10
  7075. }
  7076. if m.Block != 0 {
  7077. i = encodeVarintTypes(dAtA, i, uint64(m.Block))
  7078. i--
  7079. dAtA[i] = 0x8
  7080. }
  7081. return len(dAtA) - i, nil
  7082. }
  7083. func (m *BlockID) Marshal() (dAtA []byte, err error) {
  7084. size := m.Size()
  7085. dAtA = make([]byte, size)
  7086. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7087. if err != nil {
  7088. return nil, err
  7089. }
  7090. return dAtA[:n], nil
  7091. }
  7092. func (m *BlockID) MarshalTo(dAtA []byte) (int, error) {
  7093. size := m.Size()
  7094. return m.MarshalToSizedBuffer(dAtA[:size])
  7095. }
  7096. func (m *BlockID) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7097. i := len(dAtA)
  7098. _ = i
  7099. var l int
  7100. _ = l
  7101. if m.XXX_unrecognized != nil {
  7102. i -= len(m.XXX_unrecognized)
  7103. copy(dAtA[i:], m.XXX_unrecognized)
  7104. }
  7105. {
  7106. size, err := m.PartsHeader.MarshalToSizedBuffer(dAtA[:i])
  7107. if err != nil {
  7108. return 0, err
  7109. }
  7110. i -= size
  7111. i = encodeVarintTypes(dAtA, i, uint64(size))
  7112. }
  7113. i--
  7114. dAtA[i] = 0x12
  7115. if len(m.Hash) > 0 {
  7116. i -= len(m.Hash)
  7117. copy(dAtA[i:], m.Hash)
  7118. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  7119. i--
  7120. dAtA[i] = 0xa
  7121. }
  7122. return len(dAtA) - i, nil
  7123. }
  7124. func (m *PartSetHeader) Marshal() (dAtA []byte, err error) {
  7125. size := m.Size()
  7126. dAtA = make([]byte, size)
  7127. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7128. if err != nil {
  7129. return nil, err
  7130. }
  7131. return dAtA[:n], nil
  7132. }
  7133. func (m *PartSetHeader) MarshalTo(dAtA []byte) (int, error) {
  7134. size := m.Size()
  7135. return m.MarshalToSizedBuffer(dAtA[:size])
  7136. }
  7137. func (m *PartSetHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7138. i := len(dAtA)
  7139. _ = i
  7140. var l int
  7141. _ = l
  7142. if m.XXX_unrecognized != nil {
  7143. i -= len(m.XXX_unrecognized)
  7144. copy(dAtA[i:], m.XXX_unrecognized)
  7145. }
  7146. if len(m.Hash) > 0 {
  7147. i -= len(m.Hash)
  7148. copy(dAtA[i:], m.Hash)
  7149. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  7150. i--
  7151. dAtA[i] = 0x12
  7152. }
  7153. if m.Total != 0 {
  7154. i = encodeVarintTypes(dAtA, i, uint64(m.Total))
  7155. i--
  7156. dAtA[i] = 0x8
  7157. }
  7158. return len(dAtA) - i, nil
  7159. }
  7160. func (m *Validator) Marshal() (dAtA []byte, err error) {
  7161. size := m.Size()
  7162. dAtA = make([]byte, size)
  7163. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7164. if err != nil {
  7165. return nil, err
  7166. }
  7167. return dAtA[:n], nil
  7168. }
  7169. func (m *Validator) MarshalTo(dAtA []byte) (int, error) {
  7170. size := m.Size()
  7171. return m.MarshalToSizedBuffer(dAtA[:size])
  7172. }
  7173. func (m *Validator) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7174. i := len(dAtA)
  7175. _ = i
  7176. var l int
  7177. _ = l
  7178. if m.XXX_unrecognized != nil {
  7179. i -= len(m.XXX_unrecognized)
  7180. copy(dAtA[i:], m.XXX_unrecognized)
  7181. }
  7182. if m.Power != 0 {
  7183. i = encodeVarintTypes(dAtA, i, uint64(m.Power))
  7184. i--
  7185. dAtA[i] = 0x18
  7186. }
  7187. if len(m.Address) > 0 {
  7188. i -= len(m.Address)
  7189. copy(dAtA[i:], m.Address)
  7190. i = encodeVarintTypes(dAtA, i, uint64(len(m.Address)))
  7191. i--
  7192. dAtA[i] = 0xa
  7193. }
  7194. return len(dAtA) - i, nil
  7195. }
  7196. func (m *ValidatorUpdate) Marshal() (dAtA []byte, err error) {
  7197. size := m.Size()
  7198. dAtA = make([]byte, size)
  7199. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7200. if err != nil {
  7201. return nil, err
  7202. }
  7203. return dAtA[:n], nil
  7204. }
  7205. func (m *ValidatorUpdate) MarshalTo(dAtA []byte) (int, error) {
  7206. size := m.Size()
  7207. return m.MarshalToSizedBuffer(dAtA[:size])
  7208. }
  7209. func (m *ValidatorUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7210. i := len(dAtA)
  7211. _ = i
  7212. var l int
  7213. _ = l
  7214. if m.XXX_unrecognized != nil {
  7215. i -= len(m.XXX_unrecognized)
  7216. copy(dAtA[i:], m.XXX_unrecognized)
  7217. }
  7218. if m.Power != 0 {
  7219. i = encodeVarintTypes(dAtA, i, uint64(m.Power))
  7220. i--
  7221. dAtA[i] = 0x10
  7222. }
  7223. {
  7224. size, err := m.PubKey.MarshalToSizedBuffer(dAtA[:i])
  7225. if err != nil {
  7226. return 0, err
  7227. }
  7228. i -= size
  7229. i = encodeVarintTypes(dAtA, i, uint64(size))
  7230. }
  7231. i--
  7232. dAtA[i] = 0xa
  7233. return len(dAtA) - i, nil
  7234. }
  7235. func (m *VoteInfo) Marshal() (dAtA []byte, err error) {
  7236. size := m.Size()
  7237. dAtA = make([]byte, size)
  7238. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7239. if err != nil {
  7240. return nil, err
  7241. }
  7242. return dAtA[:n], nil
  7243. }
  7244. func (m *VoteInfo) MarshalTo(dAtA []byte) (int, error) {
  7245. size := m.Size()
  7246. return m.MarshalToSizedBuffer(dAtA[:size])
  7247. }
  7248. func (m *VoteInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7249. i := len(dAtA)
  7250. _ = i
  7251. var l int
  7252. _ = l
  7253. if m.XXX_unrecognized != nil {
  7254. i -= len(m.XXX_unrecognized)
  7255. copy(dAtA[i:], m.XXX_unrecognized)
  7256. }
  7257. if m.SignedLastBlock {
  7258. i--
  7259. if m.SignedLastBlock {
  7260. dAtA[i] = 1
  7261. } else {
  7262. dAtA[i] = 0
  7263. }
  7264. i--
  7265. dAtA[i] = 0x10
  7266. }
  7267. {
  7268. size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i])
  7269. if err != nil {
  7270. return 0, err
  7271. }
  7272. i -= size
  7273. i = encodeVarintTypes(dAtA, i, uint64(size))
  7274. }
  7275. i--
  7276. dAtA[i] = 0xa
  7277. return len(dAtA) - i, nil
  7278. }
  7279. func (m *PubKey) Marshal() (dAtA []byte, err error) {
  7280. size := m.Size()
  7281. dAtA = make([]byte, size)
  7282. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7283. if err != nil {
  7284. return nil, err
  7285. }
  7286. return dAtA[:n], nil
  7287. }
  7288. func (m *PubKey) MarshalTo(dAtA []byte) (int, error) {
  7289. size := m.Size()
  7290. return m.MarshalToSizedBuffer(dAtA[:size])
  7291. }
  7292. func (m *PubKey) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7293. i := len(dAtA)
  7294. _ = i
  7295. var l int
  7296. _ = l
  7297. if m.XXX_unrecognized != nil {
  7298. i -= len(m.XXX_unrecognized)
  7299. copy(dAtA[i:], m.XXX_unrecognized)
  7300. }
  7301. if len(m.Data) > 0 {
  7302. i -= len(m.Data)
  7303. copy(dAtA[i:], m.Data)
  7304. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  7305. i--
  7306. dAtA[i] = 0x12
  7307. }
  7308. if len(m.Type) > 0 {
  7309. i -= len(m.Type)
  7310. copy(dAtA[i:], m.Type)
  7311. i = encodeVarintTypes(dAtA, i, uint64(len(m.Type)))
  7312. i--
  7313. dAtA[i] = 0xa
  7314. }
  7315. return len(dAtA) - i, nil
  7316. }
  7317. func (m *Evidence) Marshal() (dAtA []byte, err error) {
  7318. size := m.Size()
  7319. dAtA = make([]byte, size)
  7320. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7321. if err != nil {
  7322. return nil, err
  7323. }
  7324. return dAtA[:n], nil
  7325. }
  7326. func (m *Evidence) MarshalTo(dAtA []byte) (int, error) {
  7327. size := m.Size()
  7328. return m.MarshalToSizedBuffer(dAtA[:size])
  7329. }
  7330. func (m *Evidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7331. i := len(dAtA)
  7332. _ = i
  7333. var l int
  7334. _ = l
  7335. if m.XXX_unrecognized != nil {
  7336. i -= len(m.XXX_unrecognized)
  7337. copy(dAtA[i:], m.XXX_unrecognized)
  7338. }
  7339. if m.TotalVotingPower != 0 {
  7340. i = encodeVarintTypes(dAtA, i, uint64(m.TotalVotingPower))
  7341. i--
  7342. dAtA[i] = 0x28
  7343. }
  7344. n40, err40 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
  7345. if err40 != nil {
  7346. return 0, err40
  7347. }
  7348. i -= n40
  7349. i = encodeVarintTypes(dAtA, i, uint64(n40))
  7350. i--
  7351. dAtA[i] = 0x22
  7352. if m.Height != 0 {
  7353. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  7354. i--
  7355. dAtA[i] = 0x18
  7356. }
  7357. {
  7358. size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i])
  7359. if err != nil {
  7360. return 0, err
  7361. }
  7362. i -= size
  7363. i = encodeVarintTypes(dAtA, i, uint64(size))
  7364. }
  7365. i--
  7366. dAtA[i] = 0x12
  7367. if len(m.Type) > 0 {
  7368. i -= len(m.Type)
  7369. copy(dAtA[i:], m.Type)
  7370. i = encodeVarintTypes(dAtA, i, uint64(len(m.Type)))
  7371. i--
  7372. dAtA[i] = 0xa
  7373. }
  7374. return len(dAtA) - i, nil
  7375. }
  7376. func encodeVarintTypes(dAtA []byte, offset int, v uint64) int {
  7377. offset -= sovTypes(v)
  7378. base := offset
  7379. for v >= 1<<7 {
  7380. dAtA[offset] = uint8(v&0x7f | 0x80)
  7381. v >>= 7
  7382. offset++
  7383. }
  7384. dAtA[offset] = uint8(v)
  7385. return base
  7386. }
  7387. func NewPopulatedRequest(r randyTypes, easy bool) *Request {
  7388. this := &Request{}
  7389. oneofNumber_Value := []int32{2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 19}[r.Intn(11)]
  7390. switch oneofNumber_Value {
  7391. case 2:
  7392. this.Value = NewPopulatedRequest_Echo(r, easy)
  7393. case 3:
  7394. this.Value = NewPopulatedRequest_Flush(r, easy)
  7395. case 4:
  7396. this.Value = NewPopulatedRequest_Info(r, easy)
  7397. case 5:
  7398. this.Value = NewPopulatedRequest_SetOption(r, easy)
  7399. case 6:
  7400. this.Value = NewPopulatedRequest_InitChain(r, easy)
  7401. case 7:
  7402. this.Value = NewPopulatedRequest_Query(r, easy)
  7403. case 8:
  7404. this.Value = NewPopulatedRequest_BeginBlock(r, easy)
  7405. case 9:
  7406. this.Value = NewPopulatedRequest_CheckTx(r, easy)
  7407. case 11:
  7408. this.Value = NewPopulatedRequest_EndBlock(r, easy)
  7409. case 12:
  7410. this.Value = NewPopulatedRequest_Commit(r, easy)
  7411. case 19:
  7412. this.Value = NewPopulatedRequest_DeliverTx(r, easy)
  7413. }
  7414. if !easy && r.Intn(10) != 0 {
  7415. this.XXX_unrecognized = randUnrecognizedTypes(r, 20)
  7416. }
  7417. return this
  7418. }
  7419. func NewPopulatedRequest_Echo(r randyTypes, easy bool) *Request_Echo {
  7420. this := &Request_Echo{}
  7421. this.Echo = NewPopulatedRequestEcho(r, easy)
  7422. return this
  7423. }
  7424. func NewPopulatedRequest_Flush(r randyTypes, easy bool) *Request_Flush {
  7425. this := &Request_Flush{}
  7426. this.Flush = NewPopulatedRequestFlush(r, easy)
  7427. return this
  7428. }
  7429. func NewPopulatedRequest_Info(r randyTypes, easy bool) *Request_Info {
  7430. this := &Request_Info{}
  7431. this.Info = NewPopulatedRequestInfo(r, easy)
  7432. return this
  7433. }
  7434. func NewPopulatedRequest_SetOption(r randyTypes, easy bool) *Request_SetOption {
  7435. this := &Request_SetOption{}
  7436. this.SetOption = NewPopulatedRequestSetOption(r, easy)
  7437. return this
  7438. }
  7439. func NewPopulatedRequest_InitChain(r randyTypes, easy bool) *Request_InitChain {
  7440. this := &Request_InitChain{}
  7441. this.InitChain = NewPopulatedRequestInitChain(r, easy)
  7442. return this
  7443. }
  7444. func NewPopulatedRequest_Query(r randyTypes, easy bool) *Request_Query {
  7445. this := &Request_Query{}
  7446. this.Query = NewPopulatedRequestQuery(r, easy)
  7447. return this
  7448. }
  7449. func NewPopulatedRequest_BeginBlock(r randyTypes, easy bool) *Request_BeginBlock {
  7450. this := &Request_BeginBlock{}
  7451. this.BeginBlock = NewPopulatedRequestBeginBlock(r, easy)
  7452. return this
  7453. }
  7454. func NewPopulatedRequest_CheckTx(r randyTypes, easy bool) *Request_CheckTx {
  7455. this := &Request_CheckTx{}
  7456. this.CheckTx = NewPopulatedRequestCheckTx(r, easy)
  7457. return this
  7458. }
  7459. func NewPopulatedRequest_EndBlock(r randyTypes, easy bool) *Request_EndBlock {
  7460. this := &Request_EndBlock{}
  7461. this.EndBlock = NewPopulatedRequestEndBlock(r, easy)
  7462. return this
  7463. }
  7464. func NewPopulatedRequest_Commit(r randyTypes, easy bool) *Request_Commit {
  7465. this := &Request_Commit{}
  7466. this.Commit = NewPopulatedRequestCommit(r, easy)
  7467. return this
  7468. }
  7469. func NewPopulatedRequest_DeliverTx(r randyTypes, easy bool) *Request_DeliverTx {
  7470. this := &Request_DeliverTx{}
  7471. this.DeliverTx = NewPopulatedRequestDeliverTx(r, easy)
  7472. return this
  7473. }
  7474. func NewPopulatedRequestEcho(r randyTypes, easy bool) *RequestEcho {
  7475. this := &RequestEcho{}
  7476. this.Message = string(randStringTypes(r))
  7477. if !easy && r.Intn(10) != 0 {
  7478. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7479. }
  7480. return this
  7481. }
  7482. func NewPopulatedRequestFlush(r randyTypes, easy bool) *RequestFlush {
  7483. this := &RequestFlush{}
  7484. if !easy && r.Intn(10) != 0 {
  7485. this.XXX_unrecognized = randUnrecognizedTypes(r, 1)
  7486. }
  7487. return this
  7488. }
  7489. func NewPopulatedRequestInfo(r randyTypes, easy bool) *RequestInfo {
  7490. this := &RequestInfo{}
  7491. this.Version = string(randStringTypes(r))
  7492. this.BlockVersion = uint64(uint64(r.Uint32()))
  7493. this.P2PVersion = uint64(uint64(r.Uint32()))
  7494. if !easy && r.Intn(10) != 0 {
  7495. this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
  7496. }
  7497. return this
  7498. }
  7499. func NewPopulatedRequestSetOption(r randyTypes, easy bool) *RequestSetOption {
  7500. this := &RequestSetOption{}
  7501. this.Key = string(randStringTypes(r))
  7502. this.Value = string(randStringTypes(r))
  7503. if !easy && r.Intn(10) != 0 {
  7504. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7505. }
  7506. return this
  7507. }
  7508. func NewPopulatedRequestInitChain(r randyTypes, easy bool) *RequestInitChain {
  7509. this := &RequestInitChain{}
  7510. v1 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy)
  7511. this.Time = *v1
  7512. this.ChainId = string(randStringTypes(r))
  7513. if r.Intn(5) != 0 {
  7514. this.ConsensusParams = NewPopulatedConsensusParams(r, easy)
  7515. }
  7516. if r.Intn(5) != 0 {
  7517. v2 := r.Intn(5)
  7518. this.Validators = make([]ValidatorUpdate, v2)
  7519. for i := 0; i < v2; i++ {
  7520. v3 := NewPopulatedValidatorUpdate(r, easy)
  7521. this.Validators[i] = *v3
  7522. }
  7523. }
  7524. v4 := r.Intn(100)
  7525. this.AppStateBytes = make([]byte, v4)
  7526. for i := 0; i < v4; i++ {
  7527. this.AppStateBytes[i] = byte(r.Intn(256))
  7528. }
  7529. if !easy && r.Intn(10) != 0 {
  7530. this.XXX_unrecognized = randUnrecognizedTypes(r, 6)
  7531. }
  7532. return this
  7533. }
  7534. func NewPopulatedRequestQuery(r randyTypes, easy bool) *RequestQuery {
  7535. this := &RequestQuery{}
  7536. v5 := r.Intn(100)
  7537. this.Data = make([]byte, v5)
  7538. for i := 0; i < v5; i++ {
  7539. this.Data[i] = byte(r.Intn(256))
  7540. }
  7541. this.Path = string(randStringTypes(r))
  7542. this.Height = int64(r.Int63())
  7543. if r.Intn(2) == 0 {
  7544. this.Height *= -1
  7545. }
  7546. this.Prove = bool(bool(r.Intn(2) == 0))
  7547. if !easy && r.Intn(10) != 0 {
  7548. this.XXX_unrecognized = randUnrecognizedTypes(r, 5)
  7549. }
  7550. return this
  7551. }
  7552. func NewPopulatedRequestBeginBlock(r randyTypes, easy bool) *RequestBeginBlock {
  7553. this := &RequestBeginBlock{}
  7554. v6 := r.Intn(100)
  7555. this.Hash = make([]byte, v6)
  7556. for i := 0; i < v6; i++ {
  7557. this.Hash[i] = byte(r.Intn(256))
  7558. }
  7559. v7 := NewPopulatedHeader(r, easy)
  7560. this.Header = *v7
  7561. v8 := NewPopulatedLastCommitInfo(r, easy)
  7562. this.LastCommitInfo = *v8
  7563. if r.Intn(5) != 0 {
  7564. v9 := r.Intn(5)
  7565. this.ByzantineValidators = make([]Evidence, v9)
  7566. for i := 0; i < v9; i++ {
  7567. v10 := NewPopulatedEvidence(r, easy)
  7568. this.ByzantineValidators[i] = *v10
  7569. }
  7570. }
  7571. if !easy && r.Intn(10) != 0 {
  7572. this.XXX_unrecognized = randUnrecognizedTypes(r, 5)
  7573. }
  7574. return this
  7575. }
  7576. func NewPopulatedRequestCheckTx(r randyTypes, easy bool) *RequestCheckTx {
  7577. this := &RequestCheckTx{}
  7578. v11 := r.Intn(100)
  7579. this.Tx = make([]byte, v11)
  7580. for i := 0; i < v11; i++ {
  7581. this.Tx[i] = byte(r.Intn(256))
  7582. }
  7583. this.Type = CheckTxType([]int32{0, 1}[r.Intn(2)])
  7584. if !easy && r.Intn(10) != 0 {
  7585. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7586. }
  7587. return this
  7588. }
  7589. func NewPopulatedRequestDeliverTx(r randyTypes, easy bool) *RequestDeliverTx {
  7590. this := &RequestDeliverTx{}
  7591. v12 := r.Intn(100)
  7592. this.Tx = make([]byte, v12)
  7593. for i := 0; i < v12; i++ {
  7594. this.Tx[i] = byte(r.Intn(256))
  7595. }
  7596. if !easy && r.Intn(10) != 0 {
  7597. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7598. }
  7599. return this
  7600. }
  7601. func NewPopulatedRequestEndBlock(r randyTypes, easy bool) *RequestEndBlock {
  7602. this := &RequestEndBlock{}
  7603. this.Height = int64(r.Int63())
  7604. if r.Intn(2) == 0 {
  7605. this.Height *= -1
  7606. }
  7607. if !easy && r.Intn(10) != 0 {
  7608. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7609. }
  7610. return this
  7611. }
  7612. func NewPopulatedRequestCommit(r randyTypes, easy bool) *RequestCommit {
  7613. this := &RequestCommit{}
  7614. if !easy && r.Intn(10) != 0 {
  7615. this.XXX_unrecognized = randUnrecognizedTypes(r, 1)
  7616. }
  7617. return this
  7618. }
  7619. func NewPopulatedResponse(r randyTypes, easy bool) *Response {
  7620. this := &Response{}
  7621. oneofNumber_Value := []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}[r.Intn(12)]
  7622. switch oneofNumber_Value {
  7623. case 1:
  7624. this.Value = NewPopulatedResponse_Exception(r, easy)
  7625. case 2:
  7626. this.Value = NewPopulatedResponse_Echo(r, easy)
  7627. case 3:
  7628. this.Value = NewPopulatedResponse_Flush(r, easy)
  7629. case 4:
  7630. this.Value = NewPopulatedResponse_Info(r, easy)
  7631. case 5:
  7632. this.Value = NewPopulatedResponse_SetOption(r, easy)
  7633. case 6:
  7634. this.Value = NewPopulatedResponse_InitChain(r, easy)
  7635. case 7:
  7636. this.Value = NewPopulatedResponse_Query(r, easy)
  7637. case 8:
  7638. this.Value = NewPopulatedResponse_BeginBlock(r, easy)
  7639. case 9:
  7640. this.Value = NewPopulatedResponse_CheckTx(r, easy)
  7641. case 10:
  7642. this.Value = NewPopulatedResponse_DeliverTx(r, easy)
  7643. case 11:
  7644. this.Value = NewPopulatedResponse_EndBlock(r, easy)
  7645. case 12:
  7646. this.Value = NewPopulatedResponse_Commit(r, easy)
  7647. }
  7648. if !easy && r.Intn(10) != 0 {
  7649. this.XXX_unrecognized = randUnrecognizedTypes(r, 13)
  7650. }
  7651. return this
  7652. }
  7653. func NewPopulatedResponse_Exception(r randyTypes, easy bool) *Response_Exception {
  7654. this := &Response_Exception{}
  7655. this.Exception = NewPopulatedResponseException(r, easy)
  7656. return this
  7657. }
  7658. func NewPopulatedResponse_Echo(r randyTypes, easy bool) *Response_Echo {
  7659. this := &Response_Echo{}
  7660. this.Echo = NewPopulatedResponseEcho(r, easy)
  7661. return this
  7662. }
  7663. func NewPopulatedResponse_Flush(r randyTypes, easy bool) *Response_Flush {
  7664. this := &Response_Flush{}
  7665. this.Flush = NewPopulatedResponseFlush(r, easy)
  7666. return this
  7667. }
  7668. func NewPopulatedResponse_Info(r randyTypes, easy bool) *Response_Info {
  7669. this := &Response_Info{}
  7670. this.Info = NewPopulatedResponseInfo(r, easy)
  7671. return this
  7672. }
  7673. func NewPopulatedResponse_SetOption(r randyTypes, easy bool) *Response_SetOption {
  7674. this := &Response_SetOption{}
  7675. this.SetOption = NewPopulatedResponseSetOption(r, easy)
  7676. return this
  7677. }
  7678. func NewPopulatedResponse_InitChain(r randyTypes, easy bool) *Response_InitChain {
  7679. this := &Response_InitChain{}
  7680. this.InitChain = NewPopulatedResponseInitChain(r, easy)
  7681. return this
  7682. }
  7683. func NewPopulatedResponse_Query(r randyTypes, easy bool) *Response_Query {
  7684. this := &Response_Query{}
  7685. this.Query = NewPopulatedResponseQuery(r, easy)
  7686. return this
  7687. }
  7688. func NewPopulatedResponse_BeginBlock(r randyTypes, easy bool) *Response_BeginBlock {
  7689. this := &Response_BeginBlock{}
  7690. this.BeginBlock = NewPopulatedResponseBeginBlock(r, easy)
  7691. return this
  7692. }
  7693. func NewPopulatedResponse_CheckTx(r randyTypes, easy bool) *Response_CheckTx {
  7694. this := &Response_CheckTx{}
  7695. this.CheckTx = NewPopulatedResponseCheckTx(r, easy)
  7696. return this
  7697. }
  7698. func NewPopulatedResponse_DeliverTx(r randyTypes, easy bool) *Response_DeliverTx {
  7699. this := &Response_DeliverTx{}
  7700. this.DeliverTx = NewPopulatedResponseDeliverTx(r, easy)
  7701. return this
  7702. }
  7703. func NewPopulatedResponse_EndBlock(r randyTypes, easy bool) *Response_EndBlock {
  7704. this := &Response_EndBlock{}
  7705. this.EndBlock = NewPopulatedResponseEndBlock(r, easy)
  7706. return this
  7707. }
  7708. func NewPopulatedResponse_Commit(r randyTypes, easy bool) *Response_Commit {
  7709. this := &Response_Commit{}
  7710. this.Commit = NewPopulatedResponseCommit(r, easy)
  7711. return this
  7712. }
  7713. func NewPopulatedResponseException(r randyTypes, easy bool) *ResponseException {
  7714. this := &ResponseException{}
  7715. this.Error = string(randStringTypes(r))
  7716. if !easy && r.Intn(10) != 0 {
  7717. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7718. }
  7719. return this
  7720. }
  7721. func NewPopulatedResponseEcho(r randyTypes, easy bool) *ResponseEcho {
  7722. this := &ResponseEcho{}
  7723. this.Message = string(randStringTypes(r))
  7724. if !easy && r.Intn(10) != 0 {
  7725. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7726. }
  7727. return this
  7728. }
  7729. func NewPopulatedResponseFlush(r randyTypes, easy bool) *ResponseFlush {
  7730. this := &ResponseFlush{}
  7731. if !easy && r.Intn(10) != 0 {
  7732. this.XXX_unrecognized = randUnrecognizedTypes(r, 1)
  7733. }
  7734. return this
  7735. }
  7736. func NewPopulatedResponseInfo(r randyTypes, easy bool) *ResponseInfo {
  7737. this := &ResponseInfo{}
  7738. this.Data = string(randStringTypes(r))
  7739. this.Version = string(randStringTypes(r))
  7740. this.AppVersion = uint64(uint64(r.Uint32()))
  7741. this.LastBlockHeight = int64(r.Int63())
  7742. if r.Intn(2) == 0 {
  7743. this.LastBlockHeight *= -1
  7744. }
  7745. v13 := r.Intn(100)
  7746. this.LastBlockAppHash = make([]byte, v13)
  7747. for i := 0; i < v13; i++ {
  7748. this.LastBlockAppHash[i] = byte(r.Intn(256))
  7749. }
  7750. if !easy && r.Intn(10) != 0 {
  7751. this.XXX_unrecognized = randUnrecognizedTypes(r, 6)
  7752. }
  7753. return this
  7754. }
  7755. func NewPopulatedResponseSetOption(r randyTypes, easy bool) *ResponseSetOption {
  7756. this := &ResponseSetOption{}
  7757. this.Code = uint32(r.Uint32())
  7758. this.Log = string(randStringTypes(r))
  7759. this.Info = string(randStringTypes(r))
  7760. if !easy && r.Intn(10) != 0 {
  7761. this.XXX_unrecognized = randUnrecognizedTypes(r, 5)
  7762. }
  7763. return this
  7764. }
  7765. func NewPopulatedResponseInitChain(r randyTypes, easy bool) *ResponseInitChain {
  7766. this := &ResponseInitChain{}
  7767. if r.Intn(5) != 0 {
  7768. this.ConsensusParams = NewPopulatedConsensusParams(r, easy)
  7769. }
  7770. if r.Intn(5) != 0 {
  7771. v14 := r.Intn(5)
  7772. this.Validators = make([]ValidatorUpdate, v14)
  7773. for i := 0; i < v14; i++ {
  7774. v15 := NewPopulatedValidatorUpdate(r, easy)
  7775. this.Validators[i] = *v15
  7776. }
  7777. }
  7778. if !easy && r.Intn(10) != 0 {
  7779. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7780. }
  7781. return this
  7782. }
  7783. func NewPopulatedResponseQuery(r randyTypes, easy bool) *ResponseQuery {
  7784. this := &ResponseQuery{}
  7785. this.Code = uint32(r.Uint32())
  7786. this.Log = string(randStringTypes(r))
  7787. this.Info = string(randStringTypes(r))
  7788. this.Index = int64(r.Int63())
  7789. if r.Intn(2) == 0 {
  7790. this.Index *= -1
  7791. }
  7792. v16 := r.Intn(100)
  7793. this.Key = make([]byte, v16)
  7794. for i := 0; i < v16; i++ {
  7795. this.Key[i] = byte(r.Intn(256))
  7796. }
  7797. v17 := r.Intn(100)
  7798. this.Value = make([]byte, v17)
  7799. for i := 0; i < v17; i++ {
  7800. this.Value[i] = byte(r.Intn(256))
  7801. }
  7802. if r.Intn(5) != 0 {
  7803. this.Proof = merkle.NewPopulatedProof(r, easy)
  7804. }
  7805. this.Height = int64(r.Int63())
  7806. if r.Intn(2) == 0 {
  7807. this.Height *= -1
  7808. }
  7809. this.Codespace = string(randStringTypes(r))
  7810. if !easy && r.Intn(10) != 0 {
  7811. this.XXX_unrecognized = randUnrecognizedTypes(r, 11)
  7812. }
  7813. return this
  7814. }
  7815. func NewPopulatedResponseBeginBlock(r randyTypes, easy bool) *ResponseBeginBlock {
  7816. this := &ResponseBeginBlock{}
  7817. if r.Intn(5) != 0 {
  7818. v18 := r.Intn(5)
  7819. this.Events = make([]Event, v18)
  7820. for i := 0; i < v18; i++ {
  7821. v19 := NewPopulatedEvent(r, easy)
  7822. this.Events[i] = *v19
  7823. }
  7824. }
  7825. if !easy && r.Intn(10) != 0 {
  7826. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7827. }
  7828. return this
  7829. }
  7830. func NewPopulatedResponseCheckTx(r randyTypes, easy bool) *ResponseCheckTx {
  7831. this := &ResponseCheckTx{}
  7832. this.Code = uint32(r.Uint32())
  7833. v20 := r.Intn(100)
  7834. this.Data = make([]byte, v20)
  7835. for i := 0; i < v20; i++ {
  7836. this.Data[i] = byte(r.Intn(256))
  7837. }
  7838. this.Log = string(randStringTypes(r))
  7839. this.Info = string(randStringTypes(r))
  7840. this.GasWanted = int64(r.Int63())
  7841. if r.Intn(2) == 0 {
  7842. this.GasWanted *= -1
  7843. }
  7844. this.GasUsed = int64(r.Int63())
  7845. if r.Intn(2) == 0 {
  7846. this.GasUsed *= -1
  7847. }
  7848. if r.Intn(5) != 0 {
  7849. v21 := r.Intn(5)
  7850. this.Events = make([]Event, v21)
  7851. for i := 0; i < v21; i++ {
  7852. v22 := NewPopulatedEvent(r, easy)
  7853. this.Events[i] = *v22
  7854. }
  7855. }
  7856. this.Codespace = string(randStringTypes(r))
  7857. if !easy && r.Intn(10) != 0 {
  7858. this.XXX_unrecognized = randUnrecognizedTypes(r, 9)
  7859. }
  7860. return this
  7861. }
  7862. func NewPopulatedResponseDeliverTx(r randyTypes, easy bool) *ResponseDeliverTx {
  7863. this := &ResponseDeliverTx{}
  7864. this.Code = uint32(r.Uint32())
  7865. v23 := r.Intn(100)
  7866. this.Data = make([]byte, v23)
  7867. for i := 0; i < v23; i++ {
  7868. this.Data[i] = byte(r.Intn(256))
  7869. }
  7870. this.Log = string(randStringTypes(r))
  7871. this.Info = string(randStringTypes(r))
  7872. this.GasWanted = int64(r.Int63())
  7873. if r.Intn(2) == 0 {
  7874. this.GasWanted *= -1
  7875. }
  7876. this.GasUsed = int64(r.Int63())
  7877. if r.Intn(2) == 0 {
  7878. this.GasUsed *= -1
  7879. }
  7880. if r.Intn(5) != 0 {
  7881. v24 := r.Intn(5)
  7882. this.Events = make([]Event, v24)
  7883. for i := 0; i < v24; i++ {
  7884. v25 := NewPopulatedEvent(r, easy)
  7885. this.Events[i] = *v25
  7886. }
  7887. }
  7888. this.Codespace = string(randStringTypes(r))
  7889. if !easy && r.Intn(10) != 0 {
  7890. this.XXX_unrecognized = randUnrecognizedTypes(r, 9)
  7891. }
  7892. return this
  7893. }
  7894. func NewPopulatedResponseEndBlock(r randyTypes, easy bool) *ResponseEndBlock {
  7895. this := &ResponseEndBlock{}
  7896. if r.Intn(5) != 0 {
  7897. v26 := r.Intn(5)
  7898. this.ValidatorUpdates = make([]ValidatorUpdate, v26)
  7899. for i := 0; i < v26; i++ {
  7900. v27 := NewPopulatedValidatorUpdate(r, easy)
  7901. this.ValidatorUpdates[i] = *v27
  7902. }
  7903. }
  7904. if r.Intn(5) != 0 {
  7905. this.ConsensusParamUpdates = NewPopulatedConsensusParams(r, easy)
  7906. }
  7907. if r.Intn(5) != 0 {
  7908. v28 := r.Intn(5)
  7909. this.Events = make([]Event, v28)
  7910. for i := 0; i < v28; i++ {
  7911. v29 := NewPopulatedEvent(r, easy)
  7912. this.Events[i] = *v29
  7913. }
  7914. }
  7915. if !easy && r.Intn(10) != 0 {
  7916. this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
  7917. }
  7918. return this
  7919. }
  7920. func NewPopulatedResponseCommit(r randyTypes, easy bool) *ResponseCommit {
  7921. this := &ResponseCommit{}
  7922. v30 := r.Intn(100)
  7923. this.Data = make([]byte, v30)
  7924. for i := 0; i < v30; i++ {
  7925. this.Data[i] = byte(r.Intn(256))
  7926. }
  7927. if !easy && r.Intn(10) != 0 {
  7928. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7929. }
  7930. return this
  7931. }
  7932. func NewPopulatedConsensusParams(r randyTypes, easy bool) *ConsensusParams {
  7933. this := &ConsensusParams{}
  7934. if r.Intn(5) != 0 {
  7935. this.Block = NewPopulatedBlockParams(r, easy)
  7936. }
  7937. if r.Intn(5) != 0 {
  7938. this.Evidence = NewPopulatedEvidenceParams(r, easy)
  7939. }
  7940. if r.Intn(5) != 0 {
  7941. this.Validator = NewPopulatedValidatorParams(r, easy)
  7942. }
  7943. if !easy && r.Intn(10) != 0 {
  7944. this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
  7945. }
  7946. return this
  7947. }
  7948. func NewPopulatedBlockParams(r randyTypes, easy bool) *BlockParams {
  7949. this := &BlockParams{}
  7950. this.MaxBytes = int64(r.Int63())
  7951. if r.Intn(2) == 0 {
  7952. this.MaxBytes *= -1
  7953. }
  7954. this.MaxGas = int64(r.Int63())
  7955. if r.Intn(2) == 0 {
  7956. this.MaxGas *= -1
  7957. }
  7958. if !easy && r.Intn(10) != 0 {
  7959. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7960. }
  7961. return this
  7962. }
  7963. func NewPopulatedEvidenceParams(r randyTypes, easy bool) *EvidenceParams {
  7964. this := &EvidenceParams{}
  7965. this.MaxAge = int64(r.Int63())
  7966. if r.Intn(2) == 0 {
  7967. this.MaxAge *= -1
  7968. }
  7969. if !easy && r.Intn(10) != 0 {
  7970. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7971. }
  7972. return this
  7973. }
  7974. func NewPopulatedValidatorParams(r randyTypes, easy bool) *ValidatorParams {
  7975. this := &ValidatorParams{}
  7976. v31 := r.Intn(10)
  7977. this.PubKeyTypes = make([]string, v31)
  7978. for i := 0; i < v31; i++ {
  7979. this.PubKeyTypes[i] = string(randStringTypes(r))
  7980. }
  7981. if !easy && r.Intn(10) != 0 {
  7982. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7983. }
  7984. return this
  7985. }
  7986. func NewPopulatedLastCommitInfo(r randyTypes, easy bool) *LastCommitInfo {
  7987. this := &LastCommitInfo{}
  7988. this.Round = int32(r.Int31())
  7989. if r.Intn(2) == 0 {
  7990. this.Round *= -1
  7991. }
  7992. if r.Intn(5) != 0 {
  7993. v32 := r.Intn(5)
  7994. this.Votes = make([]VoteInfo, v32)
  7995. for i := 0; i < v32; i++ {
  7996. v33 := NewPopulatedVoteInfo(r, easy)
  7997. this.Votes[i] = *v33
  7998. }
  7999. }
  8000. if !easy && r.Intn(10) != 0 {
  8001. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8002. }
  8003. return this
  8004. }
  8005. func NewPopulatedEvent(r randyTypes, easy bool) *Event {
  8006. this := &Event{}
  8007. this.Type = string(randStringTypes(r))
  8008. if r.Intn(5) != 0 {
  8009. v34 := r.Intn(5)
  8010. this.Attributes = make([]common.KVPair, v34)
  8011. for i := 0; i < v34; i++ {
  8012. v35 := common.NewPopulatedKVPair(r, easy)
  8013. this.Attributes[i] = *v35
  8014. }
  8015. }
  8016. if !easy && r.Intn(10) != 0 {
  8017. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8018. }
  8019. return this
  8020. }
  8021. func NewPopulatedHeader(r randyTypes, easy bool) *Header {
  8022. this := &Header{}
  8023. v36 := NewPopulatedVersion(r, easy)
  8024. this.Version = *v36
  8025. this.ChainID = string(randStringTypes(r))
  8026. this.Height = int64(r.Int63())
  8027. if r.Intn(2) == 0 {
  8028. this.Height *= -1
  8029. }
  8030. v37 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy)
  8031. this.Time = *v37
  8032. this.NumTxs = int64(r.Int63())
  8033. if r.Intn(2) == 0 {
  8034. this.NumTxs *= -1
  8035. }
  8036. this.TotalTxs = int64(r.Int63())
  8037. if r.Intn(2) == 0 {
  8038. this.TotalTxs *= -1
  8039. }
  8040. v38 := NewPopulatedBlockID(r, easy)
  8041. this.LastBlockId = *v38
  8042. v39 := r.Intn(100)
  8043. this.LastCommitHash = make([]byte, v39)
  8044. for i := 0; i < v39; i++ {
  8045. this.LastCommitHash[i] = byte(r.Intn(256))
  8046. }
  8047. v40 := r.Intn(100)
  8048. this.DataHash = make([]byte, v40)
  8049. for i := 0; i < v40; i++ {
  8050. this.DataHash[i] = byte(r.Intn(256))
  8051. }
  8052. v41 := r.Intn(100)
  8053. this.ValidatorsHash = make([]byte, v41)
  8054. for i := 0; i < v41; i++ {
  8055. this.ValidatorsHash[i] = byte(r.Intn(256))
  8056. }
  8057. v42 := r.Intn(100)
  8058. this.NextValidatorsHash = make([]byte, v42)
  8059. for i := 0; i < v42; i++ {
  8060. this.NextValidatorsHash[i] = byte(r.Intn(256))
  8061. }
  8062. v43 := r.Intn(100)
  8063. this.ConsensusHash = make([]byte, v43)
  8064. for i := 0; i < v43; i++ {
  8065. this.ConsensusHash[i] = byte(r.Intn(256))
  8066. }
  8067. v44 := r.Intn(100)
  8068. this.AppHash = make([]byte, v44)
  8069. for i := 0; i < v44; i++ {
  8070. this.AppHash[i] = byte(r.Intn(256))
  8071. }
  8072. v45 := r.Intn(100)
  8073. this.LastResultsHash = make([]byte, v45)
  8074. for i := 0; i < v45; i++ {
  8075. this.LastResultsHash[i] = byte(r.Intn(256))
  8076. }
  8077. v46 := r.Intn(100)
  8078. this.EvidenceHash = make([]byte, v46)
  8079. for i := 0; i < v46; i++ {
  8080. this.EvidenceHash[i] = byte(r.Intn(256))
  8081. }
  8082. v47 := r.Intn(100)
  8083. this.ProposerAddress = make([]byte, v47)
  8084. for i := 0; i < v47; i++ {
  8085. this.ProposerAddress[i] = byte(r.Intn(256))
  8086. }
  8087. if !easy && r.Intn(10) != 0 {
  8088. this.XXX_unrecognized = randUnrecognizedTypes(r, 17)
  8089. }
  8090. return this
  8091. }
  8092. func NewPopulatedVersion(r randyTypes, easy bool) *Version {
  8093. this := &Version{}
  8094. this.Block = uint64(uint64(r.Uint32()))
  8095. this.App = uint64(uint64(r.Uint32()))
  8096. if !easy && r.Intn(10) != 0 {
  8097. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8098. }
  8099. return this
  8100. }
  8101. func NewPopulatedBlockID(r randyTypes, easy bool) *BlockID {
  8102. this := &BlockID{}
  8103. v48 := r.Intn(100)
  8104. this.Hash = make([]byte, v48)
  8105. for i := 0; i < v48; i++ {
  8106. this.Hash[i] = byte(r.Intn(256))
  8107. }
  8108. v49 := NewPopulatedPartSetHeader(r, easy)
  8109. this.PartsHeader = *v49
  8110. if !easy && r.Intn(10) != 0 {
  8111. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8112. }
  8113. return this
  8114. }
  8115. func NewPopulatedPartSetHeader(r randyTypes, easy bool) *PartSetHeader {
  8116. this := &PartSetHeader{}
  8117. this.Total = int32(r.Int31())
  8118. if r.Intn(2) == 0 {
  8119. this.Total *= -1
  8120. }
  8121. v50 := r.Intn(100)
  8122. this.Hash = make([]byte, v50)
  8123. for i := 0; i < v50; i++ {
  8124. this.Hash[i] = byte(r.Intn(256))
  8125. }
  8126. if !easy && r.Intn(10) != 0 {
  8127. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8128. }
  8129. return this
  8130. }
  8131. func NewPopulatedValidator(r randyTypes, easy bool) *Validator {
  8132. this := &Validator{}
  8133. v51 := r.Intn(100)
  8134. this.Address = make([]byte, v51)
  8135. for i := 0; i < v51; i++ {
  8136. this.Address[i] = byte(r.Intn(256))
  8137. }
  8138. this.Power = int64(r.Int63())
  8139. if r.Intn(2) == 0 {
  8140. this.Power *= -1
  8141. }
  8142. if !easy && r.Intn(10) != 0 {
  8143. this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
  8144. }
  8145. return this
  8146. }
  8147. func NewPopulatedValidatorUpdate(r randyTypes, easy bool) *ValidatorUpdate {
  8148. this := &ValidatorUpdate{}
  8149. v52 := NewPopulatedPubKey(r, easy)
  8150. this.PubKey = *v52
  8151. this.Power = int64(r.Int63())
  8152. if r.Intn(2) == 0 {
  8153. this.Power *= -1
  8154. }
  8155. if !easy && r.Intn(10) != 0 {
  8156. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8157. }
  8158. return this
  8159. }
  8160. func NewPopulatedVoteInfo(r randyTypes, easy bool) *VoteInfo {
  8161. this := &VoteInfo{}
  8162. v53 := NewPopulatedValidator(r, easy)
  8163. this.Validator = *v53
  8164. this.SignedLastBlock = bool(bool(r.Intn(2) == 0))
  8165. if !easy && r.Intn(10) != 0 {
  8166. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8167. }
  8168. return this
  8169. }
  8170. func NewPopulatedPubKey(r randyTypes, easy bool) *PubKey {
  8171. this := &PubKey{}
  8172. this.Type = string(randStringTypes(r))
  8173. v54 := r.Intn(100)
  8174. this.Data = make([]byte, v54)
  8175. for i := 0; i < v54; i++ {
  8176. this.Data[i] = byte(r.Intn(256))
  8177. }
  8178. if !easy && r.Intn(10) != 0 {
  8179. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8180. }
  8181. return this
  8182. }
  8183. func NewPopulatedEvidence(r randyTypes, easy bool) *Evidence {
  8184. this := &Evidence{}
  8185. this.Type = string(randStringTypes(r))
  8186. v55 := NewPopulatedValidator(r, easy)
  8187. this.Validator = *v55
  8188. this.Height = int64(r.Int63())
  8189. if r.Intn(2) == 0 {
  8190. this.Height *= -1
  8191. }
  8192. v56 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy)
  8193. this.Time = *v56
  8194. this.TotalVotingPower = int64(r.Int63())
  8195. if r.Intn(2) == 0 {
  8196. this.TotalVotingPower *= -1
  8197. }
  8198. if !easy && r.Intn(10) != 0 {
  8199. this.XXX_unrecognized = randUnrecognizedTypes(r, 6)
  8200. }
  8201. return this
  8202. }
  8203. type randyTypes interface {
  8204. Float32() float32
  8205. Float64() float64
  8206. Int63() int64
  8207. Int31() int32
  8208. Uint32() uint32
  8209. Intn(n int) int
  8210. }
  8211. func randUTF8RuneTypes(r randyTypes) rune {
  8212. ru := r.Intn(62)
  8213. if ru < 10 {
  8214. return rune(ru + 48)
  8215. } else if ru < 36 {
  8216. return rune(ru + 55)
  8217. }
  8218. return rune(ru + 61)
  8219. }
  8220. func randStringTypes(r randyTypes) string {
  8221. v57 := r.Intn(100)
  8222. tmps := make([]rune, v57)
  8223. for i := 0; i < v57; i++ {
  8224. tmps[i] = randUTF8RuneTypes(r)
  8225. }
  8226. return string(tmps)
  8227. }
  8228. func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) {
  8229. l := r.Intn(5)
  8230. for i := 0; i < l; i++ {
  8231. wire := r.Intn(4)
  8232. if wire == 3 {
  8233. wire = 5
  8234. }
  8235. fieldNumber := maxFieldNumber + r.Intn(100)
  8236. dAtA = randFieldTypes(dAtA, r, fieldNumber, wire)
  8237. }
  8238. return dAtA
  8239. }
  8240. func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte {
  8241. key := uint32(fieldNumber)<<3 | uint32(wire)
  8242. switch wire {
  8243. case 0:
  8244. dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
  8245. v58 := r.Int63()
  8246. if r.Intn(2) == 0 {
  8247. v58 *= -1
  8248. }
  8249. dAtA = encodeVarintPopulateTypes(dAtA, uint64(v58))
  8250. case 1:
  8251. dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
  8252. dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
  8253. case 2:
  8254. dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
  8255. ll := r.Intn(100)
  8256. dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll))
  8257. for j := 0; j < ll; j++ {
  8258. dAtA = append(dAtA, byte(r.Intn(256)))
  8259. }
  8260. default:
  8261. dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
  8262. dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
  8263. }
  8264. return dAtA
  8265. }
  8266. func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte {
  8267. for v >= 1<<7 {
  8268. dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))
  8269. v >>= 7
  8270. }
  8271. dAtA = append(dAtA, uint8(v))
  8272. return dAtA
  8273. }
  8274. func (m *Request) Size() (n int) {
  8275. if m == nil {
  8276. return 0
  8277. }
  8278. var l int
  8279. _ = l
  8280. if m.Value != nil {
  8281. n += m.Value.Size()
  8282. }
  8283. if m.XXX_unrecognized != nil {
  8284. n += len(m.XXX_unrecognized)
  8285. }
  8286. return n
  8287. }
  8288. func (m *Request_Echo) Size() (n int) {
  8289. if m == nil {
  8290. return 0
  8291. }
  8292. var l int
  8293. _ = l
  8294. if m.Echo != nil {
  8295. l = m.Echo.Size()
  8296. n += 1 + l + sovTypes(uint64(l))
  8297. }
  8298. return n
  8299. }
  8300. func (m *Request_Flush) Size() (n int) {
  8301. if m == nil {
  8302. return 0
  8303. }
  8304. var l int
  8305. _ = l
  8306. if m.Flush != nil {
  8307. l = m.Flush.Size()
  8308. n += 1 + l + sovTypes(uint64(l))
  8309. }
  8310. return n
  8311. }
  8312. func (m *Request_Info) Size() (n int) {
  8313. if m == nil {
  8314. return 0
  8315. }
  8316. var l int
  8317. _ = l
  8318. if m.Info != nil {
  8319. l = m.Info.Size()
  8320. n += 1 + l + sovTypes(uint64(l))
  8321. }
  8322. return n
  8323. }
  8324. func (m *Request_SetOption) Size() (n int) {
  8325. if m == nil {
  8326. return 0
  8327. }
  8328. var l int
  8329. _ = l
  8330. if m.SetOption != nil {
  8331. l = m.SetOption.Size()
  8332. n += 1 + l + sovTypes(uint64(l))
  8333. }
  8334. return n
  8335. }
  8336. func (m *Request_InitChain) Size() (n int) {
  8337. if m == nil {
  8338. return 0
  8339. }
  8340. var l int
  8341. _ = l
  8342. if m.InitChain != nil {
  8343. l = m.InitChain.Size()
  8344. n += 1 + l + sovTypes(uint64(l))
  8345. }
  8346. return n
  8347. }
  8348. func (m *Request_Query) Size() (n int) {
  8349. if m == nil {
  8350. return 0
  8351. }
  8352. var l int
  8353. _ = l
  8354. if m.Query != nil {
  8355. l = m.Query.Size()
  8356. n += 1 + l + sovTypes(uint64(l))
  8357. }
  8358. return n
  8359. }
  8360. func (m *Request_BeginBlock) Size() (n int) {
  8361. if m == nil {
  8362. return 0
  8363. }
  8364. var l int
  8365. _ = l
  8366. if m.BeginBlock != nil {
  8367. l = m.BeginBlock.Size()
  8368. n += 1 + l + sovTypes(uint64(l))
  8369. }
  8370. return n
  8371. }
  8372. func (m *Request_CheckTx) Size() (n int) {
  8373. if m == nil {
  8374. return 0
  8375. }
  8376. var l int
  8377. _ = l
  8378. if m.CheckTx != nil {
  8379. l = m.CheckTx.Size()
  8380. n += 1 + l + sovTypes(uint64(l))
  8381. }
  8382. return n
  8383. }
  8384. func (m *Request_EndBlock) Size() (n int) {
  8385. if m == nil {
  8386. return 0
  8387. }
  8388. var l int
  8389. _ = l
  8390. if m.EndBlock != nil {
  8391. l = m.EndBlock.Size()
  8392. n += 1 + l + sovTypes(uint64(l))
  8393. }
  8394. return n
  8395. }
  8396. func (m *Request_Commit) Size() (n int) {
  8397. if m == nil {
  8398. return 0
  8399. }
  8400. var l int
  8401. _ = l
  8402. if m.Commit != nil {
  8403. l = m.Commit.Size()
  8404. n += 1 + l + sovTypes(uint64(l))
  8405. }
  8406. return n
  8407. }
  8408. func (m *Request_DeliverTx) Size() (n int) {
  8409. if m == nil {
  8410. return 0
  8411. }
  8412. var l int
  8413. _ = l
  8414. if m.DeliverTx != nil {
  8415. l = m.DeliverTx.Size()
  8416. n += 2 + l + sovTypes(uint64(l))
  8417. }
  8418. return n
  8419. }
  8420. func (m *RequestEcho) Size() (n int) {
  8421. if m == nil {
  8422. return 0
  8423. }
  8424. var l int
  8425. _ = l
  8426. l = len(m.Message)
  8427. if l > 0 {
  8428. n += 1 + l + sovTypes(uint64(l))
  8429. }
  8430. if m.XXX_unrecognized != nil {
  8431. n += len(m.XXX_unrecognized)
  8432. }
  8433. return n
  8434. }
  8435. func (m *RequestFlush) Size() (n int) {
  8436. if m == nil {
  8437. return 0
  8438. }
  8439. var l int
  8440. _ = l
  8441. if m.XXX_unrecognized != nil {
  8442. n += len(m.XXX_unrecognized)
  8443. }
  8444. return n
  8445. }
  8446. func (m *RequestInfo) Size() (n int) {
  8447. if m == nil {
  8448. return 0
  8449. }
  8450. var l int
  8451. _ = l
  8452. l = len(m.Version)
  8453. if l > 0 {
  8454. n += 1 + l + sovTypes(uint64(l))
  8455. }
  8456. if m.BlockVersion != 0 {
  8457. n += 1 + sovTypes(uint64(m.BlockVersion))
  8458. }
  8459. if m.P2PVersion != 0 {
  8460. n += 1 + sovTypes(uint64(m.P2PVersion))
  8461. }
  8462. if m.XXX_unrecognized != nil {
  8463. n += len(m.XXX_unrecognized)
  8464. }
  8465. return n
  8466. }
  8467. func (m *RequestSetOption) Size() (n int) {
  8468. if m == nil {
  8469. return 0
  8470. }
  8471. var l int
  8472. _ = l
  8473. l = len(m.Key)
  8474. if l > 0 {
  8475. n += 1 + l + sovTypes(uint64(l))
  8476. }
  8477. l = len(m.Value)
  8478. if l > 0 {
  8479. n += 1 + l + sovTypes(uint64(l))
  8480. }
  8481. if m.XXX_unrecognized != nil {
  8482. n += len(m.XXX_unrecognized)
  8483. }
  8484. return n
  8485. }
  8486. func (m *RequestInitChain) Size() (n int) {
  8487. if m == nil {
  8488. return 0
  8489. }
  8490. var l int
  8491. _ = l
  8492. l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)
  8493. n += 1 + l + sovTypes(uint64(l))
  8494. l = len(m.ChainId)
  8495. if l > 0 {
  8496. n += 1 + l + sovTypes(uint64(l))
  8497. }
  8498. if m.ConsensusParams != nil {
  8499. l = m.ConsensusParams.Size()
  8500. n += 1 + l + sovTypes(uint64(l))
  8501. }
  8502. if len(m.Validators) > 0 {
  8503. for _, e := range m.Validators {
  8504. l = e.Size()
  8505. n += 1 + l + sovTypes(uint64(l))
  8506. }
  8507. }
  8508. l = len(m.AppStateBytes)
  8509. if l > 0 {
  8510. n += 1 + l + sovTypes(uint64(l))
  8511. }
  8512. if m.XXX_unrecognized != nil {
  8513. n += len(m.XXX_unrecognized)
  8514. }
  8515. return n
  8516. }
  8517. func (m *RequestQuery) Size() (n int) {
  8518. if m == nil {
  8519. return 0
  8520. }
  8521. var l int
  8522. _ = l
  8523. l = len(m.Data)
  8524. if l > 0 {
  8525. n += 1 + l + sovTypes(uint64(l))
  8526. }
  8527. l = len(m.Path)
  8528. if l > 0 {
  8529. n += 1 + l + sovTypes(uint64(l))
  8530. }
  8531. if m.Height != 0 {
  8532. n += 1 + sovTypes(uint64(m.Height))
  8533. }
  8534. if m.Prove {
  8535. n += 2
  8536. }
  8537. if m.XXX_unrecognized != nil {
  8538. n += len(m.XXX_unrecognized)
  8539. }
  8540. return n
  8541. }
  8542. func (m *RequestBeginBlock) Size() (n int) {
  8543. if m == nil {
  8544. return 0
  8545. }
  8546. var l int
  8547. _ = l
  8548. l = len(m.Hash)
  8549. if l > 0 {
  8550. n += 1 + l + sovTypes(uint64(l))
  8551. }
  8552. l = m.Header.Size()
  8553. n += 1 + l + sovTypes(uint64(l))
  8554. l = m.LastCommitInfo.Size()
  8555. n += 1 + l + sovTypes(uint64(l))
  8556. if len(m.ByzantineValidators) > 0 {
  8557. for _, e := range m.ByzantineValidators {
  8558. l = e.Size()
  8559. n += 1 + l + sovTypes(uint64(l))
  8560. }
  8561. }
  8562. if m.XXX_unrecognized != nil {
  8563. n += len(m.XXX_unrecognized)
  8564. }
  8565. return n
  8566. }
  8567. func (m *RequestCheckTx) Size() (n int) {
  8568. if m == nil {
  8569. return 0
  8570. }
  8571. var l int
  8572. _ = l
  8573. l = len(m.Tx)
  8574. if l > 0 {
  8575. n += 1 + l + sovTypes(uint64(l))
  8576. }
  8577. if m.Type != 0 {
  8578. n += 1 + sovTypes(uint64(m.Type))
  8579. }
  8580. if m.XXX_unrecognized != nil {
  8581. n += len(m.XXX_unrecognized)
  8582. }
  8583. return n
  8584. }
  8585. func (m *RequestDeliverTx) Size() (n int) {
  8586. if m == nil {
  8587. return 0
  8588. }
  8589. var l int
  8590. _ = l
  8591. l = len(m.Tx)
  8592. if l > 0 {
  8593. n += 1 + l + sovTypes(uint64(l))
  8594. }
  8595. if m.XXX_unrecognized != nil {
  8596. n += len(m.XXX_unrecognized)
  8597. }
  8598. return n
  8599. }
  8600. func (m *RequestEndBlock) Size() (n int) {
  8601. if m == nil {
  8602. return 0
  8603. }
  8604. var l int
  8605. _ = l
  8606. if m.Height != 0 {
  8607. n += 1 + sovTypes(uint64(m.Height))
  8608. }
  8609. if m.XXX_unrecognized != nil {
  8610. n += len(m.XXX_unrecognized)
  8611. }
  8612. return n
  8613. }
  8614. func (m *RequestCommit) Size() (n int) {
  8615. if m == nil {
  8616. return 0
  8617. }
  8618. var l int
  8619. _ = l
  8620. if m.XXX_unrecognized != nil {
  8621. n += len(m.XXX_unrecognized)
  8622. }
  8623. return n
  8624. }
  8625. func (m *Response) Size() (n int) {
  8626. if m == nil {
  8627. return 0
  8628. }
  8629. var l int
  8630. _ = l
  8631. if m.Value != nil {
  8632. n += m.Value.Size()
  8633. }
  8634. if m.XXX_unrecognized != nil {
  8635. n += len(m.XXX_unrecognized)
  8636. }
  8637. return n
  8638. }
  8639. func (m *Response_Exception) Size() (n int) {
  8640. if m == nil {
  8641. return 0
  8642. }
  8643. var l int
  8644. _ = l
  8645. if m.Exception != nil {
  8646. l = m.Exception.Size()
  8647. n += 1 + l + sovTypes(uint64(l))
  8648. }
  8649. return n
  8650. }
  8651. func (m *Response_Echo) Size() (n int) {
  8652. if m == nil {
  8653. return 0
  8654. }
  8655. var l int
  8656. _ = l
  8657. if m.Echo != nil {
  8658. l = m.Echo.Size()
  8659. n += 1 + l + sovTypes(uint64(l))
  8660. }
  8661. return n
  8662. }
  8663. func (m *Response_Flush) Size() (n int) {
  8664. if m == nil {
  8665. return 0
  8666. }
  8667. var l int
  8668. _ = l
  8669. if m.Flush != nil {
  8670. l = m.Flush.Size()
  8671. n += 1 + l + sovTypes(uint64(l))
  8672. }
  8673. return n
  8674. }
  8675. func (m *Response_Info) Size() (n int) {
  8676. if m == nil {
  8677. return 0
  8678. }
  8679. var l int
  8680. _ = l
  8681. if m.Info != nil {
  8682. l = m.Info.Size()
  8683. n += 1 + l + sovTypes(uint64(l))
  8684. }
  8685. return n
  8686. }
  8687. func (m *Response_SetOption) Size() (n int) {
  8688. if m == nil {
  8689. return 0
  8690. }
  8691. var l int
  8692. _ = l
  8693. if m.SetOption != nil {
  8694. l = m.SetOption.Size()
  8695. n += 1 + l + sovTypes(uint64(l))
  8696. }
  8697. return n
  8698. }
  8699. func (m *Response_InitChain) Size() (n int) {
  8700. if m == nil {
  8701. return 0
  8702. }
  8703. var l int
  8704. _ = l
  8705. if m.InitChain != nil {
  8706. l = m.InitChain.Size()
  8707. n += 1 + l + sovTypes(uint64(l))
  8708. }
  8709. return n
  8710. }
  8711. func (m *Response_Query) Size() (n int) {
  8712. if m == nil {
  8713. return 0
  8714. }
  8715. var l int
  8716. _ = l
  8717. if m.Query != nil {
  8718. l = m.Query.Size()
  8719. n += 1 + l + sovTypes(uint64(l))
  8720. }
  8721. return n
  8722. }
  8723. func (m *Response_BeginBlock) Size() (n int) {
  8724. if m == nil {
  8725. return 0
  8726. }
  8727. var l int
  8728. _ = l
  8729. if m.BeginBlock != nil {
  8730. l = m.BeginBlock.Size()
  8731. n += 1 + l + sovTypes(uint64(l))
  8732. }
  8733. return n
  8734. }
  8735. func (m *Response_CheckTx) Size() (n int) {
  8736. if m == nil {
  8737. return 0
  8738. }
  8739. var l int
  8740. _ = l
  8741. if m.CheckTx != nil {
  8742. l = m.CheckTx.Size()
  8743. n += 1 + l + sovTypes(uint64(l))
  8744. }
  8745. return n
  8746. }
  8747. func (m *Response_DeliverTx) Size() (n int) {
  8748. if m == nil {
  8749. return 0
  8750. }
  8751. var l int
  8752. _ = l
  8753. if m.DeliverTx != nil {
  8754. l = m.DeliverTx.Size()
  8755. n += 1 + l + sovTypes(uint64(l))
  8756. }
  8757. return n
  8758. }
  8759. func (m *Response_EndBlock) Size() (n int) {
  8760. if m == nil {
  8761. return 0
  8762. }
  8763. var l int
  8764. _ = l
  8765. if m.EndBlock != nil {
  8766. l = m.EndBlock.Size()
  8767. n += 1 + l + sovTypes(uint64(l))
  8768. }
  8769. return n
  8770. }
  8771. func (m *Response_Commit) Size() (n int) {
  8772. if m == nil {
  8773. return 0
  8774. }
  8775. var l int
  8776. _ = l
  8777. if m.Commit != nil {
  8778. l = m.Commit.Size()
  8779. n += 1 + l + sovTypes(uint64(l))
  8780. }
  8781. return n
  8782. }
  8783. func (m *ResponseException) Size() (n int) {
  8784. if m == nil {
  8785. return 0
  8786. }
  8787. var l int
  8788. _ = l
  8789. l = len(m.Error)
  8790. if l > 0 {
  8791. n += 1 + l + sovTypes(uint64(l))
  8792. }
  8793. if m.XXX_unrecognized != nil {
  8794. n += len(m.XXX_unrecognized)
  8795. }
  8796. return n
  8797. }
  8798. func (m *ResponseEcho) Size() (n int) {
  8799. if m == nil {
  8800. return 0
  8801. }
  8802. var l int
  8803. _ = l
  8804. l = len(m.Message)
  8805. if l > 0 {
  8806. n += 1 + l + sovTypes(uint64(l))
  8807. }
  8808. if m.XXX_unrecognized != nil {
  8809. n += len(m.XXX_unrecognized)
  8810. }
  8811. return n
  8812. }
  8813. func (m *ResponseFlush) Size() (n int) {
  8814. if m == nil {
  8815. return 0
  8816. }
  8817. var l int
  8818. _ = l
  8819. if m.XXX_unrecognized != nil {
  8820. n += len(m.XXX_unrecognized)
  8821. }
  8822. return n
  8823. }
  8824. func (m *ResponseInfo) Size() (n int) {
  8825. if m == nil {
  8826. return 0
  8827. }
  8828. var l int
  8829. _ = l
  8830. l = len(m.Data)
  8831. if l > 0 {
  8832. n += 1 + l + sovTypes(uint64(l))
  8833. }
  8834. l = len(m.Version)
  8835. if l > 0 {
  8836. n += 1 + l + sovTypes(uint64(l))
  8837. }
  8838. if m.AppVersion != 0 {
  8839. n += 1 + sovTypes(uint64(m.AppVersion))
  8840. }
  8841. if m.LastBlockHeight != 0 {
  8842. n += 1 + sovTypes(uint64(m.LastBlockHeight))
  8843. }
  8844. l = len(m.LastBlockAppHash)
  8845. if l > 0 {
  8846. n += 1 + l + sovTypes(uint64(l))
  8847. }
  8848. if m.XXX_unrecognized != nil {
  8849. n += len(m.XXX_unrecognized)
  8850. }
  8851. return n
  8852. }
  8853. func (m *ResponseSetOption) Size() (n int) {
  8854. if m == nil {
  8855. return 0
  8856. }
  8857. var l int
  8858. _ = l
  8859. if m.Code != 0 {
  8860. n += 1 + sovTypes(uint64(m.Code))
  8861. }
  8862. l = len(m.Log)
  8863. if l > 0 {
  8864. n += 1 + l + sovTypes(uint64(l))
  8865. }
  8866. l = len(m.Info)
  8867. if l > 0 {
  8868. n += 1 + l + sovTypes(uint64(l))
  8869. }
  8870. if m.XXX_unrecognized != nil {
  8871. n += len(m.XXX_unrecognized)
  8872. }
  8873. return n
  8874. }
  8875. func (m *ResponseInitChain) Size() (n int) {
  8876. if m == nil {
  8877. return 0
  8878. }
  8879. var l int
  8880. _ = l
  8881. if m.ConsensusParams != nil {
  8882. l = m.ConsensusParams.Size()
  8883. n += 1 + l + sovTypes(uint64(l))
  8884. }
  8885. if len(m.Validators) > 0 {
  8886. for _, e := range m.Validators {
  8887. l = e.Size()
  8888. n += 1 + l + sovTypes(uint64(l))
  8889. }
  8890. }
  8891. if m.XXX_unrecognized != nil {
  8892. n += len(m.XXX_unrecognized)
  8893. }
  8894. return n
  8895. }
  8896. func (m *ResponseQuery) Size() (n int) {
  8897. if m == nil {
  8898. return 0
  8899. }
  8900. var l int
  8901. _ = l
  8902. if m.Code != 0 {
  8903. n += 1 + sovTypes(uint64(m.Code))
  8904. }
  8905. l = len(m.Log)
  8906. if l > 0 {
  8907. n += 1 + l + sovTypes(uint64(l))
  8908. }
  8909. l = len(m.Info)
  8910. if l > 0 {
  8911. n += 1 + l + sovTypes(uint64(l))
  8912. }
  8913. if m.Index != 0 {
  8914. n += 1 + sovTypes(uint64(m.Index))
  8915. }
  8916. l = len(m.Key)
  8917. if l > 0 {
  8918. n += 1 + l + sovTypes(uint64(l))
  8919. }
  8920. l = len(m.Value)
  8921. if l > 0 {
  8922. n += 1 + l + sovTypes(uint64(l))
  8923. }
  8924. if m.Proof != nil {
  8925. l = m.Proof.Size()
  8926. n += 1 + l + sovTypes(uint64(l))
  8927. }
  8928. if m.Height != 0 {
  8929. n += 1 + sovTypes(uint64(m.Height))
  8930. }
  8931. l = len(m.Codespace)
  8932. if l > 0 {
  8933. n += 1 + l + sovTypes(uint64(l))
  8934. }
  8935. if m.XXX_unrecognized != nil {
  8936. n += len(m.XXX_unrecognized)
  8937. }
  8938. return n
  8939. }
  8940. func (m *ResponseBeginBlock) Size() (n int) {
  8941. if m == nil {
  8942. return 0
  8943. }
  8944. var l int
  8945. _ = l
  8946. if len(m.Events) > 0 {
  8947. for _, e := range m.Events {
  8948. l = e.Size()
  8949. n += 1 + l + sovTypes(uint64(l))
  8950. }
  8951. }
  8952. if m.XXX_unrecognized != nil {
  8953. n += len(m.XXX_unrecognized)
  8954. }
  8955. return n
  8956. }
  8957. func (m *ResponseCheckTx) Size() (n int) {
  8958. if m == nil {
  8959. return 0
  8960. }
  8961. var l int
  8962. _ = l
  8963. if m.Code != 0 {
  8964. n += 1 + sovTypes(uint64(m.Code))
  8965. }
  8966. l = len(m.Data)
  8967. if l > 0 {
  8968. n += 1 + l + sovTypes(uint64(l))
  8969. }
  8970. l = len(m.Log)
  8971. if l > 0 {
  8972. n += 1 + l + sovTypes(uint64(l))
  8973. }
  8974. l = len(m.Info)
  8975. if l > 0 {
  8976. n += 1 + l + sovTypes(uint64(l))
  8977. }
  8978. if m.GasWanted != 0 {
  8979. n += 1 + sovTypes(uint64(m.GasWanted))
  8980. }
  8981. if m.GasUsed != 0 {
  8982. n += 1 + sovTypes(uint64(m.GasUsed))
  8983. }
  8984. if len(m.Events) > 0 {
  8985. for _, e := range m.Events {
  8986. l = e.Size()
  8987. n += 1 + l + sovTypes(uint64(l))
  8988. }
  8989. }
  8990. l = len(m.Codespace)
  8991. if l > 0 {
  8992. n += 1 + l + sovTypes(uint64(l))
  8993. }
  8994. if m.XXX_unrecognized != nil {
  8995. n += len(m.XXX_unrecognized)
  8996. }
  8997. return n
  8998. }
  8999. func (m *ResponseDeliverTx) Size() (n int) {
  9000. if m == nil {
  9001. return 0
  9002. }
  9003. var l int
  9004. _ = l
  9005. if m.Code != 0 {
  9006. n += 1 + sovTypes(uint64(m.Code))
  9007. }
  9008. l = len(m.Data)
  9009. if l > 0 {
  9010. n += 1 + l + sovTypes(uint64(l))
  9011. }
  9012. l = len(m.Log)
  9013. if l > 0 {
  9014. n += 1 + l + sovTypes(uint64(l))
  9015. }
  9016. l = len(m.Info)
  9017. if l > 0 {
  9018. n += 1 + l + sovTypes(uint64(l))
  9019. }
  9020. if m.GasWanted != 0 {
  9021. n += 1 + sovTypes(uint64(m.GasWanted))
  9022. }
  9023. if m.GasUsed != 0 {
  9024. n += 1 + sovTypes(uint64(m.GasUsed))
  9025. }
  9026. if len(m.Events) > 0 {
  9027. for _, e := range m.Events {
  9028. l = e.Size()
  9029. n += 1 + l + sovTypes(uint64(l))
  9030. }
  9031. }
  9032. l = len(m.Codespace)
  9033. if l > 0 {
  9034. n += 1 + l + sovTypes(uint64(l))
  9035. }
  9036. if m.XXX_unrecognized != nil {
  9037. n += len(m.XXX_unrecognized)
  9038. }
  9039. return n
  9040. }
  9041. func (m *ResponseEndBlock) Size() (n int) {
  9042. if m == nil {
  9043. return 0
  9044. }
  9045. var l int
  9046. _ = l
  9047. if len(m.ValidatorUpdates) > 0 {
  9048. for _, e := range m.ValidatorUpdates {
  9049. l = e.Size()
  9050. n += 1 + l + sovTypes(uint64(l))
  9051. }
  9052. }
  9053. if m.ConsensusParamUpdates != nil {
  9054. l = m.ConsensusParamUpdates.Size()
  9055. n += 1 + l + sovTypes(uint64(l))
  9056. }
  9057. if len(m.Events) > 0 {
  9058. for _, e := range m.Events {
  9059. l = e.Size()
  9060. n += 1 + l + sovTypes(uint64(l))
  9061. }
  9062. }
  9063. if m.XXX_unrecognized != nil {
  9064. n += len(m.XXX_unrecognized)
  9065. }
  9066. return n
  9067. }
  9068. func (m *ResponseCommit) Size() (n int) {
  9069. if m == nil {
  9070. return 0
  9071. }
  9072. var l int
  9073. _ = l
  9074. l = len(m.Data)
  9075. if l > 0 {
  9076. n += 1 + l + sovTypes(uint64(l))
  9077. }
  9078. if m.XXX_unrecognized != nil {
  9079. n += len(m.XXX_unrecognized)
  9080. }
  9081. return n
  9082. }
  9083. func (m *ConsensusParams) Size() (n int) {
  9084. if m == nil {
  9085. return 0
  9086. }
  9087. var l int
  9088. _ = l
  9089. if m.Block != nil {
  9090. l = m.Block.Size()
  9091. n += 1 + l + sovTypes(uint64(l))
  9092. }
  9093. if m.Evidence != nil {
  9094. l = m.Evidence.Size()
  9095. n += 1 + l + sovTypes(uint64(l))
  9096. }
  9097. if m.Validator != nil {
  9098. l = m.Validator.Size()
  9099. n += 1 + l + sovTypes(uint64(l))
  9100. }
  9101. if m.XXX_unrecognized != nil {
  9102. n += len(m.XXX_unrecognized)
  9103. }
  9104. return n
  9105. }
  9106. func (m *BlockParams) Size() (n int) {
  9107. if m == nil {
  9108. return 0
  9109. }
  9110. var l int
  9111. _ = l
  9112. if m.MaxBytes != 0 {
  9113. n += 1 + sovTypes(uint64(m.MaxBytes))
  9114. }
  9115. if m.MaxGas != 0 {
  9116. n += 1 + sovTypes(uint64(m.MaxGas))
  9117. }
  9118. if m.XXX_unrecognized != nil {
  9119. n += len(m.XXX_unrecognized)
  9120. }
  9121. return n
  9122. }
  9123. func (m *EvidenceParams) Size() (n int) {
  9124. if m == nil {
  9125. return 0
  9126. }
  9127. var l int
  9128. _ = l
  9129. if m.MaxAge != 0 {
  9130. n += 1 + sovTypes(uint64(m.MaxAge))
  9131. }
  9132. if m.XXX_unrecognized != nil {
  9133. n += len(m.XXX_unrecognized)
  9134. }
  9135. return n
  9136. }
  9137. func (m *ValidatorParams) Size() (n int) {
  9138. if m == nil {
  9139. return 0
  9140. }
  9141. var l int
  9142. _ = l
  9143. if len(m.PubKeyTypes) > 0 {
  9144. for _, s := range m.PubKeyTypes {
  9145. l = len(s)
  9146. n += 1 + l + sovTypes(uint64(l))
  9147. }
  9148. }
  9149. if m.XXX_unrecognized != nil {
  9150. n += len(m.XXX_unrecognized)
  9151. }
  9152. return n
  9153. }
  9154. func (m *LastCommitInfo) Size() (n int) {
  9155. if m == nil {
  9156. return 0
  9157. }
  9158. var l int
  9159. _ = l
  9160. if m.Round != 0 {
  9161. n += 1 + sovTypes(uint64(m.Round))
  9162. }
  9163. if len(m.Votes) > 0 {
  9164. for _, e := range m.Votes {
  9165. l = e.Size()
  9166. n += 1 + l + sovTypes(uint64(l))
  9167. }
  9168. }
  9169. if m.XXX_unrecognized != nil {
  9170. n += len(m.XXX_unrecognized)
  9171. }
  9172. return n
  9173. }
  9174. func (m *Event) Size() (n int) {
  9175. if m == nil {
  9176. return 0
  9177. }
  9178. var l int
  9179. _ = l
  9180. l = len(m.Type)
  9181. if l > 0 {
  9182. n += 1 + l + sovTypes(uint64(l))
  9183. }
  9184. if len(m.Attributes) > 0 {
  9185. for _, e := range m.Attributes {
  9186. l = e.Size()
  9187. n += 1 + l + sovTypes(uint64(l))
  9188. }
  9189. }
  9190. if m.XXX_unrecognized != nil {
  9191. n += len(m.XXX_unrecognized)
  9192. }
  9193. return n
  9194. }
  9195. func (m *Header) Size() (n int) {
  9196. if m == nil {
  9197. return 0
  9198. }
  9199. var l int
  9200. _ = l
  9201. l = m.Version.Size()
  9202. n += 1 + l + sovTypes(uint64(l))
  9203. l = len(m.ChainID)
  9204. if l > 0 {
  9205. n += 1 + l + sovTypes(uint64(l))
  9206. }
  9207. if m.Height != 0 {
  9208. n += 1 + sovTypes(uint64(m.Height))
  9209. }
  9210. l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)
  9211. n += 1 + l + sovTypes(uint64(l))
  9212. if m.NumTxs != 0 {
  9213. n += 1 + sovTypes(uint64(m.NumTxs))
  9214. }
  9215. if m.TotalTxs != 0 {
  9216. n += 1 + sovTypes(uint64(m.TotalTxs))
  9217. }
  9218. l = m.LastBlockId.Size()
  9219. n += 1 + l + sovTypes(uint64(l))
  9220. l = len(m.LastCommitHash)
  9221. if l > 0 {
  9222. n += 1 + l + sovTypes(uint64(l))
  9223. }
  9224. l = len(m.DataHash)
  9225. if l > 0 {
  9226. n += 1 + l + sovTypes(uint64(l))
  9227. }
  9228. l = len(m.ValidatorsHash)
  9229. if l > 0 {
  9230. n += 1 + l + sovTypes(uint64(l))
  9231. }
  9232. l = len(m.NextValidatorsHash)
  9233. if l > 0 {
  9234. n += 1 + l + sovTypes(uint64(l))
  9235. }
  9236. l = len(m.ConsensusHash)
  9237. if l > 0 {
  9238. n += 1 + l + sovTypes(uint64(l))
  9239. }
  9240. l = len(m.AppHash)
  9241. if l > 0 {
  9242. n += 1 + l + sovTypes(uint64(l))
  9243. }
  9244. l = len(m.LastResultsHash)
  9245. if l > 0 {
  9246. n += 1 + l + sovTypes(uint64(l))
  9247. }
  9248. l = len(m.EvidenceHash)
  9249. if l > 0 {
  9250. n += 1 + l + sovTypes(uint64(l))
  9251. }
  9252. l = len(m.ProposerAddress)
  9253. if l > 0 {
  9254. n += 2 + l + sovTypes(uint64(l))
  9255. }
  9256. if m.XXX_unrecognized != nil {
  9257. n += len(m.XXX_unrecognized)
  9258. }
  9259. return n
  9260. }
  9261. func (m *Version) Size() (n int) {
  9262. if m == nil {
  9263. return 0
  9264. }
  9265. var l int
  9266. _ = l
  9267. if m.Block != 0 {
  9268. n += 1 + sovTypes(uint64(m.Block))
  9269. }
  9270. if m.App != 0 {
  9271. n += 1 + sovTypes(uint64(m.App))
  9272. }
  9273. if m.XXX_unrecognized != nil {
  9274. n += len(m.XXX_unrecognized)
  9275. }
  9276. return n
  9277. }
  9278. func (m *BlockID) Size() (n int) {
  9279. if m == nil {
  9280. return 0
  9281. }
  9282. var l int
  9283. _ = l
  9284. l = len(m.Hash)
  9285. if l > 0 {
  9286. n += 1 + l + sovTypes(uint64(l))
  9287. }
  9288. l = m.PartsHeader.Size()
  9289. n += 1 + l + sovTypes(uint64(l))
  9290. if m.XXX_unrecognized != nil {
  9291. n += len(m.XXX_unrecognized)
  9292. }
  9293. return n
  9294. }
  9295. func (m *PartSetHeader) Size() (n int) {
  9296. if m == nil {
  9297. return 0
  9298. }
  9299. var l int
  9300. _ = l
  9301. if m.Total != 0 {
  9302. n += 1 + sovTypes(uint64(m.Total))
  9303. }
  9304. l = len(m.Hash)
  9305. if l > 0 {
  9306. n += 1 + l + sovTypes(uint64(l))
  9307. }
  9308. if m.XXX_unrecognized != nil {
  9309. n += len(m.XXX_unrecognized)
  9310. }
  9311. return n
  9312. }
  9313. func (m *Validator) Size() (n int) {
  9314. if m == nil {
  9315. return 0
  9316. }
  9317. var l int
  9318. _ = l
  9319. l = len(m.Address)
  9320. if l > 0 {
  9321. n += 1 + l + sovTypes(uint64(l))
  9322. }
  9323. if m.Power != 0 {
  9324. n += 1 + sovTypes(uint64(m.Power))
  9325. }
  9326. if m.XXX_unrecognized != nil {
  9327. n += len(m.XXX_unrecognized)
  9328. }
  9329. return n
  9330. }
  9331. func (m *ValidatorUpdate) Size() (n int) {
  9332. if m == nil {
  9333. return 0
  9334. }
  9335. var l int
  9336. _ = l
  9337. l = m.PubKey.Size()
  9338. n += 1 + l + sovTypes(uint64(l))
  9339. if m.Power != 0 {
  9340. n += 1 + sovTypes(uint64(m.Power))
  9341. }
  9342. if m.XXX_unrecognized != nil {
  9343. n += len(m.XXX_unrecognized)
  9344. }
  9345. return n
  9346. }
  9347. func (m *VoteInfo) Size() (n int) {
  9348. if m == nil {
  9349. return 0
  9350. }
  9351. var l int
  9352. _ = l
  9353. l = m.Validator.Size()
  9354. n += 1 + l + sovTypes(uint64(l))
  9355. if m.SignedLastBlock {
  9356. n += 2
  9357. }
  9358. if m.XXX_unrecognized != nil {
  9359. n += len(m.XXX_unrecognized)
  9360. }
  9361. return n
  9362. }
  9363. func (m *PubKey) Size() (n int) {
  9364. if m == nil {
  9365. return 0
  9366. }
  9367. var l int
  9368. _ = l
  9369. l = len(m.Type)
  9370. if l > 0 {
  9371. n += 1 + l + sovTypes(uint64(l))
  9372. }
  9373. l = len(m.Data)
  9374. if l > 0 {
  9375. n += 1 + l + sovTypes(uint64(l))
  9376. }
  9377. if m.XXX_unrecognized != nil {
  9378. n += len(m.XXX_unrecognized)
  9379. }
  9380. return n
  9381. }
  9382. func (m *Evidence) Size() (n int) {
  9383. if m == nil {
  9384. return 0
  9385. }
  9386. var l int
  9387. _ = l
  9388. l = len(m.Type)
  9389. if l > 0 {
  9390. n += 1 + l + sovTypes(uint64(l))
  9391. }
  9392. l = m.Validator.Size()
  9393. n += 1 + l + sovTypes(uint64(l))
  9394. if m.Height != 0 {
  9395. n += 1 + sovTypes(uint64(m.Height))
  9396. }
  9397. l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)
  9398. n += 1 + l + sovTypes(uint64(l))
  9399. if m.TotalVotingPower != 0 {
  9400. n += 1 + sovTypes(uint64(m.TotalVotingPower))
  9401. }
  9402. if m.XXX_unrecognized != nil {
  9403. n += len(m.XXX_unrecognized)
  9404. }
  9405. return n
  9406. }
  9407. func sovTypes(x uint64) (n int) {
  9408. return (math_bits.Len64(x|1) + 6) / 7
  9409. }
  9410. func sozTypes(x uint64) (n int) {
  9411. return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  9412. }
  9413. func (m *Request) Unmarshal(dAtA []byte) error {
  9414. l := len(dAtA)
  9415. iNdEx := 0
  9416. for iNdEx < l {
  9417. preIndex := iNdEx
  9418. var wire uint64
  9419. for shift := uint(0); ; shift += 7 {
  9420. if shift >= 64 {
  9421. return ErrIntOverflowTypes
  9422. }
  9423. if iNdEx >= l {
  9424. return io.ErrUnexpectedEOF
  9425. }
  9426. b := dAtA[iNdEx]
  9427. iNdEx++
  9428. wire |= uint64(b&0x7F) << shift
  9429. if b < 0x80 {
  9430. break
  9431. }
  9432. }
  9433. fieldNum := int32(wire >> 3)
  9434. wireType := int(wire & 0x7)
  9435. if wireType == 4 {
  9436. return fmt.Errorf("proto: Request: wiretype end group for non-group")
  9437. }
  9438. if fieldNum <= 0 {
  9439. return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
  9440. }
  9441. switch fieldNum {
  9442. case 2:
  9443. if wireType != 2 {
  9444. return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType)
  9445. }
  9446. var msglen int
  9447. for shift := uint(0); ; shift += 7 {
  9448. if shift >= 64 {
  9449. return ErrIntOverflowTypes
  9450. }
  9451. if iNdEx >= l {
  9452. return io.ErrUnexpectedEOF
  9453. }
  9454. b := dAtA[iNdEx]
  9455. iNdEx++
  9456. msglen |= int(b&0x7F) << shift
  9457. if b < 0x80 {
  9458. break
  9459. }
  9460. }
  9461. if msglen < 0 {
  9462. return ErrInvalidLengthTypes
  9463. }
  9464. postIndex := iNdEx + msglen
  9465. if postIndex < 0 {
  9466. return ErrInvalidLengthTypes
  9467. }
  9468. if postIndex > l {
  9469. return io.ErrUnexpectedEOF
  9470. }
  9471. v := &RequestEcho{}
  9472. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9473. return err
  9474. }
  9475. m.Value = &Request_Echo{v}
  9476. iNdEx = postIndex
  9477. case 3:
  9478. if wireType != 2 {
  9479. return fmt.Errorf("proto: wrong wireType = %d for field Flush", wireType)
  9480. }
  9481. var msglen int
  9482. for shift := uint(0); ; shift += 7 {
  9483. if shift >= 64 {
  9484. return ErrIntOverflowTypes
  9485. }
  9486. if iNdEx >= l {
  9487. return io.ErrUnexpectedEOF
  9488. }
  9489. b := dAtA[iNdEx]
  9490. iNdEx++
  9491. msglen |= int(b&0x7F) << shift
  9492. if b < 0x80 {
  9493. break
  9494. }
  9495. }
  9496. if msglen < 0 {
  9497. return ErrInvalidLengthTypes
  9498. }
  9499. postIndex := iNdEx + msglen
  9500. if postIndex < 0 {
  9501. return ErrInvalidLengthTypes
  9502. }
  9503. if postIndex > l {
  9504. return io.ErrUnexpectedEOF
  9505. }
  9506. v := &RequestFlush{}
  9507. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9508. return err
  9509. }
  9510. m.Value = &Request_Flush{v}
  9511. iNdEx = postIndex
  9512. case 4:
  9513. if wireType != 2 {
  9514. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  9515. }
  9516. var msglen int
  9517. for shift := uint(0); ; shift += 7 {
  9518. if shift >= 64 {
  9519. return ErrIntOverflowTypes
  9520. }
  9521. if iNdEx >= l {
  9522. return io.ErrUnexpectedEOF
  9523. }
  9524. b := dAtA[iNdEx]
  9525. iNdEx++
  9526. msglen |= int(b&0x7F) << shift
  9527. if b < 0x80 {
  9528. break
  9529. }
  9530. }
  9531. if msglen < 0 {
  9532. return ErrInvalidLengthTypes
  9533. }
  9534. postIndex := iNdEx + msglen
  9535. if postIndex < 0 {
  9536. return ErrInvalidLengthTypes
  9537. }
  9538. if postIndex > l {
  9539. return io.ErrUnexpectedEOF
  9540. }
  9541. v := &RequestInfo{}
  9542. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9543. return err
  9544. }
  9545. m.Value = &Request_Info{v}
  9546. iNdEx = postIndex
  9547. case 5:
  9548. if wireType != 2 {
  9549. return fmt.Errorf("proto: wrong wireType = %d for field SetOption", wireType)
  9550. }
  9551. var msglen int
  9552. for shift := uint(0); ; shift += 7 {
  9553. if shift >= 64 {
  9554. return ErrIntOverflowTypes
  9555. }
  9556. if iNdEx >= l {
  9557. return io.ErrUnexpectedEOF
  9558. }
  9559. b := dAtA[iNdEx]
  9560. iNdEx++
  9561. msglen |= int(b&0x7F) << shift
  9562. if b < 0x80 {
  9563. break
  9564. }
  9565. }
  9566. if msglen < 0 {
  9567. return ErrInvalidLengthTypes
  9568. }
  9569. postIndex := iNdEx + msglen
  9570. if postIndex < 0 {
  9571. return ErrInvalidLengthTypes
  9572. }
  9573. if postIndex > l {
  9574. return io.ErrUnexpectedEOF
  9575. }
  9576. v := &RequestSetOption{}
  9577. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9578. return err
  9579. }
  9580. m.Value = &Request_SetOption{v}
  9581. iNdEx = postIndex
  9582. case 6:
  9583. if wireType != 2 {
  9584. return fmt.Errorf("proto: wrong wireType = %d for field InitChain", wireType)
  9585. }
  9586. var msglen int
  9587. for shift := uint(0); ; shift += 7 {
  9588. if shift >= 64 {
  9589. return ErrIntOverflowTypes
  9590. }
  9591. if iNdEx >= l {
  9592. return io.ErrUnexpectedEOF
  9593. }
  9594. b := dAtA[iNdEx]
  9595. iNdEx++
  9596. msglen |= int(b&0x7F) << shift
  9597. if b < 0x80 {
  9598. break
  9599. }
  9600. }
  9601. if msglen < 0 {
  9602. return ErrInvalidLengthTypes
  9603. }
  9604. postIndex := iNdEx + msglen
  9605. if postIndex < 0 {
  9606. return ErrInvalidLengthTypes
  9607. }
  9608. if postIndex > l {
  9609. return io.ErrUnexpectedEOF
  9610. }
  9611. v := &RequestInitChain{}
  9612. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9613. return err
  9614. }
  9615. m.Value = &Request_InitChain{v}
  9616. iNdEx = postIndex
  9617. case 7:
  9618. if wireType != 2 {
  9619. return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType)
  9620. }
  9621. var msglen int
  9622. for shift := uint(0); ; shift += 7 {
  9623. if shift >= 64 {
  9624. return ErrIntOverflowTypes
  9625. }
  9626. if iNdEx >= l {
  9627. return io.ErrUnexpectedEOF
  9628. }
  9629. b := dAtA[iNdEx]
  9630. iNdEx++
  9631. msglen |= int(b&0x7F) << shift
  9632. if b < 0x80 {
  9633. break
  9634. }
  9635. }
  9636. if msglen < 0 {
  9637. return ErrInvalidLengthTypes
  9638. }
  9639. postIndex := iNdEx + msglen
  9640. if postIndex < 0 {
  9641. return ErrInvalidLengthTypes
  9642. }
  9643. if postIndex > l {
  9644. return io.ErrUnexpectedEOF
  9645. }
  9646. v := &RequestQuery{}
  9647. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9648. return err
  9649. }
  9650. m.Value = &Request_Query{v}
  9651. iNdEx = postIndex
  9652. case 8:
  9653. if wireType != 2 {
  9654. return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType)
  9655. }
  9656. var msglen int
  9657. for shift := uint(0); ; shift += 7 {
  9658. if shift >= 64 {
  9659. return ErrIntOverflowTypes
  9660. }
  9661. if iNdEx >= l {
  9662. return io.ErrUnexpectedEOF
  9663. }
  9664. b := dAtA[iNdEx]
  9665. iNdEx++
  9666. msglen |= int(b&0x7F) << shift
  9667. if b < 0x80 {
  9668. break
  9669. }
  9670. }
  9671. if msglen < 0 {
  9672. return ErrInvalidLengthTypes
  9673. }
  9674. postIndex := iNdEx + msglen
  9675. if postIndex < 0 {
  9676. return ErrInvalidLengthTypes
  9677. }
  9678. if postIndex > l {
  9679. return io.ErrUnexpectedEOF
  9680. }
  9681. v := &RequestBeginBlock{}
  9682. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9683. return err
  9684. }
  9685. m.Value = &Request_BeginBlock{v}
  9686. iNdEx = postIndex
  9687. case 9:
  9688. if wireType != 2 {
  9689. return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType)
  9690. }
  9691. var msglen int
  9692. for shift := uint(0); ; shift += 7 {
  9693. if shift >= 64 {
  9694. return ErrIntOverflowTypes
  9695. }
  9696. if iNdEx >= l {
  9697. return io.ErrUnexpectedEOF
  9698. }
  9699. b := dAtA[iNdEx]
  9700. iNdEx++
  9701. msglen |= int(b&0x7F) << shift
  9702. if b < 0x80 {
  9703. break
  9704. }
  9705. }
  9706. if msglen < 0 {
  9707. return ErrInvalidLengthTypes
  9708. }
  9709. postIndex := iNdEx + msglen
  9710. if postIndex < 0 {
  9711. return ErrInvalidLengthTypes
  9712. }
  9713. if postIndex > l {
  9714. return io.ErrUnexpectedEOF
  9715. }
  9716. v := &RequestCheckTx{}
  9717. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9718. return err
  9719. }
  9720. m.Value = &Request_CheckTx{v}
  9721. iNdEx = postIndex
  9722. case 11:
  9723. if wireType != 2 {
  9724. return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType)
  9725. }
  9726. var msglen int
  9727. for shift := uint(0); ; shift += 7 {
  9728. if shift >= 64 {
  9729. return ErrIntOverflowTypes
  9730. }
  9731. if iNdEx >= l {
  9732. return io.ErrUnexpectedEOF
  9733. }
  9734. b := dAtA[iNdEx]
  9735. iNdEx++
  9736. msglen |= int(b&0x7F) << shift
  9737. if b < 0x80 {
  9738. break
  9739. }
  9740. }
  9741. if msglen < 0 {
  9742. return ErrInvalidLengthTypes
  9743. }
  9744. postIndex := iNdEx + msglen
  9745. if postIndex < 0 {
  9746. return ErrInvalidLengthTypes
  9747. }
  9748. if postIndex > l {
  9749. return io.ErrUnexpectedEOF
  9750. }
  9751. v := &RequestEndBlock{}
  9752. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9753. return err
  9754. }
  9755. m.Value = &Request_EndBlock{v}
  9756. iNdEx = postIndex
  9757. case 12:
  9758. if wireType != 2 {
  9759. return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType)
  9760. }
  9761. var msglen int
  9762. for shift := uint(0); ; shift += 7 {
  9763. if shift >= 64 {
  9764. return ErrIntOverflowTypes
  9765. }
  9766. if iNdEx >= l {
  9767. return io.ErrUnexpectedEOF
  9768. }
  9769. b := dAtA[iNdEx]
  9770. iNdEx++
  9771. msglen |= int(b&0x7F) << shift
  9772. if b < 0x80 {
  9773. break
  9774. }
  9775. }
  9776. if msglen < 0 {
  9777. return ErrInvalidLengthTypes
  9778. }
  9779. postIndex := iNdEx + msglen
  9780. if postIndex < 0 {
  9781. return ErrInvalidLengthTypes
  9782. }
  9783. if postIndex > l {
  9784. return io.ErrUnexpectedEOF
  9785. }
  9786. v := &RequestCommit{}
  9787. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9788. return err
  9789. }
  9790. m.Value = &Request_Commit{v}
  9791. iNdEx = postIndex
  9792. case 19:
  9793. if wireType != 2 {
  9794. return fmt.Errorf("proto: wrong wireType = %d for field DeliverTx", wireType)
  9795. }
  9796. var msglen int
  9797. for shift := uint(0); ; shift += 7 {
  9798. if shift >= 64 {
  9799. return ErrIntOverflowTypes
  9800. }
  9801. if iNdEx >= l {
  9802. return io.ErrUnexpectedEOF
  9803. }
  9804. b := dAtA[iNdEx]
  9805. iNdEx++
  9806. msglen |= int(b&0x7F) << shift
  9807. if b < 0x80 {
  9808. break
  9809. }
  9810. }
  9811. if msglen < 0 {
  9812. return ErrInvalidLengthTypes
  9813. }
  9814. postIndex := iNdEx + msglen
  9815. if postIndex < 0 {
  9816. return ErrInvalidLengthTypes
  9817. }
  9818. if postIndex > l {
  9819. return io.ErrUnexpectedEOF
  9820. }
  9821. v := &RequestDeliverTx{}
  9822. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9823. return err
  9824. }
  9825. m.Value = &Request_DeliverTx{v}
  9826. iNdEx = postIndex
  9827. default:
  9828. iNdEx = preIndex
  9829. skippy, err := skipTypes(dAtA[iNdEx:])
  9830. if err != nil {
  9831. return err
  9832. }
  9833. if skippy < 0 {
  9834. return ErrInvalidLengthTypes
  9835. }
  9836. if (iNdEx + skippy) < 0 {
  9837. return ErrInvalidLengthTypes
  9838. }
  9839. if (iNdEx + skippy) > l {
  9840. return io.ErrUnexpectedEOF
  9841. }
  9842. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  9843. iNdEx += skippy
  9844. }
  9845. }
  9846. if iNdEx > l {
  9847. return io.ErrUnexpectedEOF
  9848. }
  9849. return nil
  9850. }
  9851. func (m *RequestEcho) Unmarshal(dAtA []byte) error {
  9852. l := len(dAtA)
  9853. iNdEx := 0
  9854. for iNdEx < l {
  9855. preIndex := iNdEx
  9856. var wire uint64
  9857. for shift := uint(0); ; shift += 7 {
  9858. if shift >= 64 {
  9859. return ErrIntOverflowTypes
  9860. }
  9861. if iNdEx >= l {
  9862. return io.ErrUnexpectedEOF
  9863. }
  9864. b := dAtA[iNdEx]
  9865. iNdEx++
  9866. wire |= uint64(b&0x7F) << shift
  9867. if b < 0x80 {
  9868. break
  9869. }
  9870. }
  9871. fieldNum := int32(wire >> 3)
  9872. wireType := int(wire & 0x7)
  9873. if wireType == 4 {
  9874. return fmt.Errorf("proto: RequestEcho: wiretype end group for non-group")
  9875. }
  9876. if fieldNum <= 0 {
  9877. return fmt.Errorf("proto: RequestEcho: illegal tag %d (wire type %d)", fieldNum, wire)
  9878. }
  9879. switch fieldNum {
  9880. case 1:
  9881. if wireType != 2 {
  9882. return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
  9883. }
  9884. var stringLen uint64
  9885. for shift := uint(0); ; shift += 7 {
  9886. if shift >= 64 {
  9887. return ErrIntOverflowTypes
  9888. }
  9889. if iNdEx >= l {
  9890. return io.ErrUnexpectedEOF
  9891. }
  9892. b := dAtA[iNdEx]
  9893. iNdEx++
  9894. stringLen |= uint64(b&0x7F) << shift
  9895. if b < 0x80 {
  9896. break
  9897. }
  9898. }
  9899. intStringLen := int(stringLen)
  9900. if intStringLen < 0 {
  9901. return ErrInvalidLengthTypes
  9902. }
  9903. postIndex := iNdEx + intStringLen
  9904. if postIndex < 0 {
  9905. return ErrInvalidLengthTypes
  9906. }
  9907. if postIndex > l {
  9908. return io.ErrUnexpectedEOF
  9909. }
  9910. m.Message = string(dAtA[iNdEx:postIndex])
  9911. iNdEx = postIndex
  9912. default:
  9913. iNdEx = preIndex
  9914. skippy, err := skipTypes(dAtA[iNdEx:])
  9915. if err != nil {
  9916. return err
  9917. }
  9918. if skippy < 0 {
  9919. return ErrInvalidLengthTypes
  9920. }
  9921. if (iNdEx + skippy) < 0 {
  9922. return ErrInvalidLengthTypes
  9923. }
  9924. if (iNdEx + skippy) > l {
  9925. return io.ErrUnexpectedEOF
  9926. }
  9927. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  9928. iNdEx += skippy
  9929. }
  9930. }
  9931. if iNdEx > l {
  9932. return io.ErrUnexpectedEOF
  9933. }
  9934. return nil
  9935. }
  9936. func (m *RequestFlush) Unmarshal(dAtA []byte) error {
  9937. l := len(dAtA)
  9938. iNdEx := 0
  9939. for iNdEx < l {
  9940. preIndex := iNdEx
  9941. var wire uint64
  9942. for shift := uint(0); ; shift += 7 {
  9943. if shift >= 64 {
  9944. return ErrIntOverflowTypes
  9945. }
  9946. if iNdEx >= l {
  9947. return io.ErrUnexpectedEOF
  9948. }
  9949. b := dAtA[iNdEx]
  9950. iNdEx++
  9951. wire |= uint64(b&0x7F) << shift
  9952. if b < 0x80 {
  9953. break
  9954. }
  9955. }
  9956. fieldNum := int32(wire >> 3)
  9957. wireType := int(wire & 0x7)
  9958. if wireType == 4 {
  9959. return fmt.Errorf("proto: RequestFlush: wiretype end group for non-group")
  9960. }
  9961. if fieldNum <= 0 {
  9962. return fmt.Errorf("proto: RequestFlush: illegal tag %d (wire type %d)", fieldNum, wire)
  9963. }
  9964. switch fieldNum {
  9965. default:
  9966. iNdEx = preIndex
  9967. skippy, err := skipTypes(dAtA[iNdEx:])
  9968. if err != nil {
  9969. return err
  9970. }
  9971. if skippy < 0 {
  9972. return ErrInvalidLengthTypes
  9973. }
  9974. if (iNdEx + skippy) < 0 {
  9975. return ErrInvalidLengthTypes
  9976. }
  9977. if (iNdEx + skippy) > l {
  9978. return io.ErrUnexpectedEOF
  9979. }
  9980. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  9981. iNdEx += skippy
  9982. }
  9983. }
  9984. if iNdEx > l {
  9985. return io.ErrUnexpectedEOF
  9986. }
  9987. return nil
  9988. }
  9989. func (m *RequestInfo) Unmarshal(dAtA []byte) error {
  9990. l := len(dAtA)
  9991. iNdEx := 0
  9992. for iNdEx < l {
  9993. preIndex := iNdEx
  9994. var wire uint64
  9995. for shift := uint(0); ; shift += 7 {
  9996. if shift >= 64 {
  9997. return ErrIntOverflowTypes
  9998. }
  9999. if iNdEx >= l {
  10000. return io.ErrUnexpectedEOF
  10001. }
  10002. b := dAtA[iNdEx]
  10003. iNdEx++
  10004. wire |= uint64(b&0x7F) << shift
  10005. if b < 0x80 {
  10006. break
  10007. }
  10008. }
  10009. fieldNum := int32(wire >> 3)
  10010. wireType := int(wire & 0x7)
  10011. if wireType == 4 {
  10012. return fmt.Errorf("proto: RequestInfo: wiretype end group for non-group")
  10013. }
  10014. if fieldNum <= 0 {
  10015. return fmt.Errorf("proto: RequestInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  10016. }
  10017. switch fieldNum {
  10018. case 1:
  10019. if wireType != 2 {
  10020. return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  10021. }
  10022. var stringLen uint64
  10023. for shift := uint(0); ; shift += 7 {
  10024. if shift >= 64 {
  10025. return ErrIntOverflowTypes
  10026. }
  10027. if iNdEx >= l {
  10028. return io.ErrUnexpectedEOF
  10029. }
  10030. b := dAtA[iNdEx]
  10031. iNdEx++
  10032. stringLen |= uint64(b&0x7F) << shift
  10033. if b < 0x80 {
  10034. break
  10035. }
  10036. }
  10037. intStringLen := int(stringLen)
  10038. if intStringLen < 0 {
  10039. return ErrInvalidLengthTypes
  10040. }
  10041. postIndex := iNdEx + intStringLen
  10042. if postIndex < 0 {
  10043. return ErrInvalidLengthTypes
  10044. }
  10045. if postIndex > l {
  10046. return io.ErrUnexpectedEOF
  10047. }
  10048. m.Version = string(dAtA[iNdEx:postIndex])
  10049. iNdEx = postIndex
  10050. case 2:
  10051. if wireType != 0 {
  10052. return fmt.Errorf("proto: wrong wireType = %d for field BlockVersion", wireType)
  10053. }
  10054. m.BlockVersion = 0
  10055. for shift := uint(0); ; shift += 7 {
  10056. if shift >= 64 {
  10057. return ErrIntOverflowTypes
  10058. }
  10059. if iNdEx >= l {
  10060. return io.ErrUnexpectedEOF
  10061. }
  10062. b := dAtA[iNdEx]
  10063. iNdEx++
  10064. m.BlockVersion |= uint64(b&0x7F) << shift
  10065. if b < 0x80 {
  10066. break
  10067. }
  10068. }
  10069. case 3:
  10070. if wireType != 0 {
  10071. return fmt.Errorf("proto: wrong wireType = %d for field P2PVersion", wireType)
  10072. }
  10073. m.P2PVersion = 0
  10074. for shift := uint(0); ; shift += 7 {
  10075. if shift >= 64 {
  10076. return ErrIntOverflowTypes
  10077. }
  10078. if iNdEx >= l {
  10079. return io.ErrUnexpectedEOF
  10080. }
  10081. b := dAtA[iNdEx]
  10082. iNdEx++
  10083. m.P2PVersion |= uint64(b&0x7F) << shift
  10084. if b < 0x80 {
  10085. break
  10086. }
  10087. }
  10088. default:
  10089. iNdEx = preIndex
  10090. skippy, err := skipTypes(dAtA[iNdEx:])
  10091. if err != nil {
  10092. return err
  10093. }
  10094. if skippy < 0 {
  10095. return ErrInvalidLengthTypes
  10096. }
  10097. if (iNdEx + skippy) < 0 {
  10098. return ErrInvalidLengthTypes
  10099. }
  10100. if (iNdEx + skippy) > l {
  10101. return io.ErrUnexpectedEOF
  10102. }
  10103. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10104. iNdEx += skippy
  10105. }
  10106. }
  10107. if iNdEx > l {
  10108. return io.ErrUnexpectedEOF
  10109. }
  10110. return nil
  10111. }
  10112. func (m *RequestSetOption) Unmarshal(dAtA []byte) error {
  10113. l := len(dAtA)
  10114. iNdEx := 0
  10115. for iNdEx < l {
  10116. preIndex := iNdEx
  10117. var wire uint64
  10118. for shift := uint(0); ; shift += 7 {
  10119. if shift >= 64 {
  10120. return ErrIntOverflowTypes
  10121. }
  10122. if iNdEx >= l {
  10123. return io.ErrUnexpectedEOF
  10124. }
  10125. b := dAtA[iNdEx]
  10126. iNdEx++
  10127. wire |= uint64(b&0x7F) << shift
  10128. if b < 0x80 {
  10129. break
  10130. }
  10131. }
  10132. fieldNum := int32(wire >> 3)
  10133. wireType := int(wire & 0x7)
  10134. if wireType == 4 {
  10135. return fmt.Errorf("proto: RequestSetOption: wiretype end group for non-group")
  10136. }
  10137. if fieldNum <= 0 {
  10138. return fmt.Errorf("proto: RequestSetOption: illegal tag %d (wire type %d)", fieldNum, wire)
  10139. }
  10140. switch fieldNum {
  10141. case 1:
  10142. if wireType != 2 {
  10143. return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  10144. }
  10145. var stringLen uint64
  10146. for shift := uint(0); ; shift += 7 {
  10147. if shift >= 64 {
  10148. return ErrIntOverflowTypes
  10149. }
  10150. if iNdEx >= l {
  10151. return io.ErrUnexpectedEOF
  10152. }
  10153. b := dAtA[iNdEx]
  10154. iNdEx++
  10155. stringLen |= uint64(b&0x7F) << shift
  10156. if b < 0x80 {
  10157. break
  10158. }
  10159. }
  10160. intStringLen := int(stringLen)
  10161. if intStringLen < 0 {
  10162. return ErrInvalidLengthTypes
  10163. }
  10164. postIndex := iNdEx + intStringLen
  10165. if postIndex < 0 {
  10166. return ErrInvalidLengthTypes
  10167. }
  10168. if postIndex > l {
  10169. return io.ErrUnexpectedEOF
  10170. }
  10171. m.Key = string(dAtA[iNdEx:postIndex])
  10172. iNdEx = postIndex
  10173. case 2:
  10174. if wireType != 2 {
  10175. return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  10176. }
  10177. var stringLen uint64
  10178. for shift := uint(0); ; shift += 7 {
  10179. if shift >= 64 {
  10180. return ErrIntOverflowTypes
  10181. }
  10182. if iNdEx >= l {
  10183. return io.ErrUnexpectedEOF
  10184. }
  10185. b := dAtA[iNdEx]
  10186. iNdEx++
  10187. stringLen |= uint64(b&0x7F) << shift
  10188. if b < 0x80 {
  10189. break
  10190. }
  10191. }
  10192. intStringLen := int(stringLen)
  10193. if intStringLen < 0 {
  10194. return ErrInvalidLengthTypes
  10195. }
  10196. postIndex := iNdEx + intStringLen
  10197. if postIndex < 0 {
  10198. return ErrInvalidLengthTypes
  10199. }
  10200. if postIndex > l {
  10201. return io.ErrUnexpectedEOF
  10202. }
  10203. m.Value = string(dAtA[iNdEx:postIndex])
  10204. iNdEx = postIndex
  10205. default:
  10206. iNdEx = preIndex
  10207. skippy, err := skipTypes(dAtA[iNdEx:])
  10208. if err != nil {
  10209. return err
  10210. }
  10211. if skippy < 0 {
  10212. return ErrInvalidLengthTypes
  10213. }
  10214. if (iNdEx + skippy) < 0 {
  10215. return ErrInvalidLengthTypes
  10216. }
  10217. if (iNdEx + skippy) > l {
  10218. return io.ErrUnexpectedEOF
  10219. }
  10220. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10221. iNdEx += skippy
  10222. }
  10223. }
  10224. if iNdEx > l {
  10225. return io.ErrUnexpectedEOF
  10226. }
  10227. return nil
  10228. }
  10229. func (m *RequestInitChain) Unmarshal(dAtA []byte) error {
  10230. l := len(dAtA)
  10231. iNdEx := 0
  10232. for iNdEx < l {
  10233. preIndex := iNdEx
  10234. var wire uint64
  10235. for shift := uint(0); ; shift += 7 {
  10236. if shift >= 64 {
  10237. return ErrIntOverflowTypes
  10238. }
  10239. if iNdEx >= l {
  10240. return io.ErrUnexpectedEOF
  10241. }
  10242. b := dAtA[iNdEx]
  10243. iNdEx++
  10244. wire |= uint64(b&0x7F) << shift
  10245. if b < 0x80 {
  10246. break
  10247. }
  10248. }
  10249. fieldNum := int32(wire >> 3)
  10250. wireType := int(wire & 0x7)
  10251. if wireType == 4 {
  10252. return fmt.Errorf("proto: RequestInitChain: wiretype end group for non-group")
  10253. }
  10254. if fieldNum <= 0 {
  10255. return fmt.Errorf("proto: RequestInitChain: illegal tag %d (wire type %d)", fieldNum, wire)
  10256. }
  10257. switch fieldNum {
  10258. case 1:
  10259. if wireType != 2 {
  10260. return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
  10261. }
  10262. var msglen int
  10263. for shift := uint(0); ; shift += 7 {
  10264. if shift >= 64 {
  10265. return ErrIntOverflowTypes
  10266. }
  10267. if iNdEx >= l {
  10268. return io.ErrUnexpectedEOF
  10269. }
  10270. b := dAtA[iNdEx]
  10271. iNdEx++
  10272. msglen |= int(b&0x7F) << shift
  10273. if b < 0x80 {
  10274. break
  10275. }
  10276. }
  10277. if msglen < 0 {
  10278. return ErrInvalidLengthTypes
  10279. }
  10280. postIndex := iNdEx + msglen
  10281. if postIndex < 0 {
  10282. return ErrInvalidLengthTypes
  10283. }
  10284. if postIndex > l {
  10285. return io.ErrUnexpectedEOF
  10286. }
  10287. if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil {
  10288. return err
  10289. }
  10290. iNdEx = postIndex
  10291. case 2:
  10292. if wireType != 2 {
  10293. return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType)
  10294. }
  10295. var stringLen uint64
  10296. for shift := uint(0); ; shift += 7 {
  10297. if shift >= 64 {
  10298. return ErrIntOverflowTypes
  10299. }
  10300. if iNdEx >= l {
  10301. return io.ErrUnexpectedEOF
  10302. }
  10303. b := dAtA[iNdEx]
  10304. iNdEx++
  10305. stringLen |= uint64(b&0x7F) << shift
  10306. if b < 0x80 {
  10307. break
  10308. }
  10309. }
  10310. intStringLen := int(stringLen)
  10311. if intStringLen < 0 {
  10312. return ErrInvalidLengthTypes
  10313. }
  10314. postIndex := iNdEx + intStringLen
  10315. if postIndex < 0 {
  10316. return ErrInvalidLengthTypes
  10317. }
  10318. if postIndex > l {
  10319. return io.ErrUnexpectedEOF
  10320. }
  10321. m.ChainId = string(dAtA[iNdEx:postIndex])
  10322. iNdEx = postIndex
  10323. case 3:
  10324. if wireType != 2 {
  10325. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParams", wireType)
  10326. }
  10327. var msglen int
  10328. for shift := uint(0); ; shift += 7 {
  10329. if shift >= 64 {
  10330. return ErrIntOverflowTypes
  10331. }
  10332. if iNdEx >= l {
  10333. return io.ErrUnexpectedEOF
  10334. }
  10335. b := dAtA[iNdEx]
  10336. iNdEx++
  10337. msglen |= int(b&0x7F) << shift
  10338. if b < 0x80 {
  10339. break
  10340. }
  10341. }
  10342. if msglen < 0 {
  10343. return ErrInvalidLengthTypes
  10344. }
  10345. postIndex := iNdEx + msglen
  10346. if postIndex < 0 {
  10347. return ErrInvalidLengthTypes
  10348. }
  10349. if postIndex > l {
  10350. return io.ErrUnexpectedEOF
  10351. }
  10352. if m.ConsensusParams == nil {
  10353. m.ConsensusParams = &ConsensusParams{}
  10354. }
  10355. if err := m.ConsensusParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10356. return err
  10357. }
  10358. iNdEx = postIndex
  10359. case 4:
  10360. if wireType != 2 {
  10361. return fmt.Errorf("proto: wrong wireType = %d for field Validators", wireType)
  10362. }
  10363. var msglen int
  10364. for shift := uint(0); ; shift += 7 {
  10365. if shift >= 64 {
  10366. return ErrIntOverflowTypes
  10367. }
  10368. if iNdEx >= l {
  10369. return io.ErrUnexpectedEOF
  10370. }
  10371. b := dAtA[iNdEx]
  10372. iNdEx++
  10373. msglen |= int(b&0x7F) << shift
  10374. if b < 0x80 {
  10375. break
  10376. }
  10377. }
  10378. if msglen < 0 {
  10379. return ErrInvalidLengthTypes
  10380. }
  10381. postIndex := iNdEx + msglen
  10382. if postIndex < 0 {
  10383. return ErrInvalidLengthTypes
  10384. }
  10385. if postIndex > l {
  10386. return io.ErrUnexpectedEOF
  10387. }
  10388. m.Validators = append(m.Validators, ValidatorUpdate{})
  10389. if err := m.Validators[len(m.Validators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10390. return err
  10391. }
  10392. iNdEx = postIndex
  10393. case 5:
  10394. if wireType != 2 {
  10395. return fmt.Errorf("proto: wrong wireType = %d for field AppStateBytes", wireType)
  10396. }
  10397. var byteLen int
  10398. for shift := uint(0); ; shift += 7 {
  10399. if shift >= 64 {
  10400. return ErrIntOverflowTypes
  10401. }
  10402. if iNdEx >= l {
  10403. return io.ErrUnexpectedEOF
  10404. }
  10405. b := dAtA[iNdEx]
  10406. iNdEx++
  10407. byteLen |= int(b&0x7F) << shift
  10408. if b < 0x80 {
  10409. break
  10410. }
  10411. }
  10412. if byteLen < 0 {
  10413. return ErrInvalidLengthTypes
  10414. }
  10415. postIndex := iNdEx + byteLen
  10416. if postIndex < 0 {
  10417. return ErrInvalidLengthTypes
  10418. }
  10419. if postIndex > l {
  10420. return io.ErrUnexpectedEOF
  10421. }
  10422. m.AppStateBytes = append(m.AppStateBytes[:0], dAtA[iNdEx:postIndex]...)
  10423. if m.AppStateBytes == nil {
  10424. m.AppStateBytes = []byte{}
  10425. }
  10426. iNdEx = postIndex
  10427. default:
  10428. iNdEx = preIndex
  10429. skippy, err := skipTypes(dAtA[iNdEx:])
  10430. if err != nil {
  10431. return err
  10432. }
  10433. if skippy < 0 {
  10434. return ErrInvalidLengthTypes
  10435. }
  10436. if (iNdEx + skippy) < 0 {
  10437. return ErrInvalidLengthTypes
  10438. }
  10439. if (iNdEx + skippy) > l {
  10440. return io.ErrUnexpectedEOF
  10441. }
  10442. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10443. iNdEx += skippy
  10444. }
  10445. }
  10446. if iNdEx > l {
  10447. return io.ErrUnexpectedEOF
  10448. }
  10449. return nil
  10450. }
  10451. func (m *RequestQuery) Unmarshal(dAtA []byte) error {
  10452. l := len(dAtA)
  10453. iNdEx := 0
  10454. for iNdEx < l {
  10455. preIndex := iNdEx
  10456. var wire uint64
  10457. for shift := uint(0); ; shift += 7 {
  10458. if shift >= 64 {
  10459. return ErrIntOverflowTypes
  10460. }
  10461. if iNdEx >= l {
  10462. return io.ErrUnexpectedEOF
  10463. }
  10464. b := dAtA[iNdEx]
  10465. iNdEx++
  10466. wire |= uint64(b&0x7F) << shift
  10467. if b < 0x80 {
  10468. break
  10469. }
  10470. }
  10471. fieldNum := int32(wire >> 3)
  10472. wireType := int(wire & 0x7)
  10473. if wireType == 4 {
  10474. return fmt.Errorf("proto: RequestQuery: wiretype end group for non-group")
  10475. }
  10476. if fieldNum <= 0 {
  10477. return fmt.Errorf("proto: RequestQuery: illegal tag %d (wire type %d)", fieldNum, wire)
  10478. }
  10479. switch fieldNum {
  10480. case 1:
  10481. if wireType != 2 {
  10482. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  10483. }
  10484. var byteLen int
  10485. for shift := uint(0); ; shift += 7 {
  10486. if shift >= 64 {
  10487. return ErrIntOverflowTypes
  10488. }
  10489. if iNdEx >= l {
  10490. return io.ErrUnexpectedEOF
  10491. }
  10492. b := dAtA[iNdEx]
  10493. iNdEx++
  10494. byteLen |= int(b&0x7F) << shift
  10495. if b < 0x80 {
  10496. break
  10497. }
  10498. }
  10499. if byteLen < 0 {
  10500. return ErrInvalidLengthTypes
  10501. }
  10502. postIndex := iNdEx + byteLen
  10503. if postIndex < 0 {
  10504. return ErrInvalidLengthTypes
  10505. }
  10506. if postIndex > l {
  10507. return io.ErrUnexpectedEOF
  10508. }
  10509. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  10510. if m.Data == nil {
  10511. m.Data = []byte{}
  10512. }
  10513. iNdEx = postIndex
  10514. case 2:
  10515. if wireType != 2 {
  10516. return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
  10517. }
  10518. var stringLen uint64
  10519. for shift := uint(0); ; shift += 7 {
  10520. if shift >= 64 {
  10521. return ErrIntOverflowTypes
  10522. }
  10523. if iNdEx >= l {
  10524. return io.ErrUnexpectedEOF
  10525. }
  10526. b := dAtA[iNdEx]
  10527. iNdEx++
  10528. stringLen |= uint64(b&0x7F) << shift
  10529. if b < 0x80 {
  10530. break
  10531. }
  10532. }
  10533. intStringLen := int(stringLen)
  10534. if intStringLen < 0 {
  10535. return ErrInvalidLengthTypes
  10536. }
  10537. postIndex := iNdEx + intStringLen
  10538. if postIndex < 0 {
  10539. return ErrInvalidLengthTypes
  10540. }
  10541. if postIndex > l {
  10542. return io.ErrUnexpectedEOF
  10543. }
  10544. m.Path = string(dAtA[iNdEx:postIndex])
  10545. iNdEx = postIndex
  10546. case 3:
  10547. if wireType != 0 {
  10548. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  10549. }
  10550. m.Height = 0
  10551. for shift := uint(0); ; shift += 7 {
  10552. if shift >= 64 {
  10553. return ErrIntOverflowTypes
  10554. }
  10555. if iNdEx >= l {
  10556. return io.ErrUnexpectedEOF
  10557. }
  10558. b := dAtA[iNdEx]
  10559. iNdEx++
  10560. m.Height |= int64(b&0x7F) << shift
  10561. if b < 0x80 {
  10562. break
  10563. }
  10564. }
  10565. case 4:
  10566. if wireType != 0 {
  10567. return fmt.Errorf("proto: wrong wireType = %d for field Prove", wireType)
  10568. }
  10569. var v int
  10570. for shift := uint(0); ; shift += 7 {
  10571. if shift >= 64 {
  10572. return ErrIntOverflowTypes
  10573. }
  10574. if iNdEx >= l {
  10575. return io.ErrUnexpectedEOF
  10576. }
  10577. b := dAtA[iNdEx]
  10578. iNdEx++
  10579. v |= int(b&0x7F) << shift
  10580. if b < 0x80 {
  10581. break
  10582. }
  10583. }
  10584. m.Prove = bool(v != 0)
  10585. default:
  10586. iNdEx = preIndex
  10587. skippy, err := skipTypes(dAtA[iNdEx:])
  10588. if err != nil {
  10589. return err
  10590. }
  10591. if skippy < 0 {
  10592. return ErrInvalidLengthTypes
  10593. }
  10594. if (iNdEx + skippy) < 0 {
  10595. return ErrInvalidLengthTypes
  10596. }
  10597. if (iNdEx + skippy) > l {
  10598. return io.ErrUnexpectedEOF
  10599. }
  10600. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10601. iNdEx += skippy
  10602. }
  10603. }
  10604. if iNdEx > l {
  10605. return io.ErrUnexpectedEOF
  10606. }
  10607. return nil
  10608. }
  10609. func (m *RequestBeginBlock) Unmarshal(dAtA []byte) error {
  10610. l := len(dAtA)
  10611. iNdEx := 0
  10612. for iNdEx < l {
  10613. preIndex := iNdEx
  10614. var wire uint64
  10615. for shift := uint(0); ; shift += 7 {
  10616. if shift >= 64 {
  10617. return ErrIntOverflowTypes
  10618. }
  10619. if iNdEx >= l {
  10620. return io.ErrUnexpectedEOF
  10621. }
  10622. b := dAtA[iNdEx]
  10623. iNdEx++
  10624. wire |= uint64(b&0x7F) << shift
  10625. if b < 0x80 {
  10626. break
  10627. }
  10628. }
  10629. fieldNum := int32(wire >> 3)
  10630. wireType := int(wire & 0x7)
  10631. if wireType == 4 {
  10632. return fmt.Errorf("proto: RequestBeginBlock: wiretype end group for non-group")
  10633. }
  10634. if fieldNum <= 0 {
  10635. return fmt.Errorf("proto: RequestBeginBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  10636. }
  10637. switch fieldNum {
  10638. case 1:
  10639. if wireType != 2 {
  10640. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  10641. }
  10642. var byteLen int
  10643. for shift := uint(0); ; shift += 7 {
  10644. if shift >= 64 {
  10645. return ErrIntOverflowTypes
  10646. }
  10647. if iNdEx >= l {
  10648. return io.ErrUnexpectedEOF
  10649. }
  10650. b := dAtA[iNdEx]
  10651. iNdEx++
  10652. byteLen |= int(b&0x7F) << shift
  10653. if b < 0x80 {
  10654. break
  10655. }
  10656. }
  10657. if byteLen < 0 {
  10658. return ErrInvalidLengthTypes
  10659. }
  10660. postIndex := iNdEx + byteLen
  10661. if postIndex < 0 {
  10662. return ErrInvalidLengthTypes
  10663. }
  10664. if postIndex > l {
  10665. return io.ErrUnexpectedEOF
  10666. }
  10667. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  10668. if m.Hash == nil {
  10669. m.Hash = []byte{}
  10670. }
  10671. iNdEx = postIndex
  10672. case 2:
  10673. if wireType != 2 {
  10674. return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType)
  10675. }
  10676. var msglen int
  10677. for shift := uint(0); ; shift += 7 {
  10678. if shift >= 64 {
  10679. return ErrIntOverflowTypes
  10680. }
  10681. if iNdEx >= l {
  10682. return io.ErrUnexpectedEOF
  10683. }
  10684. b := dAtA[iNdEx]
  10685. iNdEx++
  10686. msglen |= int(b&0x7F) << shift
  10687. if b < 0x80 {
  10688. break
  10689. }
  10690. }
  10691. if msglen < 0 {
  10692. return ErrInvalidLengthTypes
  10693. }
  10694. postIndex := iNdEx + msglen
  10695. if postIndex < 0 {
  10696. return ErrInvalidLengthTypes
  10697. }
  10698. if postIndex > l {
  10699. return io.ErrUnexpectedEOF
  10700. }
  10701. if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10702. return err
  10703. }
  10704. iNdEx = postIndex
  10705. case 3:
  10706. if wireType != 2 {
  10707. return fmt.Errorf("proto: wrong wireType = %d for field LastCommitInfo", wireType)
  10708. }
  10709. var msglen int
  10710. for shift := uint(0); ; shift += 7 {
  10711. if shift >= 64 {
  10712. return ErrIntOverflowTypes
  10713. }
  10714. if iNdEx >= l {
  10715. return io.ErrUnexpectedEOF
  10716. }
  10717. b := dAtA[iNdEx]
  10718. iNdEx++
  10719. msglen |= int(b&0x7F) << shift
  10720. if b < 0x80 {
  10721. break
  10722. }
  10723. }
  10724. if msglen < 0 {
  10725. return ErrInvalidLengthTypes
  10726. }
  10727. postIndex := iNdEx + msglen
  10728. if postIndex < 0 {
  10729. return ErrInvalidLengthTypes
  10730. }
  10731. if postIndex > l {
  10732. return io.ErrUnexpectedEOF
  10733. }
  10734. if err := m.LastCommitInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10735. return err
  10736. }
  10737. iNdEx = postIndex
  10738. case 4:
  10739. if wireType != 2 {
  10740. return fmt.Errorf("proto: wrong wireType = %d for field ByzantineValidators", wireType)
  10741. }
  10742. var msglen int
  10743. for shift := uint(0); ; shift += 7 {
  10744. if shift >= 64 {
  10745. return ErrIntOverflowTypes
  10746. }
  10747. if iNdEx >= l {
  10748. return io.ErrUnexpectedEOF
  10749. }
  10750. b := dAtA[iNdEx]
  10751. iNdEx++
  10752. msglen |= int(b&0x7F) << shift
  10753. if b < 0x80 {
  10754. break
  10755. }
  10756. }
  10757. if msglen < 0 {
  10758. return ErrInvalidLengthTypes
  10759. }
  10760. postIndex := iNdEx + msglen
  10761. if postIndex < 0 {
  10762. return ErrInvalidLengthTypes
  10763. }
  10764. if postIndex > l {
  10765. return io.ErrUnexpectedEOF
  10766. }
  10767. m.ByzantineValidators = append(m.ByzantineValidators, Evidence{})
  10768. if err := m.ByzantineValidators[len(m.ByzantineValidators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10769. return err
  10770. }
  10771. iNdEx = postIndex
  10772. default:
  10773. iNdEx = preIndex
  10774. skippy, err := skipTypes(dAtA[iNdEx:])
  10775. if err != nil {
  10776. return err
  10777. }
  10778. if skippy < 0 {
  10779. return ErrInvalidLengthTypes
  10780. }
  10781. if (iNdEx + skippy) < 0 {
  10782. return ErrInvalidLengthTypes
  10783. }
  10784. if (iNdEx + skippy) > l {
  10785. return io.ErrUnexpectedEOF
  10786. }
  10787. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10788. iNdEx += skippy
  10789. }
  10790. }
  10791. if iNdEx > l {
  10792. return io.ErrUnexpectedEOF
  10793. }
  10794. return nil
  10795. }
  10796. func (m *RequestCheckTx) Unmarshal(dAtA []byte) error {
  10797. l := len(dAtA)
  10798. iNdEx := 0
  10799. for iNdEx < l {
  10800. preIndex := iNdEx
  10801. var wire uint64
  10802. for shift := uint(0); ; shift += 7 {
  10803. if shift >= 64 {
  10804. return ErrIntOverflowTypes
  10805. }
  10806. if iNdEx >= l {
  10807. return io.ErrUnexpectedEOF
  10808. }
  10809. b := dAtA[iNdEx]
  10810. iNdEx++
  10811. wire |= uint64(b&0x7F) << shift
  10812. if b < 0x80 {
  10813. break
  10814. }
  10815. }
  10816. fieldNum := int32(wire >> 3)
  10817. wireType := int(wire & 0x7)
  10818. if wireType == 4 {
  10819. return fmt.Errorf("proto: RequestCheckTx: wiretype end group for non-group")
  10820. }
  10821. if fieldNum <= 0 {
  10822. return fmt.Errorf("proto: RequestCheckTx: illegal tag %d (wire type %d)", fieldNum, wire)
  10823. }
  10824. switch fieldNum {
  10825. case 1:
  10826. if wireType != 2 {
  10827. return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType)
  10828. }
  10829. var byteLen int
  10830. for shift := uint(0); ; shift += 7 {
  10831. if shift >= 64 {
  10832. return ErrIntOverflowTypes
  10833. }
  10834. if iNdEx >= l {
  10835. return io.ErrUnexpectedEOF
  10836. }
  10837. b := dAtA[iNdEx]
  10838. iNdEx++
  10839. byteLen |= int(b&0x7F) << shift
  10840. if b < 0x80 {
  10841. break
  10842. }
  10843. }
  10844. if byteLen < 0 {
  10845. return ErrInvalidLengthTypes
  10846. }
  10847. postIndex := iNdEx + byteLen
  10848. if postIndex < 0 {
  10849. return ErrInvalidLengthTypes
  10850. }
  10851. if postIndex > l {
  10852. return io.ErrUnexpectedEOF
  10853. }
  10854. m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...)
  10855. if m.Tx == nil {
  10856. m.Tx = []byte{}
  10857. }
  10858. iNdEx = postIndex
  10859. case 2:
  10860. if wireType != 0 {
  10861. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  10862. }
  10863. m.Type = 0
  10864. for shift := uint(0); ; shift += 7 {
  10865. if shift >= 64 {
  10866. return ErrIntOverflowTypes
  10867. }
  10868. if iNdEx >= l {
  10869. return io.ErrUnexpectedEOF
  10870. }
  10871. b := dAtA[iNdEx]
  10872. iNdEx++
  10873. m.Type |= CheckTxType(b&0x7F) << shift
  10874. if b < 0x80 {
  10875. break
  10876. }
  10877. }
  10878. default:
  10879. iNdEx = preIndex
  10880. skippy, err := skipTypes(dAtA[iNdEx:])
  10881. if err != nil {
  10882. return err
  10883. }
  10884. if skippy < 0 {
  10885. return ErrInvalidLengthTypes
  10886. }
  10887. if (iNdEx + skippy) < 0 {
  10888. return ErrInvalidLengthTypes
  10889. }
  10890. if (iNdEx + skippy) > l {
  10891. return io.ErrUnexpectedEOF
  10892. }
  10893. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10894. iNdEx += skippy
  10895. }
  10896. }
  10897. if iNdEx > l {
  10898. return io.ErrUnexpectedEOF
  10899. }
  10900. return nil
  10901. }
  10902. func (m *RequestDeliverTx) Unmarshal(dAtA []byte) error {
  10903. l := len(dAtA)
  10904. iNdEx := 0
  10905. for iNdEx < l {
  10906. preIndex := iNdEx
  10907. var wire uint64
  10908. for shift := uint(0); ; shift += 7 {
  10909. if shift >= 64 {
  10910. return ErrIntOverflowTypes
  10911. }
  10912. if iNdEx >= l {
  10913. return io.ErrUnexpectedEOF
  10914. }
  10915. b := dAtA[iNdEx]
  10916. iNdEx++
  10917. wire |= uint64(b&0x7F) << shift
  10918. if b < 0x80 {
  10919. break
  10920. }
  10921. }
  10922. fieldNum := int32(wire >> 3)
  10923. wireType := int(wire & 0x7)
  10924. if wireType == 4 {
  10925. return fmt.Errorf("proto: RequestDeliverTx: wiretype end group for non-group")
  10926. }
  10927. if fieldNum <= 0 {
  10928. return fmt.Errorf("proto: RequestDeliverTx: illegal tag %d (wire type %d)", fieldNum, wire)
  10929. }
  10930. switch fieldNum {
  10931. case 1:
  10932. if wireType != 2 {
  10933. return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType)
  10934. }
  10935. var byteLen int
  10936. for shift := uint(0); ; shift += 7 {
  10937. if shift >= 64 {
  10938. return ErrIntOverflowTypes
  10939. }
  10940. if iNdEx >= l {
  10941. return io.ErrUnexpectedEOF
  10942. }
  10943. b := dAtA[iNdEx]
  10944. iNdEx++
  10945. byteLen |= int(b&0x7F) << shift
  10946. if b < 0x80 {
  10947. break
  10948. }
  10949. }
  10950. if byteLen < 0 {
  10951. return ErrInvalidLengthTypes
  10952. }
  10953. postIndex := iNdEx + byteLen
  10954. if postIndex < 0 {
  10955. return ErrInvalidLengthTypes
  10956. }
  10957. if postIndex > l {
  10958. return io.ErrUnexpectedEOF
  10959. }
  10960. m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...)
  10961. if m.Tx == nil {
  10962. m.Tx = []byte{}
  10963. }
  10964. iNdEx = postIndex
  10965. default:
  10966. iNdEx = preIndex
  10967. skippy, err := skipTypes(dAtA[iNdEx:])
  10968. if err != nil {
  10969. return err
  10970. }
  10971. if skippy < 0 {
  10972. return ErrInvalidLengthTypes
  10973. }
  10974. if (iNdEx + skippy) < 0 {
  10975. return ErrInvalidLengthTypes
  10976. }
  10977. if (iNdEx + skippy) > l {
  10978. return io.ErrUnexpectedEOF
  10979. }
  10980. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10981. iNdEx += skippy
  10982. }
  10983. }
  10984. if iNdEx > l {
  10985. return io.ErrUnexpectedEOF
  10986. }
  10987. return nil
  10988. }
  10989. func (m *RequestEndBlock) Unmarshal(dAtA []byte) error {
  10990. l := len(dAtA)
  10991. iNdEx := 0
  10992. for iNdEx < l {
  10993. preIndex := iNdEx
  10994. var wire uint64
  10995. for shift := uint(0); ; shift += 7 {
  10996. if shift >= 64 {
  10997. return ErrIntOverflowTypes
  10998. }
  10999. if iNdEx >= l {
  11000. return io.ErrUnexpectedEOF
  11001. }
  11002. b := dAtA[iNdEx]
  11003. iNdEx++
  11004. wire |= uint64(b&0x7F) << shift
  11005. if b < 0x80 {
  11006. break
  11007. }
  11008. }
  11009. fieldNum := int32(wire >> 3)
  11010. wireType := int(wire & 0x7)
  11011. if wireType == 4 {
  11012. return fmt.Errorf("proto: RequestEndBlock: wiretype end group for non-group")
  11013. }
  11014. if fieldNum <= 0 {
  11015. return fmt.Errorf("proto: RequestEndBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  11016. }
  11017. switch fieldNum {
  11018. case 1:
  11019. if wireType != 0 {
  11020. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  11021. }
  11022. m.Height = 0
  11023. for shift := uint(0); ; shift += 7 {
  11024. if shift >= 64 {
  11025. return ErrIntOverflowTypes
  11026. }
  11027. if iNdEx >= l {
  11028. return io.ErrUnexpectedEOF
  11029. }
  11030. b := dAtA[iNdEx]
  11031. iNdEx++
  11032. m.Height |= int64(b&0x7F) << shift
  11033. if b < 0x80 {
  11034. break
  11035. }
  11036. }
  11037. default:
  11038. iNdEx = preIndex
  11039. skippy, err := skipTypes(dAtA[iNdEx:])
  11040. if err != nil {
  11041. return err
  11042. }
  11043. if skippy < 0 {
  11044. return ErrInvalidLengthTypes
  11045. }
  11046. if (iNdEx + skippy) < 0 {
  11047. return ErrInvalidLengthTypes
  11048. }
  11049. if (iNdEx + skippy) > l {
  11050. return io.ErrUnexpectedEOF
  11051. }
  11052. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11053. iNdEx += skippy
  11054. }
  11055. }
  11056. if iNdEx > l {
  11057. return io.ErrUnexpectedEOF
  11058. }
  11059. return nil
  11060. }
  11061. func (m *RequestCommit) Unmarshal(dAtA []byte) error {
  11062. l := len(dAtA)
  11063. iNdEx := 0
  11064. for iNdEx < l {
  11065. preIndex := iNdEx
  11066. var wire uint64
  11067. for shift := uint(0); ; shift += 7 {
  11068. if shift >= 64 {
  11069. return ErrIntOverflowTypes
  11070. }
  11071. if iNdEx >= l {
  11072. return io.ErrUnexpectedEOF
  11073. }
  11074. b := dAtA[iNdEx]
  11075. iNdEx++
  11076. wire |= uint64(b&0x7F) << shift
  11077. if b < 0x80 {
  11078. break
  11079. }
  11080. }
  11081. fieldNum := int32(wire >> 3)
  11082. wireType := int(wire & 0x7)
  11083. if wireType == 4 {
  11084. return fmt.Errorf("proto: RequestCommit: wiretype end group for non-group")
  11085. }
  11086. if fieldNum <= 0 {
  11087. return fmt.Errorf("proto: RequestCommit: illegal tag %d (wire type %d)", fieldNum, wire)
  11088. }
  11089. switch fieldNum {
  11090. default:
  11091. iNdEx = preIndex
  11092. skippy, err := skipTypes(dAtA[iNdEx:])
  11093. if err != nil {
  11094. return err
  11095. }
  11096. if skippy < 0 {
  11097. return ErrInvalidLengthTypes
  11098. }
  11099. if (iNdEx + skippy) < 0 {
  11100. return ErrInvalidLengthTypes
  11101. }
  11102. if (iNdEx + skippy) > l {
  11103. return io.ErrUnexpectedEOF
  11104. }
  11105. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11106. iNdEx += skippy
  11107. }
  11108. }
  11109. if iNdEx > l {
  11110. return io.ErrUnexpectedEOF
  11111. }
  11112. return nil
  11113. }
  11114. func (m *Response) Unmarshal(dAtA []byte) error {
  11115. l := len(dAtA)
  11116. iNdEx := 0
  11117. for iNdEx < l {
  11118. preIndex := iNdEx
  11119. var wire uint64
  11120. for shift := uint(0); ; shift += 7 {
  11121. if shift >= 64 {
  11122. return ErrIntOverflowTypes
  11123. }
  11124. if iNdEx >= l {
  11125. return io.ErrUnexpectedEOF
  11126. }
  11127. b := dAtA[iNdEx]
  11128. iNdEx++
  11129. wire |= uint64(b&0x7F) << shift
  11130. if b < 0x80 {
  11131. break
  11132. }
  11133. }
  11134. fieldNum := int32(wire >> 3)
  11135. wireType := int(wire & 0x7)
  11136. if wireType == 4 {
  11137. return fmt.Errorf("proto: Response: wiretype end group for non-group")
  11138. }
  11139. if fieldNum <= 0 {
  11140. return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
  11141. }
  11142. switch fieldNum {
  11143. case 1:
  11144. if wireType != 2 {
  11145. return fmt.Errorf("proto: wrong wireType = %d for field Exception", wireType)
  11146. }
  11147. var msglen int
  11148. for shift := uint(0); ; shift += 7 {
  11149. if shift >= 64 {
  11150. return ErrIntOverflowTypes
  11151. }
  11152. if iNdEx >= l {
  11153. return io.ErrUnexpectedEOF
  11154. }
  11155. b := dAtA[iNdEx]
  11156. iNdEx++
  11157. msglen |= int(b&0x7F) << shift
  11158. if b < 0x80 {
  11159. break
  11160. }
  11161. }
  11162. if msglen < 0 {
  11163. return ErrInvalidLengthTypes
  11164. }
  11165. postIndex := iNdEx + msglen
  11166. if postIndex < 0 {
  11167. return ErrInvalidLengthTypes
  11168. }
  11169. if postIndex > l {
  11170. return io.ErrUnexpectedEOF
  11171. }
  11172. v := &ResponseException{}
  11173. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11174. return err
  11175. }
  11176. m.Value = &Response_Exception{v}
  11177. iNdEx = postIndex
  11178. case 2:
  11179. if wireType != 2 {
  11180. return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType)
  11181. }
  11182. var msglen int
  11183. for shift := uint(0); ; shift += 7 {
  11184. if shift >= 64 {
  11185. return ErrIntOverflowTypes
  11186. }
  11187. if iNdEx >= l {
  11188. return io.ErrUnexpectedEOF
  11189. }
  11190. b := dAtA[iNdEx]
  11191. iNdEx++
  11192. msglen |= int(b&0x7F) << shift
  11193. if b < 0x80 {
  11194. break
  11195. }
  11196. }
  11197. if msglen < 0 {
  11198. return ErrInvalidLengthTypes
  11199. }
  11200. postIndex := iNdEx + msglen
  11201. if postIndex < 0 {
  11202. return ErrInvalidLengthTypes
  11203. }
  11204. if postIndex > l {
  11205. return io.ErrUnexpectedEOF
  11206. }
  11207. v := &ResponseEcho{}
  11208. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11209. return err
  11210. }
  11211. m.Value = &Response_Echo{v}
  11212. iNdEx = postIndex
  11213. case 3:
  11214. if wireType != 2 {
  11215. return fmt.Errorf("proto: wrong wireType = %d for field Flush", wireType)
  11216. }
  11217. var msglen int
  11218. for shift := uint(0); ; shift += 7 {
  11219. if shift >= 64 {
  11220. return ErrIntOverflowTypes
  11221. }
  11222. if iNdEx >= l {
  11223. return io.ErrUnexpectedEOF
  11224. }
  11225. b := dAtA[iNdEx]
  11226. iNdEx++
  11227. msglen |= int(b&0x7F) << shift
  11228. if b < 0x80 {
  11229. break
  11230. }
  11231. }
  11232. if msglen < 0 {
  11233. return ErrInvalidLengthTypes
  11234. }
  11235. postIndex := iNdEx + msglen
  11236. if postIndex < 0 {
  11237. return ErrInvalidLengthTypes
  11238. }
  11239. if postIndex > l {
  11240. return io.ErrUnexpectedEOF
  11241. }
  11242. v := &ResponseFlush{}
  11243. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11244. return err
  11245. }
  11246. m.Value = &Response_Flush{v}
  11247. iNdEx = postIndex
  11248. case 4:
  11249. if wireType != 2 {
  11250. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  11251. }
  11252. var msglen int
  11253. for shift := uint(0); ; shift += 7 {
  11254. if shift >= 64 {
  11255. return ErrIntOverflowTypes
  11256. }
  11257. if iNdEx >= l {
  11258. return io.ErrUnexpectedEOF
  11259. }
  11260. b := dAtA[iNdEx]
  11261. iNdEx++
  11262. msglen |= int(b&0x7F) << shift
  11263. if b < 0x80 {
  11264. break
  11265. }
  11266. }
  11267. if msglen < 0 {
  11268. return ErrInvalidLengthTypes
  11269. }
  11270. postIndex := iNdEx + msglen
  11271. if postIndex < 0 {
  11272. return ErrInvalidLengthTypes
  11273. }
  11274. if postIndex > l {
  11275. return io.ErrUnexpectedEOF
  11276. }
  11277. v := &ResponseInfo{}
  11278. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11279. return err
  11280. }
  11281. m.Value = &Response_Info{v}
  11282. iNdEx = postIndex
  11283. case 5:
  11284. if wireType != 2 {
  11285. return fmt.Errorf("proto: wrong wireType = %d for field SetOption", wireType)
  11286. }
  11287. var msglen int
  11288. for shift := uint(0); ; shift += 7 {
  11289. if shift >= 64 {
  11290. return ErrIntOverflowTypes
  11291. }
  11292. if iNdEx >= l {
  11293. return io.ErrUnexpectedEOF
  11294. }
  11295. b := dAtA[iNdEx]
  11296. iNdEx++
  11297. msglen |= int(b&0x7F) << shift
  11298. if b < 0x80 {
  11299. break
  11300. }
  11301. }
  11302. if msglen < 0 {
  11303. return ErrInvalidLengthTypes
  11304. }
  11305. postIndex := iNdEx + msglen
  11306. if postIndex < 0 {
  11307. return ErrInvalidLengthTypes
  11308. }
  11309. if postIndex > l {
  11310. return io.ErrUnexpectedEOF
  11311. }
  11312. v := &ResponseSetOption{}
  11313. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11314. return err
  11315. }
  11316. m.Value = &Response_SetOption{v}
  11317. iNdEx = postIndex
  11318. case 6:
  11319. if wireType != 2 {
  11320. return fmt.Errorf("proto: wrong wireType = %d for field InitChain", wireType)
  11321. }
  11322. var msglen int
  11323. for shift := uint(0); ; shift += 7 {
  11324. if shift >= 64 {
  11325. return ErrIntOverflowTypes
  11326. }
  11327. if iNdEx >= l {
  11328. return io.ErrUnexpectedEOF
  11329. }
  11330. b := dAtA[iNdEx]
  11331. iNdEx++
  11332. msglen |= int(b&0x7F) << shift
  11333. if b < 0x80 {
  11334. break
  11335. }
  11336. }
  11337. if msglen < 0 {
  11338. return ErrInvalidLengthTypes
  11339. }
  11340. postIndex := iNdEx + msglen
  11341. if postIndex < 0 {
  11342. return ErrInvalidLengthTypes
  11343. }
  11344. if postIndex > l {
  11345. return io.ErrUnexpectedEOF
  11346. }
  11347. v := &ResponseInitChain{}
  11348. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11349. return err
  11350. }
  11351. m.Value = &Response_InitChain{v}
  11352. iNdEx = postIndex
  11353. case 7:
  11354. if wireType != 2 {
  11355. return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType)
  11356. }
  11357. var msglen int
  11358. for shift := uint(0); ; shift += 7 {
  11359. if shift >= 64 {
  11360. return ErrIntOverflowTypes
  11361. }
  11362. if iNdEx >= l {
  11363. return io.ErrUnexpectedEOF
  11364. }
  11365. b := dAtA[iNdEx]
  11366. iNdEx++
  11367. msglen |= int(b&0x7F) << shift
  11368. if b < 0x80 {
  11369. break
  11370. }
  11371. }
  11372. if msglen < 0 {
  11373. return ErrInvalidLengthTypes
  11374. }
  11375. postIndex := iNdEx + msglen
  11376. if postIndex < 0 {
  11377. return ErrInvalidLengthTypes
  11378. }
  11379. if postIndex > l {
  11380. return io.ErrUnexpectedEOF
  11381. }
  11382. v := &ResponseQuery{}
  11383. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11384. return err
  11385. }
  11386. m.Value = &Response_Query{v}
  11387. iNdEx = postIndex
  11388. case 8:
  11389. if wireType != 2 {
  11390. return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType)
  11391. }
  11392. var msglen int
  11393. for shift := uint(0); ; shift += 7 {
  11394. if shift >= 64 {
  11395. return ErrIntOverflowTypes
  11396. }
  11397. if iNdEx >= l {
  11398. return io.ErrUnexpectedEOF
  11399. }
  11400. b := dAtA[iNdEx]
  11401. iNdEx++
  11402. msglen |= int(b&0x7F) << shift
  11403. if b < 0x80 {
  11404. break
  11405. }
  11406. }
  11407. if msglen < 0 {
  11408. return ErrInvalidLengthTypes
  11409. }
  11410. postIndex := iNdEx + msglen
  11411. if postIndex < 0 {
  11412. return ErrInvalidLengthTypes
  11413. }
  11414. if postIndex > l {
  11415. return io.ErrUnexpectedEOF
  11416. }
  11417. v := &ResponseBeginBlock{}
  11418. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11419. return err
  11420. }
  11421. m.Value = &Response_BeginBlock{v}
  11422. iNdEx = postIndex
  11423. case 9:
  11424. if wireType != 2 {
  11425. return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType)
  11426. }
  11427. var msglen int
  11428. for shift := uint(0); ; shift += 7 {
  11429. if shift >= 64 {
  11430. return ErrIntOverflowTypes
  11431. }
  11432. if iNdEx >= l {
  11433. return io.ErrUnexpectedEOF
  11434. }
  11435. b := dAtA[iNdEx]
  11436. iNdEx++
  11437. msglen |= int(b&0x7F) << shift
  11438. if b < 0x80 {
  11439. break
  11440. }
  11441. }
  11442. if msglen < 0 {
  11443. return ErrInvalidLengthTypes
  11444. }
  11445. postIndex := iNdEx + msglen
  11446. if postIndex < 0 {
  11447. return ErrInvalidLengthTypes
  11448. }
  11449. if postIndex > l {
  11450. return io.ErrUnexpectedEOF
  11451. }
  11452. v := &ResponseCheckTx{}
  11453. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11454. return err
  11455. }
  11456. m.Value = &Response_CheckTx{v}
  11457. iNdEx = postIndex
  11458. case 10:
  11459. if wireType != 2 {
  11460. return fmt.Errorf("proto: wrong wireType = %d for field DeliverTx", wireType)
  11461. }
  11462. var msglen int
  11463. for shift := uint(0); ; shift += 7 {
  11464. if shift >= 64 {
  11465. return ErrIntOverflowTypes
  11466. }
  11467. if iNdEx >= l {
  11468. return io.ErrUnexpectedEOF
  11469. }
  11470. b := dAtA[iNdEx]
  11471. iNdEx++
  11472. msglen |= int(b&0x7F) << shift
  11473. if b < 0x80 {
  11474. break
  11475. }
  11476. }
  11477. if msglen < 0 {
  11478. return ErrInvalidLengthTypes
  11479. }
  11480. postIndex := iNdEx + msglen
  11481. if postIndex < 0 {
  11482. return ErrInvalidLengthTypes
  11483. }
  11484. if postIndex > l {
  11485. return io.ErrUnexpectedEOF
  11486. }
  11487. v := &ResponseDeliverTx{}
  11488. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11489. return err
  11490. }
  11491. m.Value = &Response_DeliverTx{v}
  11492. iNdEx = postIndex
  11493. case 11:
  11494. if wireType != 2 {
  11495. return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType)
  11496. }
  11497. var msglen int
  11498. for shift := uint(0); ; shift += 7 {
  11499. if shift >= 64 {
  11500. return ErrIntOverflowTypes
  11501. }
  11502. if iNdEx >= l {
  11503. return io.ErrUnexpectedEOF
  11504. }
  11505. b := dAtA[iNdEx]
  11506. iNdEx++
  11507. msglen |= int(b&0x7F) << shift
  11508. if b < 0x80 {
  11509. break
  11510. }
  11511. }
  11512. if msglen < 0 {
  11513. return ErrInvalidLengthTypes
  11514. }
  11515. postIndex := iNdEx + msglen
  11516. if postIndex < 0 {
  11517. return ErrInvalidLengthTypes
  11518. }
  11519. if postIndex > l {
  11520. return io.ErrUnexpectedEOF
  11521. }
  11522. v := &ResponseEndBlock{}
  11523. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11524. return err
  11525. }
  11526. m.Value = &Response_EndBlock{v}
  11527. iNdEx = postIndex
  11528. case 12:
  11529. if wireType != 2 {
  11530. return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType)
  11531. }
  11532. var msglen int
  11533. for shift := uint(0); ; shift += 7 {
  11534. if shift >= 64 {
  11535. return ErrIntOverflowTypes
  11536. }
  11537. if iNdEx >= l {
  11538. return io.ErrUnexpectedEOF
  11539. }
  11540. b := dAtA[iNdEx]
  11541. iNdEx++
  11542. msglen |= int(b&0x7F) << shift
  11543. if b < 0x80 {
  11544. break
  11545. }
  11546. }
  11547. if msglen < 0 {
  11548. return ErrInvalidLengthTypes
  11549. }
  11550. postIndex := iNdEx + msglen
  11551. if postIndex < 0 {
  11552. return ErrInvalidLengthTypes
  11553. }
  11554. if postIndex > l {
  11555. return io.ErrUnexpectedEOF
  11556. }
  11557. v := &ResponseCommit{}
  11558. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11559. return err
  11560. }
  11561. m.Value = &Response_Commit{v}
  11562. iNdEx = postIndex
  11563. default:
  11564. iNdEx = preIndex
  11565. skippy, err := skipTypes(dAtA[iNdEx:])
  11566. if err != nil {
  11567. return err
  11568. }
  11569. if skippy < 0 {
  11570. return ErrInvalidLengthTypes
  11571. }
  11572. if (iNdEx + skippy) < 0 {
  11573. return ErrInvalidLengthTypes
  11574. }
  11575. if (iNdEx + skippy) > l {
  11576. return io.ErrUnexpectedEOF
  11577. }
  11578. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11579. iNdEx += skippy
  11580. }
  11581. }
  11582. if iNdEx > l {
  11583. return io.ErrUnexpectedEOF
  11584. }
  11585. return nil
  11586. }
  11587. func (m *ResponseException) Unmarshal(dAtA []byte) error {
  11588. l := len(dAtA)
  11589. iNdEx := 0
  11590. for iNdEx < l {
  11591. preIndex := iNdEx
  11592. var wire uint64
  11593. for shift := uint(0); ; shift += 7 {
  11594. if shift >= 64 {
  11595. return ErrIntOverflowTypes
  11596. }
  11597. if iNdEx >= l {
  11598. return io.ErrUnexpectedEOF
  11599. }
  11600. b := dAtA[iNdEx]
  11601. iNdEx++
  11602. wire |= uint64(b&0x7F) << shift
  11603. if b < 0x80 {
  11604. break
  11605. }
  11606. }
  11607. fieldNum := int32(wire >> 3)
  11608. wireType := int(wire & 0x7)
  11609. if wireType == 4 {
  11610. return fmt.Errorf("proto: ResponseException: wiretype end group for non-group")
  11611. }
  11612. if fieldNum <= 0 {
  11613. return fmt.Errorf("proto: ResponseException: illegal tag %d (wire type %d)", fieldNum, wire)
  11614. }
  11615. switch fieldNum {
  11616. case 1:
  11617. if wireType != 2 {
  11618. return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
  11619. }
  11620. var stringLen uint64
  11621. for shift := uint(0); ; shift += 7 {
  11622. if shift >= 64 {
  11623. return ErrIntOverflowTypes
  11624. }
  11625. if iNdEx >= l {
  11626. return io.ErrUnexpectedEOF
  11627. }
  11628. b := dAtA[iNdEx]
  11629. iNdEx++
  11630. stringLen |= uint64(b&0x7F) << shift
  11631. if b < 0x80 {
  11632. break
  11633. }
  11634. }
  11635. intStringLen := int(stringLen)
  11636. if intStringLen < 0 {
  11637. return ErrInvalidLengthTypes
  11638. }
  11639. postIndex := iNdEx + intStringLen
  11640. if postIndex < 0 {
  11641. return ErrInvalidLengthTypes
  11642. }
  11643. if postIndex > l {
  11644. return io.ErrUnexpectedEOF
  11645. }
  11646. m.Error = string(dAtA[iNdEx:postIndex])
  11647. iNdEx = postIndex
  11648. default:
  11649. iNdEx = preIndex
  11650. skippy, err := skipTypes(dAtA[iNdEx:])
  11651. if err != nil {
  11652. return err
  11653. }
  11654. if skippy < 0 {
  11655. return ErrInvalidLengthTypes
  11656. }
  11657. if (iNdEx + skippy) < 0 {
  11658. return ErrInvalidLengthTypes
  11659. }
  11660. if (iNdEx + skippy) > l {
  11661. return io.ErrUnexpectedEOF
  11662. }
  11663. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11664. iNdEx += skippy
  11665. }
  11666. }
  11667. if iNdEx > l {
  11668. return io.ErrUnexpectedEOF
  11669. }
  11670. return nil
  11671. }
  11672. func (m *ResponseEcho) Unmarshal(dAtA []byte) error {
  11673. l := len(dAtA)
  11674. iNdEx := 0
  11675. for iNdEx < l {
  11676. preIndex := iNdEx
  11677. var wire uint64
  11678. for shift := uint(0); ; shift += 7 {
  11679. if shift >= 64 {
  11680. return ErrIntOverflowTypes
  11681. }
  11682. if iNdEx >= l {
  11683. return io.ErrUnexpectedEOF
  11684. }
  11685. b := dAtA[iNdEx]
  11686. iNdEx++
  11687. wire |= uint64(b&0x7F) << shift
  11688. if b < 0x80 {
  11689. break
  11690. }
  11691. }
  11692. fieldNum := int32(wire >> 3)
  11693. wireType := int(wire & 0x7)
  11694. if wireType == 4 {
  11695. return fmt.Errorf("proto: ResponseEcho: wiretype end group for non-group")
  11696. }
  11697. if fieldNum <= 0 {
  11698. return fmt.Errorf("proto: ResponseEcho: illegal tag %d (wire type %d)", fieldNum, wire)
  11699. }
  11700. switch fieldNum {
  11701. case 1:
  11702. if wireType != 2 {
  11703. return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
  11704. }
  11705. var stringLen uint64
  11706. for shift := uint(0); ; shift += 7 {
  11707. if shift >= 64 {
  11708. return ErrIntOverflowTypes
  11709. }
  11710. if iNdEx >= l {
  11711. return io.ErrUnexpectedEOF
  11712. }
  11713. b := dAtA[iNdEx]
  11714. iNdEx++
  11715. stringLen |= uint64(b&0x7F) << shift
  11716. if b < 0x80 {
  11717. break
  11718. }
  11719. }
  11720. intStringLen := int(stringLen)
  11721. if intStringLen < 0 {
  11722. return ErrInvalidLengthTypes
  11723. }
  11724. postIndex := iNdEx + intStringLen
  11725. if postIndex < 0 {
  11726. return ErrInvalidLengthTypes
  11727. }
  11728. if postIndex > l {
  11729. return io.ErrUnexpectedEOF
  11730. }
  11731. m.Message = string(dAtA[iNdEx:postIndex])
  11732. iNdEx = postIndex
  11733. default:
  11734. iNdEx = preIndex
  11735. skippy, err := skipTypes(dAtA[iNdEx:])
  11736. if err != nil {
  11737. return err
  11738. }
  11739. if skippy < 0 {
  11740. return ErrInvalidLengthTypes
  11741. }
  11742. if (iNdEx + skippy) < 0 {
  11743. return ErrInvalidLengthTypes
  11744. }
  11745. if (iNdEx + skippy) > l {
  11746. return io.ErrUnexpectedEOF
  11747. }
  11748. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11749. iNdEx += skippy
  11750. }
  11751. }
  11752. if iNdEx > l {
  11753. return io.ErrUnexpectedEOF
  11754. }
  11755. return nil
  11756. }
  11757. func (m *ResponseFlush) Unmarshal(dAtA []byte) error {
  11758. l := len(dAtA)
  11759. iNdEx := 0
  11760. for iNdEx < l {
  11761. preIndex := iNdEx
  11762. var wire uint64
  11763. for shift := uint(0); ; shift += 7 {
  11764. if shift >= 64 {
  11765. return ErrIntOverflowTypes
  11766. }
  11767. if iNdEx >= l {
  11768. return io.ErrUnexpectedEOF
  11769. }
  11770. b := dAtA[iNdEx]
  11771. iNdEx++
  11772. wire |= uint64(b&0x7F) << shift
  11773. if b < 0x80 {
  11774. break
  11775. }
  11776. }
  11777. fieldNum := int32(wire >> 3)
  11778. wireType := int(wire & 0x7)
  11779. if wireType == 4 {
  11780. return fmt.Errorf("proto: ResponseFlush: wiretype end group for non-group")
  11781. }
  11782. if fieldNum <= 0 {
  11783. return fmt.Errorf("proto: ResponseFlush: illegal tag %d (wire type %d)", fieldNum, wire)
  11784. }
  11785. switch fieldNum {
  11786. default:
  11787. iNdEx = preIndex
  11788. skippy, err := skipTypes(dAtA[iNdEx:])
  11789. if err != nil {
  11790. return err
  11791. }
  11792. if skippy < 0 {
  11793. return ErrInvalidLengthTypes
  11794. }
  11795. if (iNdEx + skippy) < 0 {
  11796. return ErrInvalidLengthTypes
  11797. }
  11798. if (iNdEx + skippy) > l {
  11799. return io.ErrUnexpectedEOF
  11800. }
  11801. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11802. iNdEx += skippy
  11803. }
  11804. }
  11805. if iNdEx > l {
  11806. return io.ErrUnexpectedEOF
  11807. }
  11808. return nil
  11809. }
  11810. func (m *ResponseInfo) Unmarshal(dAtA []byte) error {
  11811. l := len(dAtA)
  11812. iNdEx := 0
  11813. for iNdEx < l {
  11814. preIndex := iNdEx
  11815. var wire uint64
  11816. for shift := uint(0); ; shift += 7 {
  11817. if shift >= 64 {
  11818. return ErrIntOverflowTypes
  11819. }
  11820. if iNdEx >= l {
  11821. return io.ErrUnexpectedEOF
  11822. }
  11823. b := dAtA[iNdEx]
  11824. iNdEx++
  11825. wire |= uint64(b&0x7F) << shift
  11826. if b < 0x80 {
  11827. break
  11828. }
  11829. }
  11830. fieldNum := int32(wire >> 3)
  11831. wireType := int(wire & 0x7)
  11832. if wireType == 4 {
  11833. return fmt.Errorf("proto: ResponseInfo: wiretype end group for non-group")
  11834. }
  11835. if fieldNum <= 0 {
  11836. return fmt.Errorf("proto: ResponseInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  11837. }
  11838. switch fieldNum {
  11839. case 1:
  11840. if wireType != 2 {
  11841. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  11842. }
  11843. var stringLen uint64
  11844. for shift := uint(0); ; shift += 7 {
  11845. if shift >= 64 {
  11846. return ErrIntOverflowTypes
  11847. }
  11848. if iNdEx >= l {
  11849. return io.ErrUnexpectedEOF
  11850. }
  11851. b := dAtA[iNdEx]
  11852. iNdEx++
  11853. stringLen |= uint64(b&0x7F) << shift
  11854. if b < 0x80 {
  11855. break
  11856. }
  11857. }
  11858. intStringLen := int(stringLen)
  11859. if intStringLen < 0 {
  11860. return ErrInvalidLengthTypes
  11861. }
  11862. postIndex := iNdEx + intStringLen
  11863. if postIndex < 0 {
  11864. return ErrInvalidLengthTypes
  11865. }
  11866. if postIndex > l {
  11867. return io.ErrUnexpectedEOF
  11868. }
  11869. m.Data = string(dAtA[iNdEx:postIndex])
  11870. iNdEx = postIndex
  11871. case 2:
  11872. if wireType != 2 {
  11873. return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  11874. }
  11875. var stringLen uint64
  11876. for shift := uint(0); ; shift += 7 {
  11877. if shift >= 64 {
  11878. return ErrIntOverflowTypes
  11879. }
  11880. if iNdEx >= l {
  11881. return io.ErrUnexpectedEOF
  11882. }
  11883. b := dAtA[iNdEx]
  11884. iNdEx++
  11885. stringLen |= uint64(b&0x7F) << shift
  11886. if b < 0x80 {
  11887. break
  11888. }
  11889. }
  11890. intStringLen := int(stringLen)
  11891. if intStringLen < 0 {
  11892. return ErrInvalidLengthTypes
  11893. }
  11894. postIndex := iNdEx + intStringLen
  11895. if postIndex < 0 {
  11896. return ErrInvalidLengthTypes
  11897. }
  11898. if postIndex > l {
  11899. return io.ErrUnexpectedEOF
  11900. }
  11901. m.Version = string(dAtA[iNdEx:postIndex])
  11902. iNdEx = postIndex
  11903. case 3:
  11904. if wireType != 0 {
  11905. return fmt.Errorf("proto: wrong wireType = %d for field AppVersion", wireType)
  11906. }
  11907. m.AppVersion = 0
  11908. for shift := uint(0); ; shift += 7 {
  11909. if shift >= 64 {
  11910. return ErrIntOverflowTypes
  11911. }
  11912. if iNdEx >= l {
  11913. return io.ErrUnexpectedEOF
  11914. }
  11915. b := dAtA[iNdEx]
  11916. iNdEx++
  11917. m.AppVersion |= uint64(b&0x7F) << shift
  11918. if b < 0x80 {
  11919. break
  11920. }
  11921. }
  11922. case 4:
  11923. if wireType != 0 {
  11924. return fmt.Errorf("proto: wrong wireType = %d for field LastBlockHeight", wireType)
  11925. }
  11926. m.LastBlockHeight = 0
  11927. for shift := uint(0); ; shift += 7 {
  11928. if shift >= 64 {
  11929. return ErrIntOverflowTypes
  11930. }
  11931. if iNdEx >= l {
  11932. return io.ErrUnexpectedEOF
  11933. }
  11934. b := dAtA[iNdEx]
  11935. iNdEx++
  11936. m.LastBlockHeight |= int64(b&0x7F) << shift
  11937. if b < 0x80 {
  11938. break
  11939. }
  11940. }
  11941. case 5:
  11942. if wireType != 2 {
  11943. return fmt.Errorf("proto: wrong wireType = %d for field LastBlockAppHash", wireType)
  11944. }
  11945. var byteLen int
  11946. for shift := uint(0); ; shift += 7 {
  11947. if shift >= 64 {
  11948. return ErrIntOverflowTypes
  11949. }
  11950. if iNdEx >= l {
  11951. return io.ErrUnexpectedEOF
  11952. }
  11953. b := dAtA[iNdEx]
  11954. iNdEx++
  11955. byteLen |= int(b&0x7F) << shift
  11956. if b < 0x80 {
  11957. break
  11958. }
  11959. }
  11960. if byteLen < 0 {
  11961. return ErrInvalidLengthTypes
  11962. }
  11963. postIndex := iNdEx + byteLen
  11964. if postIndex < 0 {
  11965. return ErrInvalidLengthTypes
  11966. }
  11967. if postIndex > l {
  11968. return io.ErrUnexpectedEOF
  11969. }
  11970. m.LastBlockAppHash = append(m.LastBlockAppHash[:0], dAtA[iNdEx:postIndex]...)
  11971. if m.LastBlockAppHash == nil {
  11972. m.LastBlockAppHash = []byte{}
  11973. }
  11974. iNdEx = postIndex
  11975. default:
  11976. iNdEx = preIndex
  11977. skippy, err := skipTypes(dAtA[iNdEx:])
  11978. if err != nil {
  11979. return err
  11980. }
  11981. if skippy < 0 {
  11982. return ErrInvalidLengthTypes
  11983. }
  11984. if (iNdEx + skippy) < 0 {
  11985. return ErrInvalidLengthTypes
  11986. }
  11987. if (iNdEx + skippy) > l {
  11988. return io.ErrUnexpectedEOF
  11989. }
  11990. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11991. iNdEx += skippy
  11992. }
  11993. }
  11994. if iNdEx > l {
  11995. return io.ErrUnexpectedEOF
  11996. }
  11997. return nil
  11998. }
  11999. func (m *ResponseSetOption) Unmarshal(dAtA []byte) error {
  12000. l := len(dAtA)
  12001. iNdEx := 0
  12002. for iNdEx < l {
  12003. preIndex := iNdEx
  12004. var wire uint64
  12005. for shift := uint(0); ; shift += 7 {
  12006. if shift >= 64 {
  12007. return ErrIntOverflowTypes
  12008. }
  12009. if iNdEx >= l {
  12010. return io.ErrUnexpectedEOF
  12011. }
  12012. b := dAtA[iNdEx]
  12013. iNdEx++
  12014. wire |= uint64(b&0x7F) << shift
  12015. if b < 0x80 {
  12016. break
  12017. }
  12018. }
  12019. fieldNum := int32(wire >> 3)
  12020. wireType := int(wire & 0x7)
  12021. if wireType == 4 {
  12022. return fmt.Errorf("proto: ResponseSetOption: wiretype end group for non-group")
  12023. }
  12024. if fieldNum <= 0 {
  12025. return fmt.Errorf("proto: ResponseSetOption: illegal tag %d (wire type %d)", fieldNum, wire)
  12026. }
  12027. switch fieldNum {
  12028. case 1:
  12029. if wireType != 0 {
  12030. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  12031. }
  12032. m.Code = 0
  12033. for shift := uint(0); ; shift += 7 {
  12034. if shift >= 64 {
  12035. return ErrIntOverflowTypes
  12036. }
  12037. if iNdEx >= l {
  12038. return io.ErrUnexpectedEOF
  12039. }
  12040. b := dAtA[iNdEx]
  12041. iNdEx++
  12042. m.Code |= uint32(b&0x7F) << shift
  12043. if b < 0x80 {
  12044. break
  12045. }
  12046. }
  12047. case 3:
  12048. if wireType != 2 {
  12049. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  12050. }
  12051. var stringLen uint64
  12052. for shift := uint(0); ; shift += 7 {
  12053. if shift >= 64 {
  12054. return ErrIntOverflowTypes
  12055. }
  12056. if iNdEx >= l {
  12057. return io.ErrUnexpectedEOF
  12058. }
  12059. b := dAtA[iNdEx]
  12060. iNdEx++
  12061. stringLen |= uint64(b&0x7F) << shift
  12062. if b < 0x80 {
  12063. break
  12064. }
  12065. }
  12066. intStringLen := int(stringLen)
  12067. if intStringLen < 0 {
  12068. return ErrInvalidLengthTypes
  12069. }
  12070. postIndex := iNdEx + intStringLen
  12071. if postIndex < 0 {
  12072. return ErrInvalidLengthTypes
  12073. }
  12074. if postIndex > l {
  12075. return io.ErrUnexpectedEOF
  12076. }
  12077. m.Log = string(dAtA[iNdEx:postIndex])
  12078. iNdEx = postIndex
  12079. case 4:
  12080. if wireType != 2 {
  12081. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  12082. }
  12083. var stringLen uint64
  12084. for shift := uint(0); ; shift += 7 {
  12085. if shift >= 64 {
  12086. return ErrIntOverflowTypes
  12087. }
  12088. if iNdEx >= l {
  12089. return io.ErrUnexpectedEOF
  12090. }
  12091. b := dAtA[iNdEx]
  12092. iNdEx++
  12093. stringLen |= uint64(b&0x7F) << shift
  12094. if b < 0x80 {
  12095. break
  12096. }
  12097. }
  12098. intStringLen := int(stringLen)
  12099. if intStringLen < 0 {
  12100. return ErrInvalidLengthTypes
  12101. }
  12102. postIndex := iNdEx + intStringLen
  12103. if postIndex < 0 {
  12104. return ErrInvalidLengthTypes
  12105. }
  12106. if postIndex > l {
  12107. return io.ErrUnexpectedEOF
  12108. }
  12109. m.Info = string(dAtA[iNdEx:postIndex])
  12110. iNdEx = postIndex
  12111. default:
  12112. iNdEx = preIndex
  12113. skippy, err := skipTypes(dAtA[iNdEx:])
  12114. if err != nil {
  12115. return err
  12116. }
  12117. if skippy < 0 {
  12118. return ErrInvalidLengthTypes
  12119. }
  12120. if (iNdEx + skippy) < 0 {
  12121. return ErrInvalidLengthTypes
  12122. }
  12123. if (iNdEx + skippy) > l {
  12124. return io.ErrUnexpectedEOF
  12125. }
  12126. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12127. iNdEx += skippy
  12128. }
  12129. }
  12130. if iNdEx > l {
  12131. return io.ErrUnexpectedEOF
  12132. }
  12133. return nil
  12134. }
  12135. func (m *ResponseInitChain) Unmarshal(dAtA []byte) error {
  12136. l := len(dAtA)
  12137. iNdEx := 0
  12138. for iNdEx < l {
  12139. preIndex := iNdEx
  12140. var wire uint64
  12141. for shift := uint(0); ; shift += 7 {
  12142. if shift >= 64 {
  12143. return ErrIntOverflowTypes
  12144. }
  12145. if iNdEx >= l {
  12146. return io.ErrUnexpectedEOF
  12147. }
  12148. b := dAtA[iNdEx]
  12149. iNdEx++
  12150. wire |= uint64(b&0x7F) << shift
  12151. if b < 0x80 {
  12152. break
  12153. }
  12154. }
  12155. fieldNum := int32(wire >> 3)
  12156. wireType := int(wire & 0x7)
  12157. if wireType == 4 {
  12158. return fmt.Errorf("proto: ResponseInitChain: wiretype end group for non-group")
  12159. }
  12160. if fieldNum <= 0 {
  12161. return fmt.Errorf("proto: ResponseInitChain: illegal tag %d (wire type %d)", fieldNum, wire)
  12162. }
  12163. switch fieldNum {
  12164. case 1:
  12165. if wireType != 2 {
  12166. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParams", wireType)
  12167. }
  12168. var msglen int
  12169. for shift := uint(0); ; shift += 7 {
  12170. if shift >= 64 {
  12171. return ErrIntOverflowTypes
  12172. }
  12173. if iNdEx >= l {
  12174. return io.ErrUnexpectedEOF
  12175. }
  12176. b := dAtA[iNdEx]
  12177. iNdEx++
  12178. msglen |= int(b&0x7F) << shift
  12179. if b < 0x80 {
  12180. break
  12181. }
  12182. }
  12183. if msglen < 0 {
  12184. return ErrInvalidLengthTypes
  12185. }
  12186. postIndex := iNdEx + msglen
  12187. if postIndex < 0 {
  12188. return ErrInvalidLengthTypes
  12189. }
  12190. if postIndex > l {
  12191. return io.ErrUnexpectedEOF
  12192. }
  12193. if m.ConsensusParams == nil {
  12194. m.ConsensusParams = &ConsensusParams{}
  12195. }
  12196. if err := m.ConsensusParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12197. return err
  12198. }
  12199. iNdEx = postIndex
  12200. case 2:
  12201. if wireType != 2 {
  12202. return fmt.Errorf("proto: wrong wireType = %d for field Validators", wireType)
  12203. }
  12204. var msglen int
  12205. for shift := uint(0); ; shift += 7 {
  12206. if shift >= 64 {
  12207. return ErrIntOverflowTypes
  12208. }
  12209. if iNdEx >= l {
  12210. return io.ErrUnexpectedEOF
  12211. }
  12212. b := dAtA[iNdEx]
  12213. iNdEx++
  12214. msglen |= int(b&0x7F) << shift
  12215. if b < 0x80 {
  12216. break
  12217. }
  12218. }
  12219. if msglen < 0 {
  12220. return ErrInvalidLengthTypes
  12221. }
  12222. postIndex := iNdEx + msglen
  12223. if postIndex < 0 {
  12224. return ErrInvalidLengthTypes
  12225. }
  12226. if postIndex > l {
  12227. return io.ErrUnexpectedEOF
  12228. }
  12229. m.Validators = append(m.Validators, ValidatorUpdate{})
  12230. if err := m.Validators[len(m.Validators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12231. return err
  12232. }
  12233. iNdEx = postIndex
  12234. default:
  12235. iNdEx = preIndex
  12236. skippy, err := skipTypes(dAtA[iNdEx:])
  12237. if err != nil {
  12238. return err
  12239. }
  12240. if skippy < 0 {
  12241. return ErrInvalidLengthTypes
  12242. }
  12243. if (iNdEx + skippy) < 0 {
  12244. return ErrInvalidLengthTypes
  12245. }
  12246. if (iNdEx + skippy) > l {
  12247. return io.ErrUnexpectedEOF
  12248. }
  12249. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12250. iNdEx += skippy
  12251. }
  12252. }
  12253. if iNdEx > l {
  12254. return io.ErrUnexpectedEOF
  12255. }
  12256. return nil
  12257. }
  12258. func (m *ResponseQuery) Unmarshal(dAtA []byte) error {
  12259. l := len(dAtA)
  12260. iNdEx := 0
  12261. for iNdEx < l {
  12262. preIndex := iNdEx
  12263. var wire uint64
  12264. for shift := uint(0); ; shift += 7 {
  12265. if shift >= 64 {
  12266. return ErrIntOverflowTypes
  12267. }
  12268. if iNdEx >= l {
  12269. return io.ErrUnexpectedEOF
  12270. }
  12271. b := dAtA[iNdEx]
  12272. iNdEx++
  12273. wire |= uint64(b&0x7F) << shift
  12274. if b < 0x80 {
  12275. break
  12276. }
  12277. }
  12278. fieldNum := int32(wire >> 3)
  12279. wireType := int(wire & 0x7)
  12280. if wireType == 4 {
  12281. return fmt.Errorf("proto: ResponseQuery: wiretype end group for non-group")
  12282. }
  12283. if fieldNum <= 0 {
  12284. return fmt.Errorf("proto: ResponseQuery: illegal tag %d (wire type %d)", fieldNum, wire)
  12285. }
  12286. switch fieldNum {
  12287. case 1:
  12288. if wireType != 0 {
  12289. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  12290. }
  12291. m.Code = 0
  12292. for shift := uint(0); ; shift += 7 {
  12293. if shift >= 64 {
  12294. return ErrIntOverflowTypes
  12295. }
  12296. if iNdEx >= l {
  12297. return io.ErrUnexpectedEOF
  12298. }
  12299. b := dAtA[iNdEx]
  12300. iNdEx++
  12301. m.Code |= uint32(b&0x7F) << shift
  12302. if b < 0x80 {
  12303. break
  12304. }
  12305. }
  12306. case 3:
  12307. if wireType != 2 {
  12308. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  12309. }
  12310. var stringLen uint64
  12311. for shift := uint(0); ; shift += 7 {
  12312. if shift >= 64 {
  12313. return ErrIntOverflowTypes
  12314. }
  12315. if iNdEx >= l {
  12316. return io.ErrUnexpectedEOF
  12317. }
  12318. b := dAtA[iNdEx]
  12319. iNdEx++
  12320. stringLen |= uint64(b&0x7F) << shift
  12321. if b < 0x80 {
  12322. break
  12323. }
  12324. }
  12325. intStringLen := int(stringLen)
  12326. if intStringLen < 0 {
  12327. return ErrInvalidLengthTypes
  12328. }
  12329. postIndex := iNdEx + intStringLen
  12330. if postIndex < 0 {
  12331. return ErrInvalidLengthTypes
  12332. }
  12333. if postIndex > l {
  12334. return io.ErrUnexpectedEOF
  12335. }
  12336. m.Log = string(dAtA[iNdEx:postIndex])
  12337. iNdEx = postIndex
  12338. case 4:
  12339. if wireType != 2 {
  12340. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  12341. }
  12342. var stringLen uint64
  12343. for shift := uint(0); ; shift += 7 {
  12344. if shift >= 64 {
  12345. return ErrIntOverflowTypes
  12346. }
  12347. if iNdEx >= l {
  12348. return io.ErrUnexpectedEOF
  12349. }
  12350. b := dAtA[iNdEx]
  12351. iNdEx++
  12352. stringLen |= uint64(b&0x7F) << shift
  12353. if b < 0x80 {
  12354. break
  12355. }
  12356. }
  12357. intStringLen := int(stringLen)
  12358. if intStringLen < 0 {
  12359. return ErrInvalidLengthTypes
  12360. }
  12361. postIndex := iNdEx + intStringLen
  12362. if postIndex < 0 {
  12363. return ErrInvalidLengthTypes
  12364. }
  12365. if postIndex > l {
  12366. return io.ErrUnexpectedEOF
  12367. }
  12368. m.Info = string(dAtA[iNdEx:postIndex])
  12369. iNdEx = postIndex
  12370. case 5:
  12371. if wireType != 0 {
  12372. return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
  12373. }
  12374. m.Index = 0
  12375. for shift := uint(0); ; shift += 7 {
  12376. if shift >= 64 {
  12377. return ErrIntOverflowTypes
  12378. }
  12379. if iNdEx >= l {
  12380. return io.ErrUnexpectedEOF
  12381. }
  12382. b := dAtA[iNdEx]
  12383. iNdEx++
  12384. m.Index |= int64(b&0x7F) << shift
  12385. if b < 0x80 {
  12386. break
  12387. }
  12388. }
  12389. case 6:
  12390. if wireType != 2 {
  12391. return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  12392. }
  12393. var byteLen int
  12394. for shift := uint(0); ; shift += 7 {
  12395. if shift >= 64 {
  12396. return ErrIntOverflowTypes
  12397. }
  12398. if iNdEx >= l {
  12399. return io.ErrUnexpectedEOF
  12400. }
  12401. b := dAtA[iNdEx]
  12402. iNdEx++
  12403. byteLen |= int(b&0x7F) << shift
  12404. if b < 0x80 {
  12405. break
  12406. }
  12407. }
  12408. if byteLen < 0 {
  12409. return ErrInvalidLengthTypes
  12410. }
  12411. postIndex := iNdEx + byteLen
  12412. if postIndex < 0 {
  12413. return ErrInvalidLengthTypes
  12414. }
  12415. if postIndex > l {
  12416. return io.ErrUnexpectedEOF
  12417. }
  12418. m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
  12419. if m.Key == nil {
  12420. m.Key = []byte{}
  12421. }
  12422. iNdEx = postIndex
  12423. case 7:
  12424. if wireType != 2 {
  12425. return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  12426. }
  12427. var byteLen int
  12428. for shift := uint(0); ; shift += 7 {
  12429. if shift >= 64 {
  12430. return ErrIntOverflowTypes
  12431. }
  12432. if iNdEx >= l {
  12433. return io.ErrUnexpectedEOF
  12434. }
  12435. b := dAtA[iNdEx]
  12436. iNdEx++
  12437. byteLen |= int(b&0x7F) << shift
  12438. if b < 0x80 {
  12439. break
  12440. }
  12441. }
  12442. if byteLen < 0 {
  12443. return ErrInvalidLengthTypes
  12444. }
  12445. postIndex := iNdEx + byteLen
  12446. if postIndex < 0 {
  12447. return ErrInvalidLengthTypes
  12448. }
  12449. if postIndex > l {
  12450. return io.ErrUnexpectedEOF
  12451. }
  12452. m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...)
  12453. if m.Value == nil {
  12454. m.Value = []byte{}
  12455. }
  12456. iNdEx = postIndex
  12457. case 8:
  12458. if wireType != 2 {
  12459. return fmt.Errorf("proto: wrong wireType = %d for field Proof", wireType)
  12460. }
  12461. var msglen int
  12462. for shift := uint(0); ; shift += 7 {
  12463. if shift >= 64 {
  12464. return ErrIntOverflowTypes
  12465. }
  12466. if iNdEx >= l {
  12467. return io.ErrUnexpectedEOF
  12468. }
  12469. b := dAtA[iNdEx]
  12470. iNdEx++
  12471. msglen |= int(b&0x7F) << shift
  12472. if b < 0x80 {
  12473. break
  12474. }
  12475. }
  12476. if msglen < 0 {
  12477. return ErrInvalidLengthTypes
  12478. }
  12479. postIndex := iNdEx + msglen
  12480. if postIndex < 0 {
  12481. return ErrInvalidLengthTypes
  12482. }
  12483. if postIndex > l {
  12484. return io.ErrUnexpectedEOF
  12485. }
  12486. if m.Proof == nil {
  12487. m.Proof = &merkle.Proof{}
  12488. }
  12489. if err := m.Proof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12490. return err
  12491. }
  12492. iNdEx = postIndex
  12493. case 9:
  12494. if wireType != 0 {
  12495. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  12496. }
  12497. m.Height = 0
  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. m.Height |= int64(b&0x7F) << shift
  12508. if b < 0x80 {
  12509. break
  12510. }
  12511. }
  12512. case 10:
  12513. if wireType != 2 {
  12514. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  12515. }
  12516. var stringLen uint64
  12517. for shift := uint(0); ; shift += 7 {
  12518. if shift >= 64 {
  12519. return ErrIntOverflowTypes
  12520. }
  12521. if iNdEx >= l {
  12522. return io.ErrUnexpectedEOF
  12523. }
  12524. b := dAtA[iNdEx]
  12525. iNdEx++
  12526. stringLen |= uint64(b&0x7F) << shift
  12527. if b < 0x80 {
  12528. break
  12529. }
  12530. }
  12531. intStringLen := int(stringLen)
  12532. if intStringLen < 0 {
  12533. return ErrInvalidLengthTypes
  12534. }
  12535. postIndex := iNdEx + intStringLen
  12536. if postIndex < 0 {
  12537. return ErrInvalidLengthTypes
  12538. }
  12539. if postIndex > l {
  12540. return io.ErrUnexpectedEOF
  12541. }
  12542. m.Codespace = string(dAtA[iNdEx:postIndex])
  12543. iNdEx = postIndex
  12544. default:
  12545. iNdEx = preIndex
  12546. skippy, err := skipTypes(dAtA[iNdEx:])
  12547. if err != nil {
  12548. return err
  12549. }
  12550. if skippy < 0 {
  12551. return ErrInvalidLengthTypes
  12552. }
  12553. if (iNdEx + skippy) < 0 {
  12554. return ErrInvalidLengthTypes
  12555. }
  12556. if (iNdEx + skippy) > l {
  12557. return io.ErrUnexpectedEOF
  12558. }
  12559. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12560. iNdEx += skippy
  12561. }
  12562. }
  12563. if iNdEx > l {
  12564. return io.ErrUnexpectedEOF
  12565. }
  12566. return nil
  12567. }
  12568. func (m *ResponseBeginBlock) Unmarshal(dAtA []byte) error {
  12569. l := len(dAtA)
  12570. iNdEx := 0
  12571. for iNdEx < l {
  12572. preIndex := iNdEx
  12573. var wire uint64
  12574. for shift := uint(0); ; shift += 7 {
  12575. if shift >= 64 {
  12576. return ErrIntOverflowTypes
  12577. }
  12578. if iNdEx >= l {
  12579. return io.ErrUnexpectedEOF
  12580. }
  12581. b := dAtA[iNdEx]
  12582. iNdEx++
  12583. wire |= uint64(b&0x7F) << shift
  12584. if b < 0x80 {
  12585. break
  12586. }
  12587. }
  12588. fieldNum := int32(wire >> 3)
  12589. wireType := int(wire & 0x7)
  12590. if wireType == 4 {
  12591. return fmt.Errorf("proto: ResponseBeginBlock: wiretype end group for non-group")
  12592. }
  12593. if fieldNum <= 0 {
  12594. return fmt.Errorf("proto: ResponseBeginBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  12595. }
  12596. switch fieldNum {
  12597. case 1:
  12598. if wireType != 2 {
  12599. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  12600. }
  12601. var msglen int
  12602. for shift := uint(0); ; shift += 7 {
  12603. if shift >= 64 {
  12604. return ErrIntOverflowTypes
  12605. }
  12606. if iNdEx >= l {
  12607. return io.ErrUnexpectedEOF
  12608. }
  12609. b := dAtA[iNdEx]
  12610. iNdEx++
  12611. msglen |= int(b&0x7F) << shift
  12612. if b < 0x80 {
  12613. break
  12614. }
  12615. }
  12616. if msglen < 0 {
  12617. return ErrInvalidLengthTypes
  12618. }
  12619. postIndex := iNdEx + msglen
  12620. if postIndex < 0 {
  12621. return ErrInvalidLengthTypes
  12622. }
  12623. if postIndex > l {
  12624. return io.ErrUnexpectedEOF
  12625. }
  12626. m.Events = append(m.Events, Event{})
  12627. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12628. return err
  12629. }
  12630. iNdEx = postIndex
  12631. default:
  12632. iNdEx = preIndex
  12633. skippy, err := skipTypes(dAtA[iNdEx:])
  12634. if err != nil {
  12635. return err
  12636. }
  12637. if skippy < 0 {
  12638. return ErrInvalidLengthTypes
  12639. }
  12640. if (iNdEx + skippy) < 0 {
  12641. return ErrInvalidLengthTypes
  12642. }
  12643. if (iNdEx + skippy) > l {
  12644. return io.ErrUnexpectedEOF
  12645. }
  12646. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12647. iNdEx += skippy
  12648. }
  12649. }
  12650. if iNdEx > l {
  12651. return io.ErrUnexpectedEOF
  12652. }
  12653. return nil
  12654. }
  12655. func (m *ResponseCheckTx) Unmarshal(dAtA []byte) error {
  12656. l := len(dAtA)
  12657. iNdEx := 0
  12658. for iNdEx < l {
  12659. preIndex := iNdEx
  12660. var wire uint64
  12661. for shift := uint(0); ; shift += 7 {
  12662. if shift >= 64 {
  12663. return ErrIntOverflowTypes
  12664. }
  12665. if iNdEx >= l {
  12666. return io.ErrUnexpectedEOF
  12667. }
  12668. b := dAtA[iNdEx]
  12669. iNdEx++
  12670. wire |= uint64(b&0x7F) << shift
  12671. if b < 0x80 {
  12672. break
  12673. }
  12674. }
  12675. fieldNum := int32(wire >> 3)
  12676. wireType := int(wire & 0x7)
  12677. if wireType == 4 {
  12678. return fmt.Errorf("proto: ResponseCheckTx: wiretype end group for non-group")
  12679. }
  12680. if fieldNum <= 0 {
  12681. return fmt.Errorf("proto: ResponseCheckTx: illegal tag %d (wire type %d)", fieldNum, wire)
  12682. }
  12683. switch fieldNum {
  12684. case 1:
  12685. if wireType != 0 {
  12686. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  12687. }
  12688. m.Code = 0
  12689. for shift := uint(0); ; shift += 7 {
  12690. if shift >= 64 {
  12691. return ErrIntOverflowTypes
  12692. }
  12693. if iNdEx >= l {
  12694. return io.ErrUnexpectedEOF
  12695. }
  12696. b := dAtA[iNdEx]
  12697. iNdEx++
  12698. m.Code |= uint32(b&0x7F) << shift
  12699. if b < 0x80 {
  12700. break
  12701. }
  12702. }
  12703. case 2:
  12704. if wireType != 2 {
  12705. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  12706. }
  12707. var byteLen int
  12708. for shift := uint(0); ; shift += 7 {
  12709. if shift >= 64 {
  12710. return ErrIntOverflowTypes
  12711. }
  12712. if iNdEx >= l {
  12713. return io.ErrUnexpectedEOF
  12714. }
  12715. b := dAtA[iNdEx]
  12716. iNdEx++
  12717. byteLen |= int(b&0x7F) << shift
  12718. if b < 0x80 {
  12719. break
  12720. }
  12721. }
  12722. if byteLen < 0 {
  12723. return ErrInvalidLengthTypes
  12724. }
  12725. postIndex := iNdEx + byteLen
  12726. if postIndex < 0 {
  12727. return ErrInvalidLengthTypes
  12728. }
  12729. if postIndex > l {
  12730. return io.ErrUnexpectedEOF
  12731. }
  12732. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  12733. if m.Data == nil {
  12734. m.Data = []byte{}
  12735. }
  12736. iNdEx = postIndex
  12737. case 3:
  12738. if wireType != 2 {
  12739. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  12740. }
  12741. var stringLen uint64
  12742. for shift := uint(0); ; shift += 7 {
  12743. if shift >= 64 {
  12744. return ErrIntOverflowTypes
  12745. }
  12746. if iNdEx >= l {
  12747. return io.ErrUnexpectedEOF
  12748. }
  12749. b := dAtA[iNdEx]
  12750. iNdEx++
  12751. stringLen |= uint64(b&0x7F) << shift
  12752. if b < 0x80 {
  12753. break
  12754. }
  12755. }
  12756. intStringLen := int(stringLen)
  12757. if intStringLen < 0 {
  12758. return ErrInvalidLengthTypes
  12759. }
  12760. postIndex := iNdEx + intStringLen
  12761. if postIndex < 0 {
  12762. return ErrInvalidLengthTypes
  12763. }
  12764. if postIndex > l {
  12765. return io.ErrUnexpectedEOF
  12766. }
  12767. m.Log = string(dAtA[iNdEx:postIndex])
  12768. iNdEx = postIndex
  12769. case 4:
  12770. if wireType != 2 {
  12771. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  12772. }
  12773. var stringLen uint64
  12774. for shift := uint(0); ; shift += 7 {
  12775. if shift >= 64 {
  12776. return ErrIntOverflowTypes
  12777. }
  12778. if iNdEx >= l {
  12779. return io.ErrUnexpectedEOF
  12780. }
  12781. b := dAtA[iNdEx]
  12782. iNdEx++
  12783. stringLen |= uint64(b&0x7F) << shift
  12784. if b < 0x80 {
  12785. break
  12786. }
  12787. }
  12788. intStringLen := int(stringLen)
  12789. if intStringLen < 0 {
  12790. return ErrInvalidLengthTypes
  12791. }
  12792. postIndex := iNdEx + intStringLen
  12793. if postIndex < 0 {
  12794. return ErrInvalidLengthTypes
  12795. }
  12796. if postIndex > l {
  12797. return io.ErrUnexpectedEOF
  12798. }
  12799. m.Info = string(dAtA[iNdEx:postIndex])
  12800. iNdEx = postIndex
  12801. case 5:
  12802. if wireType != 0 {
  12803. return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType)
  12804. }
  12805. m.GasWanted = 0
  12806. for shift := uint(0); ; shift += 7 {
  12807. if shift >= 64 {
  12808. return ErrIntOverflowTypes
  12809. }
  12810. if iNdEx >= l {
  12811. return io.ErrUnexpectedEOF
  12812. }
  12813. b := dAtA[iNdEx]
  12814. iNdEx++
  12815. m.GasWanted |= int64(b&0x7F) << shift
  12816. if b < 0x80 {
  12817. break
  12818. }
  12819. }
  12820. case 6:
  12821. if wireType != 0 {
  12822. return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType)
  12823. }
  12824. m.GasUsed = 0
  12825. for shift := uint(0); ; shift += 7 {
  12826. if shift >= 64 {
  12827. return ErrIntOverflowTypes
  12828. }
  12829. if iNdEx >= l {
  12830. return io.ErrUnexpectedEOF
  12831. }
  12832. b := dAtA[iNdEx]
  12833. iNdEx++
  12834. m.GasUsed |= int64(b&0x7F) << shift
  12835. if b < 0x80 {
  12836. break
  12837. }
  12838. }
  12839. case 7:
  12840. if wireType != 2 {
  12841. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  12842. }
  12843. var msglen int
  12844. for shift := uint(0); ; shift += 7 {
  12845. if shift >= 64 {
  12846. return ErrIntOverflowTypes
  12847. }
  12848. if iNdEx >= l {
  12849. return io.ErrUnexpectedEOF
  12850. }
  12851. b := dAtA[iNdEx]
  12852. iNdEx++
  12853. msglen |= int(b&0x7F) << shift
  12854. if b < 0x80 {
  12855. break
  12856. }
  12857. }
  12858. if msglen < 0 {
  12859. return ErrInvalidLengthTypes
  12860. }
  12861. postIndex := iNdEx + msglen
  12862. if postIndex < 0 {
  12863. return ErrInvalidLengthTypes
  12864. }
  12865. if postIndex > l {
  12866. return io.ErrUnexpectedEOF
  12867. }
  12868. m.Events = append(m.Events, Event{})
  12869. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12870. return err
  12871. }
  12872. iNdEx = postIndex
  12873. case 8:
  12874. if wireType != 2 {
  12875. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  12876. }
  12877. var stringLen uint64
  12878. for shift := uint(0); ; shift += 7 {
  12879. if shift >= 64 {
  12880. return ErrIntOverflowTypes
  12881. }
  12882. if iNdEx >= l {
  12883. return io.ErrUnexpectedEOF
  12884. }
  12885. b := dAtA[iNdEx]
  12886. iNdEx++
  12887. stringLen |= uint64(b&0x7F) << shift
  12888. if b < 0x80 {
  12889. break
  12890. }
  12891. }
  12892. intStringLen := int(stringLen)
  12893. if intStringLen < 0 {
  12894. return ErrInvalidLengthTypes
  12895. }
  12896. postIndex := iNdEx + intStringLen
  12897. if postIndex < 0 {
  12898. return ErrInvalidLengthTypes
  12899. }
  12900. if postIndex > l {
  12901. return io.ErrUnexpectedEOF
  12902. }
  12903. m.Codespace = string(dAtA[iNdEx:postIndex])
  12904. iNdEx = postIndex
  12905. default:
  12906. iNdEx = preIndex
  12907. skippy, err := skipTypes(dAtA[iNdEx:])
  12908. if err != nil {
  12909. return err
  12910. }
  12911. if skippy < 0 {
  12912. return ErrInvalidLengthTypes
  12913. }
  12914. if (iNdEx + skippy) < 0 {
  12915. return ErrInvalidLengthTypes
  12916. }
  12917. if (iNdEx + skippy) > l {
  12918. return io.ErrUnexpectedEOF
  12919. }
  12920. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12921. iNdEx += skippy
  12922. }
  12923. }
  12924. if iNdEx > l {
  12925. return io.ErrUnexpectedEOF
  12926. }
  12927. return nil
  12928. }
  12929. func (m *ResponseDeliverTx) Unmarshal(dAtA []byte) error {
  12930. l := len(dAtA)
  12931. iNdEx := 0
  12932. for iNdEx < l {
  12933. preIndex := iNdEx
  12934. var wire uint64
  12935. for shift := uint(0); ; shift += 7 {
  12936. if shift >= 64 {
  12937. return ErrIntOverflowTypes
  12938. }
  12939. if iNdEx >= l {
  12940. return io.ErrUnexpectedEOF
  12941. }
  12942. b := dAtA[iNdEx]
  12943. iNdEx++
  12944. wire |= uint64(b&0x7F) << shift
  12945. if b < 0x80 {
  12946. break
  12947. }
  12948. }
  12949. fieldNum := int32(wire >> 3)
  12950. wireType := int(wire & 0x7)
  12951. if wireType == 4 {
  12952. return fmt.Errorf("proto: ResponseDeliverTx: wiretype end group for non-group")
  12953. }
  12954. if fieldNum <= 0 {
  12955. return fmt.Errorf("proto: ResponseDeliverTx: illegal tag %d (wire type %d)", fieldNum, wire)
  12956. }
  12957. switch fieldNum {
  12958. case 1:
  12959. if wireType != 0 {
  12960. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  12961. }
  12962. m.Code = 0
  12963. for shift := uint(0); ; shift += 7 {
  12964. if shift >= 64 {
  12965. return ErrIntOverflowTypes
  12966. }
  12967. if iNdEx >= l {
  12968. return io.ErrUnexpectedEOF
  12969. }
  12970. b := dAtA[iNdEx]
  12971. iNdEx++
  12972. m.Code |= uint32(b&0x7F) << shift
  12973. if b < 0x80 {
  12974. break
  12975. }
  12976. }
  12977. case 2:
  12978. if wireType != 2 {
  12979. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  12980. }
  12981. var byteLen int
  12982. for shift := uint(0); ; shift += 7 {
  12983. if shift >= 64 {
  12984. return ErrIntOverflowTypes
  12985. }
  12986. if iNdEx >= l {
  12987. return io.ErrUnexpectedEOF
  12988. }
  12989. b := dAtA[iNdEx]
  12990. iNdEx++
  12991. byteLen |= int(b&0x7F) << shift
  12992. if b < 0x80 {
  12993. break
  12994. }
  12995. }
  12996. if byteLen < 0 {
  12997. return ErrInvalidLengthTypes
  12998. }
  12999. postIndex := iNdEx + byteLen
  13000. if postIndex < 0 {
  13001. return ErrInvalidLengthTypes
  13002. }
  13003. if postIndex > l {
  13004. return io.ErrUnexpectedEOF
  13005. }
  13006. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  13007. if m.Data == nil {
  13008. m.Data = []byte{}
  13009. }
  13010. iNdEx = postIndex
  13011. case 3:
  13012. if wireType != 2 {
  13013. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  13014. }
  13015. var stringLen uint64
  13016. for shift := uint(0); ; shift += 7 {
  13017. if shift >= 64 {
  13018. return ErrIntOverflowTypes
  13019. }
  13020. if iNdEx >= l {
  13021. return io.ErrUnexpectedEOF
  13022. }
  13023. b := dAtA[iNdEx]
  13024. iNdEx++
  13025. stringLen |= uint64(b&0x7F) << shift
  13026. if b < 0x80 {
  13027. break
  13028. }
  13029. }
  13030. intStringLen := int(stringLen)
  13031. if intStringLen < 0 {
  13032. return ErrInvalidLengthTypes
  13033. }
  13034. postIndex := iNdEx + intStringLen
  13035. if postIndex < 0 {
  13036. return ErrInvalidLengthTypes
  13037. }
  13038. if postIndex > l {
  13039. return io.ErrUnexpectedEOF
  13040. }
  13041. m.Log = string(dAtA[iNdEx:postIndex])
  13042. iNdEx = postIndex
  13043. case 4:
  13044. if wireType != 2 {
  13045. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  13046. }
  13047. var stringLen uint64
  13048. for shift := uint(0); ; shift += 7 {
  13049. if shift >= 64 {
  13050. return ErrIntOverflowTypes
  13051. }
  13052. if iNdEx >= l {
  13053. return io.ErrUnexpectedEOF
  13054. }
  13055. b := dAtA[iNdEx]
  13056. iNdEx++
  13057. stringLen |= uint64(b&0x7F) << shift
  13058. if b < 0x80 {
  13059. break
  13060. }
  13061. }
  13062. intStringLen := int(stringLen)
  13063. if intStringLen < 0 {
  13064. return ErrInvalidLengthTypes
  13065. }
  13066. postIndex := iNdEx + intStringLen
  13067. if postIndex < 0 {
  13068. return ErrInvalidLengthTypes
  13069. }
  13070. if postIndex > l {
  13071. return io.ErrUnexpectedEOF
  13072. }
  13073. m.Info = string(dAtA[iNdEx:postIndex])
  13074. iNdEx = postIndex
  13075. case 5:
  13076. if wireType != 0 {
  13077. return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType)
  13078. }
  13079. m.GasWanted = 0
  13080. for shift := uint(0); ; shift += 7 {
  13081. if shift >= 64 {
  13082. return ErrIntOverflowTypes
  13083. }
  13084. if iNdEx >= l {
  13085. return io.ErrUnexpectedEOF
  13086. }
  13087. b := dAtA[iNdEx]
  13088. iNdEx++
  13089. m.GasWanted |= int64(b&0x7F) << shift
  13090. if b < 0x80 {
  13091. break
  13092. }
  13093. }
  13094. case 6:
  13095. if wireType != 0 {
  13096. return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType)
  13097. }
  13098. m.GasUsed = 0
  13099. for shift := uint(0); ; shift += 7 {
  13100. if shift >= 64 {
  13101. return ErrIntOverflowTypes
  13102. }
  13103. if iNdEx >= l {
  13104. return io.ErrUnexpectedEOF
  13105. }
  13106. b := dAtA[iNdEx]
  13107. iNdEx++
  13108. m.GasUsed |= int64(b&0x7F) << shift
  13109. if b < 0x80 {
  13110. break
  13111. }
  13112. }
  13113. case 7:
  13114. if wireType != 2 {
  13115. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  13116. }
  13117. var msglen int
  13118. for shift := uint(0); ; shift += 7 {
  13119. if shift >= 64 {
  13120. return ErrIntOverflowTypes
  13121. }
  13122. if iNdEx >= l {
  13123. return io.ErrUnexpectedEOF
  13124. }
  13125. b := dAtA[iNdEx]
  13126. iNdEx++
  13127. msglen |= int(b&0x7F) << shift
  13128. if b < 0x80 {
  13129. break
  13130. }
  13131. }
  13132. if msglen < 0 {
  13133. return ErrInvalidLengthTypes
  13134. }
  13135. postIndex := iNdEx + msglen
  13136. if postIndex < 0 {
  13137. return ErrInvalidLengthTypes
  13138. }
  13139. if postIndex > l {
  13140. return io.ErrUnexpectedEOF
  13141. }
  13142. m.Events = append(m.Events, Event{})
  13143. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13144. return err
  13145. }
  13146. iNdEx = postIndex
  13147. case 8:
  13148. if wireType != 2 {
  13149. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  13150. }
  13151. var stringLen uint64
  13152. for shift := uint(0); ; shift += 7 {
  13153. if shift >= 64 {
  13154. return ErrIntOverflowTypes
  13155. }
  13156. if iNdEx >= l {
  13157. return io.ErrUnexpectedEOF
  13158. }
  13159. b := dAtA[iNdEx]
  13160. iNdEx++
  13161. stringLen |= uint64(b&0x7F) << shift
  13162. if b < 0x80 {
  13163. break
  13164. }
  13165. }
  13166. intStringLen := int(stringLen)
  13167. if intStringLen < 0 {
  13168. return ErrInvalidLengthTypes
  13169. }
  13170. postIndex := iNdEx + intStringLen
  13171. if postIndex < 0 {
  13172. return ErrInvalidLengthTypes
  13173. }
  13174. if postIndex > l {
  13175. return io.ErrUnexpectedEOF
  13176. }
  13177. m.Codespace = string(dAtA[iNdEx:postIndex])
  13178. iNdEx = postIndex
  13179. default:
  13180. iNdEx = preIndex
  13181. skippy, err := skipTypes(dAtA[iNdEx:])
  13182. if err != nil {
  13183. return err
  13184. }
  13185. if skippy < 0 {
  13186. return ErrInvalidLengthTypes
  13187. }
  13188. if (iNdEx + skippy) < 0 {
  13189. return ErrInvalidLengthTypes
  13190. }
  13191. if (iNdEx + skippy) > l {
  13192. return io.ErrUnexpectedEOF
  13193. }
  13194. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13195. iNdEx += skippy
  13196. }
  13197. }
  13198. if iNdEx > l {
  13199. return io.ErrUnexpectedEOF
  13200. }
  13201. return nil
  13202. }
  13203. func (m *ResponseEndBlock) Unmarshal(dAtA []byte) error {
  13204. l := len(dAtA)
  13205. iNdEx := 0
  13206. for iNdEx < l {
  13207. preIndex := iNdEx
  13208. var wire uint64
  13209. for shift := uint(0); ; shift += 7 {
  13210. if shift >= 64 {
  13211. return ErrIntOverflowTypes
  13212. }
  13213. if iNdEx >= l {
  13214. return io.ErrUnexpectedEOF
  13215. }
  13216. b := dAtA[iNdEx]
  13217. iNdEx++
  13218. wire |= uint64(b&0x7F) << shift
  13219. if b < 0x80 {
  13220. break
  13221. }
  13222. }
  13223. fieldNum := int32(wire >> 3)
  13224. wireType := int(wire & 0x7)
  13225. if wireType == 4 {
  13226. return fmt.Errorf("proto: ResponseEndBlock: wiretype end group for non-group")
  13227. }
  13228. if fieldNum <= 0 {
  13229. return fmt.Errorf("proto: ResponseEndBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  13230. }
  13231. switch fieldNum {
  13232. case 1:
  13233. if wireType != 2 {
  13234. return fmt.Errorf("proto: wrong wireType = %d for field ValidatorUpdates", wireType)
  13235. }
  13236. var msglen int
  13237. for shift := uint(0); ; shift += 7 {
  13238. if shift >= 64 {
  13239. return ErrIntOverflowTypes
  13240. }
  13241. if iNdEx >= l {
  13242. return io.ErrUnexpectedEOF
  13243. }
  13244. b := dAtA[iNdEx]
  13245. iNdEx++
  13246. msglen |= int(b&0x7F) << shift
  13247. if b < 0x80 {
  13248. break
  13249. }
  13250. }
  13251. if msglen < 0 {
  13252. return ErrInvalidLengthTypes
  13253. }
  13254. postIndex := iNdEx + msglen
  13255. if postIndex < 0 {
  13256. return ErrInvalidLengthTypes
  13257. }
  13258. if postIndex > l {
  13259. return io.ErrUnexpectedEOF
  13260. }
  13261. m.ValidatorUpdates = append(m.ValidatorUpdates, ValidatorUpdate{})
  13262. if err := m.ValidatorUpdates[len(m.ValidatorUpdates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13263. return err
  13264. }
  13265. iNdEx = postIndex
  13266. case 2:
  13267. if wireType != 2 {
  13268. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParamUpdates", wireType)
  13269. }
  13270. var msglen int
  13271. for shift := uint(0); ; shift += 7 {
  13272. if shift >= 64 {
  13273. return ErrIntOverflowTypes
  13274. }
  13275. if iNdEx >= l {
  13276. return io.ErrUnexpectedEOF
  13277. }
  13278. b := dAtA[iNdEx]
  13279. iNdEx++
  13280. msglen |= int(b&0x7F) << shift
  13281. if b < 0x80 {
  13282. break
  13283. }
  13284. }
  13285. if msglen < 0 {
  13286. return ErrInvalidLengthTypes
  13287. }
  13288. postIndex := iNdEx + msglen
  13289. if postIndex < 0 {
  13290. return ErrInvalidLengthTypes
  13291. }
  13292. if postIndex > l {
  13293. return io.ErrUnexpectedEOF
  13294. }
  13295. if m.ConsensusParamUpdates == nil {
  13296. m.ConsensusParamUpdates = &ConsensusParams{}
  13297. }
  13298. if err := m.ConsensusParamUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13299. return err
  13300. }
  13301. iNdEx = postIndex
  13302. case 3:
  13303. if wireType != 2 {
  13304. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  13305. }
  13306. var msglen int
  13307. for shift := uint(0); ; shift += 7 {
  13308. if shift >= 64 {
  13309. return ErrIntOverflowTypes
  13310. }
  13311. if iNdEx >= l {
  13312. return io.ErrUnexpectedEOF
  13313. }
  13314. b := dAtA[iNdEx]
  13315. iNdEx++
  13316. msglen |= int(b&0x7F) << shift
  13317. if b < 0x80 {
  13318. break
  13319. }
  13320. }
  13321. if msglen < 0 {
  13322. return ErrInvalidLengthTypes
  13323. }
  13324. postIndex := iNdEx + msglen
  13325. if postIndex < 0 {
  13326. return ErrInvalidLengthTypes
  13327. }
  13328. if postIndex > l {
  13329. return io.ErrUnexpectedEOF
  13330. }
  13331. m.Events = append(m.Events, Event{})
  13332. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13333. return err
  13334. }
  13335. iNdEx = postIndex
  13336. default:
  13337. iNdEx = preIndex
  13338. skippy, err := skipTypes(dAtA[iNdEx:])
  13339. if err != nil {
  13340. return err
  13341. }
  13342. if skippy < 0 {
  13343. return ErrInvalidLengthTypes
  13344. }
  13345. if (iNdEx + skippy) < 0 {
  13346. return ErrInvalidLengthTypes
  13347. }
  13348. if (iNdEx + skippy) > l {
  13349. return io.ErrUnexpectedEOF
  13350. }
  13351. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13352. iNdEx += skippy
  13353. }
  13354. }
  13355. if iNdEx > l {
  13356. return io.ErrUnexpectedEOF
  13357. }
  13358. return nil
  13359. }
  13360. func (m *ResponseCommit) Unmarshal(dAtA []byte) error {
  13361. l := len(dAtA)
  13362. iNdEx := 0
  13363. for iNdEx < l {
  13364. preIndex := iNdEx
  13365. var wire uint64
  13366. for shift := uint(0); ; shift += 7 {
  13367. if shift >= 64 {
  13368. return ErrIntOverflowTypes
  13369. }
  13370. if iNdEx >= l {
  13371. return io.ErrUnexpectedEOF
  13372. }
  13373. b := dAtA[iNdEx]
  13374. iNdEx++
  13375. wire |= uint64(b&0x7F) << shift
  13376. if b < 0x80 {
  13377. break
  13378. }
  13379. }
  13380. fieldNum := int32(wire >> 3)
  13381. wireType := int(wire & 0x7)
  13382. if wireType == 4 {
  13383. return fmt.Errorf("proto: ResponseCommit: wiretype end group for non-group")
  13384. }
  13385. if fieldNum <= 0 {
  13386. return fmt.Errorf("proto: ResponseCommit: illegal tag %d (wire type %d)", fieldNum, wire)
  13387. }
  13388. switch fieldNum {
  13389. case 2:
  13390. if wireType != 2 {
  13391. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  13392. }
  13393. var byteLen int
  13394. for shift := uint(0); ; shift += 7 {
  13395. if shift >= 64 {
  13396. return ErrIntOverflowTypes
  13397. }
  13398. if iNdEx >= l {
  13399. return io.ErrUnexpectedEOF
  13400. }
  13401. b := dAtA[iNdEx]
  13402. iNdEx++
  13403. byteLen |= int(b&0x7F) << shift
  13404. if b < 0x80 {
  13405. break
  13406. }
  13407. }
  13408. if byteLen < 0 {
  13409. return ErrInvalidLengthTypes
  13410. }
  13411. postIndex := iNdEx + byteLen
  13412. if postIndex < 0 {
  13413. return ErrInvalidLengthTypes
  13414. }
  13415. if postIndex > l {
  13416. return io.ErrUnexpectedEOF
  13417. }
  13418. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  13419. if m.Data == nil {
  13420. m.Data = []byte{}
  13421. }
  13422. iNdEx = postIndex
  13423. default:
  13424. iNdEx = preIndex
  13425. skippy, err := skipTypes(dAtA[iNdEx:])
  13426. if err != nil {
  13427. return err
  13428. }
  13429. if skippy < 0 {
  13430. return ErrInvalidLengthTypes
  13431. }
  13432. if (iNdEx + skippy) < 0 {
  13433. return ErrInvalidLengthTypes
  13434. }
  13435. if (iNdEx + skippy) > l {
  13436. return io.ErrUnexpectedEOF
  13437. }
  13438. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13439. iNdEx += skippy
  13440. }
  13441. }
  13442. if iNdEx > l {
  13443. return io.ErrUnexpectedEOF
  13444. }
  13445. return nil
  13446. }
  13447. func (m *ConsensusParams) Unmarshal(dAtA []byte) error {
  13448. l := len(dAtA)
  13449. iNdEx := 0
  13450. for iNdEx < l {
  13451. preIndex := iNdEx
  13452. var wire uint64
  13453. for shift := uint(0); ; shift += 7 {
  13454. if shift >= 64 {
  13455. return ErrIntOverflowTypes
  13456. }
  13457. if iNdEx >= l {
  13458. return io.ErrUnexpectedEOF
  13459. }
  13460. b := dAtA[iNdEx]
  13461. iNdEx++
  13462. wire |= uint64(b&0x7F) << shift
  13463. if b < 0x80 {
  13464. break
  13465. }
  13466. }
  13467. fieldNum := int32(wire >> 3)
  13468. wireType := int(wire & 0x7)
  13469. if wireType == 4 {
  13470. return fmt.Errorf("proto: ConsensusParams: wiretype end group for non-group")
  13471. }
  13472. if fieldNum <= 0 {
  13473. return fmt.Errorf("proto: ConsensusParams: illegal tag %d (wire type %d)", fieldNum, wire)
  13474. }
  13475. switch fieldNum {
  13476. case 1:
  13477. if wireType != 2 {
  13478. return fmt.Errorf("proto: wrong wireType = %d for field Block", wireType)
  13479. }
  13480. var msglen int
  13481. for shift := uint(0); ; shift += 7 {
  13482. if shift >= 64 {
  13483. return ErrIntOverflowTypes
  13484. }
  13485. if iNdEx >= l {
  13486. return io.ErrUnexpectedEOF
  13487. }
  13488. b := dAtA[iNdEx]
  13489. iNdEx++
  13490. msglen |= int(b&0x7F) << shift
  13491. if b < 0x80 {
  13492. break
  13493. }
  13494. }
  13495. if msglen < 0 {
  13496. return ErrInvalidLengthTypes
  13497. }
  13498. postIndex := iNdEx + msglen
  13499. if postIndex < 0 {
  13500. return ErrInvalidLengthTypes
  13501. }
  13502. if postIndex > l {
  13503. return io.ErrUnexpectedEOF
  13504. }
  13505. if m.Block == nil {
  13506. m.Block = &BlockParams{}
  13507. }
  13508. if err := m.Block.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13509. return err
  13510. }
  13511. iNdEx = postIndex
  13512. case 2:
  13513. if wireType != 2 {
  13514. return fmt.Errorf("proto: wrong wireType = %d for field Evidence", wireType)
  13515. }
  13516. var msglen int
  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. msglen |= int(b&0x7F) << shift
  13527. if b < 0x80 {
  13528. break
  13529. }
  13530. }
  13531. if msglen < 0 {
  13532. return ErrInvalidLengthTypes
  13533. }
  13534. postIndex := iNdEx + msglen
  13535. if postIndex < 0 {
  13536. return ErrInvalidLengthTypes
  13537. }
  13538. if postIndex > l {
  13539. return io.ErrUnexpectedEOF
  13540. }
  13541. if m.Evidence == nil {
  13542. m.Evidence = &EvidenceParams{}
  13543. }
  13544. if err := m.Evidence.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13545. return err
  13546. }
  13547. iNdEx = postIndex
  13548. case 3:
  13549. if wireType != 2 {
  13550. return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType)
  13551. }
  13552. var msglen int
  13553. for shift := uint(0); ; shift += 7 {
  13554. if shift >= 64 {
  13555. return ErrIntOverflowTypes
  13556. }
  13557. if iNdEx >= l {
  13558. return io.ErrUnexpectedEOF
  13559. }
  13560. b := dAtA[iNdEx]
  13561. iNdEx++
  13562. msglen |= int(b&0x7F) << shift
  13563. if b < 0x80 {
  13564. break
  13565. }
  13566. }
  13567. if msglen < 0 {
  13568. return ErrInvalidLengthTypes
  13569. }
  13570. postIndex := iNdEx + msglen
  13571. if postIndex < 0 {
  13572. return ErrInvalidLengthTypes
  13573. }
  13574. if postIndex > l {
  13575. return io.ErrUnexpectedEOF
  13576. }
  13577. if m.Validator == nil {
  13578. m.Validator = &ValidatorParams{}
  13579. }
  13580. if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13581. return err
  13582. }
  13583. iNdEx = postIndex
  13584. default:
  13585. iNdEx = preIndex
  13586. skippy, err := skipTypes(dAtA[iNdEx:])
  13587. if err != nil {
  13588. return err
  13589. }
  13590. if skippy < 0 {
  13591. return ErrInvalidLengthTypes
  13592. }
  13593. if (iNdEx + skippy) < 0 {
  13594. return ErrInvalidLengthTypes
  13595. }
  13596. if (iNdEx + skippy) > l {
  13597. return io.ErrUnexpectedEOF
  13598. }
  13599. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13600. iNdEx += skippy
  13601. }
  13602. }
  13603. if iNdEx > l {
  13604. return io.ErrUnexpectedEOF
  13605. }
  13606. return nil
  13607. }
  13608. func (m *BlockParams) Unmarshal(dAtA []byte) error {
  13609. l := len(dAtA)
  13610. iNdEx := 0
  13611. for iNdEx < l {
  13612. preIndex := iNdEx
  13613. var wire uint64
  13614. for shift := uint(0); ; shift += 7 {
  13615. if shift >= 64 {
  13616. return ErrIntOverflowTypes
  13617. }
  13618. if iNdEx >= l {
  13619. return io.ErrUnexpectedEOF
  13620. }
  13621. b := dAtA[iNdEx]
  13622. iNdEx++
  13623. wire |= uint64(b&0x7F) << shift
  13624. if b < 0x80 {
  13625. break
  13626. }
  13627. }
  13628. fieldNum := int32(wire >> 3)
  13629. wireType := int(wire & 0x7)
  13630. if wireType == 4 {
  13631. return fmt.Errorf("proto: BlockParams: wiretype end group for non-group")
  13632. }
  13633. if fieldNum <= 0 {
  13634. return fmt.Errorf("proto: BlockParams: illegal tag %d (wire type %d)", fieldNum, wire)
  13635. }
  13636. switch fieldNum {
  13637. case 1:
  13638. if wireType != 0 {
  13639. return fmt.Errorf("proto: wrong wireType = %d for field MaxBytes", wireType)
  13640. }
  13641. m.MaxBytes = 0
  13642. for shift := uint(0); ; shift += 7 {
  13643. if shift >= 64 {
  13644. return ErrIntOverflowTypes
  13645. }
  13646. if iNdEx >= l {
  13647. return io.ErrUnexpectedEOF
  13648. }
  13649. b := dAtA[iNdEx]
  13650. iNdEx++
  13651. m.MaxBytes |= int64(b&0x7F) << shift
  13652. if b < 0x80 {
  13653. break
  13654. }
  13655. }
  13656. case 2:
  13657. if wireType != 0 {
  13658. return fmt.Errorf("proto: wrong wireType = %d for field MaxGas", wireType)
  13659. }
  13660. m.MaxGas = 0
  13661. for shift := uint(0); ; shift += 7 {
  13662. if shift >= 64 {
  13663. return ErrIntOverflowTypes
  13664. }
  13665. if iNdEx >= l {
  13666. return io.ErrUnexpectedEOF
  13667. }
  13668. b := dAtA[iNdEx]
  13669. iNdEx++
  13670. m.MaxGas |= int64(b&0x7F) << shift
  13671. if b < 0x80 {
  13672. break
  13673. }
  13674. }
  13675. default:
  13676. iNdEx = preIndex
  13677. skippy, err := skipTypes(dAtA[iNdEx:])
  13678. if err != nil {
  13679. return err
  13680. }
  13681. if skippy < 0 {
  13682. return ErrInvalidLengthTypes
  13683. }
  13684. if (iNdEx + skippy) < 0 {
  13685. return ErrInvalidLengthTypes
  13686. }
  13687. if (iNdEx + skippy) > l {
  13688. return io.ErrUnexpectedEOF
  13689. }
  13690. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13691. iNdEx += skippy
  13692. }
  13693. }
  13694. if iNdEx > l {
  13695. return io.ErrUnexpectedEOF
  13696. }
  13697. return nil
  13698. }
  13699. func (m *EvidenceParams) Unmarshal(dAtA []byte) error {
  13700. l := len(dAtA)
  13701. iNdEx := 0
  13702. for iNdEx < l {
  13703. preIndex := iNdEx
  13704. var wire uint64
  13705. for shift := uint(0); ; shift += 7 {
  13706. if shift >= 64 {
  13707. return ErrIntOverflowTypes
  13708. }
  13709. if iNdEx >= l {
  13710. return io.ErrUnexpectedEOF
  13711. }
  13712. b := dAtA[iNdEx]
  13713. iNdEx++
  13714. wire |= uint64(b&0x7F) << shift
  13715. if b < 0x80 {
  13716. break
  13717. }
  13718. }
  13719. fieldNum := int32(wire >> 3)
  13720. wireType := int(wire & 0x7)
  13721. if wireType == 4 {
  13722. return fmt.Errorf("proto: EvidenceParams: wiretype end group for non-group")
  13723. }
  13724. if fieldNum <= 0 {
  13725. return fmt.Errorf("proto: EvidenceParams: illegal tag %d (wire type %d)", fieldNum, wire)
  13726. }
  13727. switch fieldNum {
  13728. case 1:
  13729. if wireType != 0 {
  13730. return fmt.Errorf("proto: wrong wireType = %d for field MaxAge", wireType)
  13731. }
  13732. m.MaxAge = 0
  13733. for shift := uint(0); ; shift += 7 {
  13734. if shift >= 64 {
  13735. return ErrIntOverflowTypes
  13736. }
  13737. if iNdEx >= l {
  13738. return io.ErrUnexpectedEOF
  13739. }
  13740. b := dAtA[iNdEx]
  13741. iNdEx++
  13742. m.MaxAge |= int64(b&0x7F) << shift
  13743. if b < 0x80 {
  13744. break
  13745. }
  13746. }
  13747. default:
  13748. iNdEx = preIndex
  13749. skippy, err := skipTypes(dAtA[iNdEx:])
  13750. if err != nil {
  13751. return err
  13752. }
  13753. if skippy < 0 {
  13754. return ErrInvalidLengthTypes
  13755. }
  13756. if (iNdEx + skippy) < 0 {
  13757. return ErrInvalidLengthTypes
  13758. }
  13759. if (iNdEx + skippy) > l {
  13760. return io.ErrUnexpectedEOF
  13761. }
  13762. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13763. iNdEx += skippy
  13764. }
  13765. }
  13766. if iNdEx > l {
  13767. return io.ErrUnexpectedEOF
  13768. }
  13769. return nil
  13770. }
  13771. func (m *ValidatorParams) Unmarshal(dAtA []byte) error {
  13772. l := len(dAtA)
  13773. iNdEx := 0
  13774. for iNdEx < l {
  13775. preIndex := iNdEx
  13776. var wire uint64
  13777. for shift := uint(0); ; shift += 7 {
  13778. if shift >= 64 {
  13779. return ErrIntOverflowTypes
  13780. }
  13781. if iNdEx >= l {
  13782. return io.ErrUnexpectedEOF
  13783. }
  13784. b := dAtA[iNdEx]
  13785. iNdEx++
  13786. wire |= uint64(b&0x7F) << shift
  13787. if b < 0x80 {
  13788. break
  13789. }
  13790. }
  13791. fieldNum := int32(wire >> 3)
  13792. wireType := int(wire & 0x7)
  13793. if wireType == 4 {
  13794. return fmt.Errorf("proto: ValidatorParams: wiretype end group for non-group")
  13795. }
  13796. if fieldNum <= 0 {
  13797. return fmt.Errorf("proto: ValidatorParams: illegal tag %d (wire type %d)", fieldNum, wire)
  13798. }
  13799. switch fieldNum {
  13800. case 1:
  13801. if wireType != 2 {
  13802. return fmt.Errorf("proto: wrong wireType = %d for field PubKeyTypes", wireType)
  13803. }
  13804. var stringLen uint64
  13805. for shift := uint(0); ; shift += 7 {
  13806. if shift >= 64 {
  13807. return ErrIntOverflowTypes
  13808. }
  13809. if iNdEx >= l {
  13810. return io.ErrUnexpectedEOF
  13811. }
  13812. b := dAtA[iNdEx]
  13813. iNdEx++
  13814. stringLen |= uint64(b&0x7F) << shift
  13815. if b < 0x80 {
  13816. break
  13817. }
  13818. }
  13819. intStringLen := int(stringLen)
  13820. if intStringLen < 0 {
  13821. return ErrInvalidLengthTypes
  13822. }
  13823. postIndex := iNdEx + intStringLen
  13824. if postIndex < 0 {
  13825. return ErrInvalidLengthTypes
  13826. }
  13827. if postIndex > l {
  13828. return io.ErrUnexpectedEOF
  13829. }
  13830. m.PubKeyTypes = append(m.PubKeyTypes, string(dAtA[iNdEx:postIndex]))
  13831. iNdEx = postIndex
  13832. default:
  13833. iNdEx = preIndex
  13834. skippy, err := skipTypes(dAtA[iNdEx:])
  13835. if err != nil {
  13836. return err
  13837. }
  13838. if skippy < 0 {
  13839. return ErrInvalidLengthTypes
  13840. }
  13841. if (iNdEx + skippy) < 0 {
  13842. return ErrInvalidLengthTypes
  13843. }
  13844. if (iNdEx + skippy) > l {
  13845. return io.ErrUnexpectedEOF
  13846. }
  13847. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13848. iNdEx += skippy
  13849. }
  13850. }
  13851. if iNdEx > l {
  13852. return io.ErrUnexpectedEOF
  13853. }
  13854. return nil
  13855. }
  13856. func (m *LastCommitInfo) Unmarshal(dAtA []byte) error {
  13857. l := len(dAtA)
  13858. iNdEx := 0
  13859. for iNdEx < l {
  13860. preIndex := iNdEx
  13861. var wire uint64
  13862. for shift := uint(0); ; shift += 7 {
  13863. if shift >= 64 {
  13864. return ErrIntOverflowTypes
  13865. }
  13866. if iNdEx >= l {
  13867. return io.ErrUnexpectedEOF
  13868. }
  13869. b := dAtA[iNdEx]
  13870. iNdEx++
  13871. wire |= uint64(b&0x7F) << shift
  13872. if b < 0x80 {
  13873. break
  13874. }
  13875. }
  13876. fieldNum := int32(wire >> 3)
  13877. wireType := int(wire & 0x7)
  13878. if wireType == 4 {
  13879. return fmt.Errorf("proto: LastCommitInfo: wiretype end group for non-group")
  13880. }
  13881. if fieldNum <= 0 {
  13882. return fmt.Errorf("proto: LastCommitInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  13883. }
  13884. switch fieldNum {
  13885. case 1:
  13886. if wireType != 0 {
  13887. return fmt.Errorf("proto: wrong wireType = %d for field Round", wireType)
  13888. }
  13889. m.Round = 0
  13890. for shift := uint(0); ; shift += 7 {
  13891. if shift >= 64 {
  13892. return ErrIntOverflowTypes
  13893. }
  13894. if iNdEx >= l {
  13895. return io.ErrUnexpectedEOF
  13896. }
  13897. b := dAtA[iNdEx]
  13898. iNdEx++
  13899. m.Round |= int32(b&0x7F) << shift
  13900. if b < 0x80 {
  13901. break
  13902. }
  13903. }
  13904. case 2:
  13905. if wireType != 2 {
  13906. return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType)
  13907. }
  13908. var msglen int
  13909. for shift := uint(0); ; shift += 7 {
  13910. if shift >= 64 {
  13911. return ErrIntOverflowTypes
  13912. }
  13913. if iNdEx >= l {
  13914. return io.ErrUnexpectedEOF
  13915. }
  13916. b := dAtA[iNdEx]
  13917. iNdEx++
  13918. msglen |= int(b&0x7F) << shift
  13919. if b < 0x80 {
  13920. break
  13921. }
  13922. }
  13923. if msglen < 0 {
  13924. return ErrInvalidLengthTypes
  13925. }
  13926. postIndex := iNdEx + msglen
  13927. if postIndex < 0 {
  13928. return ErrInvalidLengthTypes
  13929. }
  13930. if postIndex > l {
  13931. return io.ErrUnexpectedEOF
  13932. }
  13933. m.Votes = append(m.Votes, VoteInfo{})
  13934. if err := m.Votes[len(m.Votes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13935. return err
  13936. }
  13937. iNdEx = postIndex
  13938. default:
  13939. iNdEx = preIndex
  13940. skippy, err := skipTypes(dAtA[iNdEx:])
  13941. if err != nil {
  13942. return err
  13943. }
  13944. if skippy < 0 {
  13945. return ErrInvalidLengthTypes
  13946. }
  13947. if (iNdEx + skippy) < 0 {
  13948. return ErrInvalidLengthTypes
  13949. }
  13950. if (iNdEx + skippy) > l {
  13951. return io.ErrUnexpectedEOF
  13952. }
  13953. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13954. iNdEx += skippy
  13955. }
  13956. }
  13957. if iNdEx > l {
  13958. return io.ErrUnexpectedEOF
  13959. }
  13960. return nil
  13961. }
  13962. func (m *Event) Unmarshal(dAtA []byte) error {
  13963. l := len(dAtA)
  13964. iNdEx := 0
  13965. for iNdEx < l {
  13966. preIndex := iNdEx
  13967. var wire uint64
  13968. for shift := uint(0); ; shift += 7 {
  13969. if shift >= 64 {
  13970. return ErrIntOverflowTypes
  13971. }
  13972. if iNdEx >= l {
  13973. return io.ErrUnexpectedEOF
  13974. }
  13975. b := dAtA[iNdEx]
  13976. iNdEx++
  13977. wire |= uint64(b&0x7F) << shift
  13978. if b < 0x80 {
  13979. break
  13980. }
  13981. }
  13982. fieldNum := int32(wire >> 3)
  13983. wireType := int(wire & 0x7)
  13984. if wireType == 4 {
  13985. return fmt.Errorf("proto: Event: wiretype end group for non-group")
  13986. }
  13987. if fieldNum <= 0 {
  13988. return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire)
  13989. }
  13990. switch fieldNum {
  13991. case 1:
  13992. if wireType != 2 {
  13993. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  13994. }
  13995. var stringLen uint64
  13996. for shift := uint(0); ; shift += 7 {
  13997. if shift >= 64 {
  13998. return ErrIntOverflowTypes
  13999. }
  14000. if iNdEx >= l {
  14001. return io.ErrUnexpectedEOF
  14002. }
  14003. b := dAtA[iNdEx]
  14004. iNdEx++
  14005. stringLen |= uint64(b&0x7F) << shift
  14006. if b < 0x80 {
  14007. break
  14008. }
  14009. }
  14010. intStringLen := int(stringLen)
  14011. if intStringLen < 0 {
  14012. return ErrInvalidLengthTypes
  14013. }
  14014. postIndex := iNdEx + intStringLen
  14015. if postIndex < 0 {
  14016. return ErrInvalidLengthTypes
  14017. }
  14018. if postIndex > l {
  14019. return io.ErrUnexpectedEOF
  14020. }
  14021. m.Type = string(dAtA[iNdEx:postIndex])
  14022. iNdEx = postIndex
  14023. case 2:
  14024. if wireType != 2 {
  14025. return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType)
  14026. }
  14027. var msglen int
  14028. for shift := uint(0); ; shift += 7 {
  14029. if shift >= 64 {
  14030. return ErrIntOverflowTypes
  14031. }
  14032. if iNdEx >= l {
  14033. return io.ErrUnexpectedEOF
  14034. }
  14035. b := dAtA[iNdEx]
  14036. iNdEx++
  14037. msglen |= int(b&0x7F) << shift
  14038. if b < 0x80 {
  14039. break
  14040. }
  14041. }
  14042. if msglen < 0 {
  14043. return ErrInvalidLengthTypes
  14044. }
  14045. postIndex := iNdEx + msglen
  14046. if postIndex < 0 {
  14047. return ErrInvalidLengthTypes
  14048. }
  14049. if postIndex > l {
  14050. return io.ErrUnexpectedEOF
  14051. }
  14052. m.Attributes = append(m.Attributes, common.KVPair{})
  14053. if err := m.Attributes[len(m.Attributes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14054. return err
  14055. }
  14056. iNdEx = postIndex
  14057. default:
  14058. iNdEx = preIndex
  14059. skippy, err := skipTypes(dAtA[iNdEx:])
  14060. if err != nil {
  14061. return err
  14062. }
  14063. if skippy < 0 {
  14064. return ErrInvalidLengthTypes
  14065. }
  14066. if (iNdEx + skippy) < 0 {
  14067. return ErrInvalidLengthTypes
  14068. }
  14069. if (iNdEx + skippy) > l {
  14070. return io.ErrUnexpectedEOF
  14071. }
  14072. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14073. iNdEx += skippy
  14074. }
  14075. }
  14076. if iNdEx > l {
  14077. return io.ErrUnexpectedEOF
  14078. }
  14079. return nil
  14080. }
  14081. func (m *Header) Unmarshal(dAtA []byte) error {
  14082. l := len(dAtA)
  14083. iNdEx := 0
  14084. for iNdEx < l {
  14085. preIndex := iNdEx
  14086. var wire uint64
  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. wire |= uint64(b&0x7F) << shift
  14097. if b < 0x80 {
  14098. break
  14099. }
  14100. }
  14101. fieldNum := int32(wire >> 3)
  14102. wireType := int(wire & 0x7)
  14103. if wireType == 4 {
  14104. return fmt.Errorf("proto: Header: wiretype end group for non-group")
  14105. }
  14106. if fieldNum <= 0 {
  14107. return fmt.Errorf("proto: Header: illegal tag %d (wire type %d)", fieldNum, wire)
  14108. }
  14109. switch fieldNum {
  14110. case 1:
  14111. if wireType != 2 {
  14112. return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  14113. }
  14114. var msglen int
  14115. for shift := uint(0); ; shift += 7 {
  14116. if shift >= 64 {
  14117. return ErrIntOverflowTypes
  14118. }
  14119. if iNdEx >= l {
  14120. return io.ErrUnexpectedEOF
  14121. }
  14122. b := dAtA[iNdEx]
  14123. iNdEx++
  14124. msglen |= int(b&0x7F) << shift
  14125. if b < 0x80 {
  14126. break
  14127. }
  14128. }
  14129. if msglen < 0 {
  14130. return ErrInvalidLengthTypes
  14131. }
  14132. postIndex := iNdEx + msglen
  14133. if postIndex < 0 {
  14134. return ErrInvalidLengthTypes
  14135. }
  14136. if postIndex > l {
  14137. return io.ErrUnexpectedEOF
  14138. }
  14139. if err := m.Version.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14140. return err
  14141. }
  14142. iNdEx = postIndex
  14143. case 2:
  14144. if wireType != 2 {
  14145. return fmt.Errorf("proto: wrong wireType = %d for field ChainID", wireType)
  14146. }
  14147. var stringLen uint64
  14148. for shift := uint(0); ; shift += 7 {
  14149. if shift >= 64 {
  14150. return ErrIntOverflowTypes
  14151. }
  14152. if iNdEx >= l {
  14153. return io.ErrUnexpectedEOF
  14154. }
  14155. b := dAtA[iNdEx]
  14156. iNdEx++
  14157. stringLen |= uint64(b&0x7F) << shift
  14158. if b < 0x80 {
  14159. break
  14160. }
  14161. }
  14162. intStringLen := int(stringLen)
  14163. if intStringLen < 0 {
  14164. return ErrInvalidLengthTypes
  14165. }
  14166. postIndex := iNdEx + intStringLen
  14167. if postIndex < 0 {
  14168. return ErrInvalidLengthTypes
  14169. }
  14170. if postIndex > l {
  14171. return io.ErrUnexpectedEOF
  14172. }
  14173. m.ChainID = string(dAtA[iNdEx:postIndex])
  14174. iNdEx = postIndex
  14175. case 3:
  14176. if wireType != 0 {
  14177. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  14178. }
  14179. m.Height = 0
  14180. for shift := uint(0); ; shift += 7 {
  14181. if shift >= 64 {
  14182. return ErrIntOverflowTypes
  14183. }
  14184. if iNdEx >= l {
  14185. return io.ErrUnexpectedEOF
  14186. }
  14187. b := dAtA[iNdEx]
  14188. iNdEx++
  14189. m.Height |= int64(b&0x7F) << shift
  14190. if b < 0x80 {
  14191. break
  14192. }
  14193. }
  14194. case 4:
  14195. if wireType != 2 {
  14196. return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
  14197. }
  14198. var msglen int
  14199. for shift := uint(0); ; shift += 7 {
  14200. if shift >= 64 {
  14201. return ErrIntOverflowTypes
  14202. }
  14203. if iNdEx >= l {
  14204. return io.ErrUnexpectedEOF
  14205. }
  14206. b := dAtA[iNdEx]
  14207. iNdEx++
  14208. msglen |= int(b&0x7F) << shift
  14209. if b < 0x80 {
  14210. break
  14211. }
  14212. }
  14213. if msglen < 0 {
  14214. return ErrInvalidLengthTypes
  14215. }
  14216. postIndex := iNdEx + msglen
  14217. if postIndex < 0 {
  14218. return ErrInvalidLengthTypes
  14219. }
  14220. if postIndex > l {
  14221. return io.ErrUnexpectedEOF
  14222. }
  14223. if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil {
  14224. return err
  14225. }
  14226. iNdEx = postIndex
  14227. case 5:
  14228. if wireType != 0 {
  14229. return fmt.Errorf("proto: wrong wireType = %d for field NumTxs", wireType)
  14230. }
  14231. m.NumTxs = 0
  14232. for shift := uint(0); ; shift += 7 {
  14233. if shift >= 64 {
  14234. return ErrIntOverflowTypes
  14235. }
  14236. if iNdEx >= l {
  14237. return io.ErrUnexpectedEOF
  14238. }
  14239. b := dAtA[iNdEx]
  14240. iNdEx++
  14241. m.NumTxs |= int64(b&0x7F) << shift
  14242. if b < 0x80 {
  14243. break
  14244. }
  14245. }
  14246. case 6:
  14247. if wireType != 0 {
  14248. return fmt.Errorf("proto: wrong wireType = %d for field TotalTxs", wireType)
  14249. }
  14250. m.TotalTxs = 0
  14251. for shift := uint(0); ; shift += 7 {
  14252. if shift >= 64 {
  14253. return ErrIntOverflowTypes
  14254. }
  14255. if iNdEx >= l {
  14256. return io.ErrUnexpectedEOF
  14257. }
  14258. b := dAtA[iNdEx]
  14259. iNdEx++
  14260. m.TotalTxs |= int64(b&0x7F) << shift
  14261. if b < 0x80 {
  14262. break
  14263. }
  14264. }
  14265. case 7:
  14266. if wireType != 2 {
  14267. return fmt.Errorf("proto: wrong wireType = %d for field LastBlockId", wireType)
  14268. }
  14269. var msglen int
  14270. for shift := uint(0); ; shift += 7 {
  14271. if shift >= 64 {
  14272. return ErrIntOverflowTypes
  14273. }
  14274. if iNdEx >= l {
  14275. return io.ErrUnexpectedEOF
  14276. }
  14277. b := dAtA[iNdEx]
  14278. iNdEx++
  14279. msglen |= int(b&0x7F) << shift
  14280. if b < 0x80 {
  14281. break
  14282. }
  14283. }
  14284. if msglen < 0 {
  14285. return ErrInvalidLengthTypes
  14286. }
  14287. postIndex := iNdEx + msglen
  14288. if postIndex < 0 {
  14289. return ErrInvalidLengthTypes
  14290. }
  14291. if postIndex > l {
  14292. return io.ErrUnexpectedEOF
  14293. }
  14294. if err := m.LastBlockId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14295. return err
  14296. }
  14297. iNdEx = postIndex
  14298. case 8:
  14299. if wireType != 2 {
  14300. return fmt.Errorf("proto: wrong wireType = %d for field LastCommitHash", wireType)
  14301. }
  14302. var byteLen int
  14303. for shift := uint(0); ; shift += 7 {
  14304. if shift >= 64 {
  14305. return ErrIntOverflowTypes
  14306. }
  14307. if iNdEx >= l {
  14308. return io.ErrUnexpectedEOF
  14309. }
  14310. b := dAtA[iNdEx]
  14311. iNdEx++
  14312. byteLen |= int(b&0x7F) << shift
  14313. if b < 0x80 {
  14314. break
  14315. }
  14316. }
  14317. if byteLen < 0 {
  14318. return ErrInvalidLengthTypes
  14319. }
  14320. postIndex := iNdEx + byteLen
  14321. if postIndex < 0 {
  14322. return ErrInvalidLengthTypes
  14323. }
  14324. if postIndex > l {
  14325. return io.ErrUnexpectedEOF
  14326. }
  14327. m.LastCommitHash = append(m.LastCommitHash[:0], dAtA[iNdEx:postIndex]...)
  14328. if m.LastCommitHash == nil {
  14329. m.LastCommitHash = []byte{}
  14330. }
  14331. iNdEx = postIndex
  14332. case 9:
  14333. if wireType != 2 {
  14334. return fmt.Errorf("proto: wrong wireType = %d for field DataHash", wireType)
  14335. }
  14336. var byteLen int
  14337. for shift := uint(0); ; shift += 7 {
  14338. if shift >= 64 {
  14339. return ErrIntOverflowTypes
  14340. }
  14341. if iNdEx >= l {
  14342. return io.ErrUnexpectedEOF
  14343. }
  14344. b := dAtA[iNdEx]
  14345. iNdEx++
  14346. byteLen |= int(b&0x7F) << shift
  14347. if b < 0x80 {
  14348. break
  14349. }
  14350. }
  14351. if byteLen < 0 {
  14352. return ErrInvalidLengthTypes
  14353. }
  14354. postIndex := iNdEx + byteLen
  14355. if postIndex < 0 {
  14356. return ErrInvalidLengthTypes
  14357. }
  14358. if postIndex > l {
  14359. return io.ErrUnexpectedEOF
  14360. }
  14361. m.DataHash = append(m.DataHash[:0], dAtA[iNdEx:postIndex]...)
  14362. if m.DataHash == nil {
  14363. m.DataHash = []byte{}
  14364. }
  14365. iNdEx = postIndex
  14366. case 10:
  14367. if wireType != 2 {
  14368. return fmt.Errorf("proto: wrong wireType = %d for field ValidatorsHash", wireType)
  14369. }
  14370. var byteLen int
  14371. for shift := uint(0); ; shift += 7 {
  14372. if shift >= 64 {
  14373. return ErrIntOverflowTypes
  14374. }
  14375. if iNdEx >= l {
  14376. return io.ErrUnexpectedEOF
  14377. }
  14378. b := dAtA[iNdEx]
  14379. iNdEx++
  14380. byteLen |= int(b&0x7F) << shift
  14381. if b < 0x80 {
  14382. break
  14383. }
  14384. }
  14385. if byteLen < 0 {
  14386. return ErrInvalidLengthTypes
  14387. }
  14388. postIndex := iNdEx + byteLen
  14389. if postIndex < 0 {
  14390. return ErrInvalidLengthTypes
  14391. }
  14392. if postIndex > l {
  14393. return io.ErrUnexpectedEOF
  14394. }
  14395. m.ValidatorsHash = append(m.ValidatorsHash[:0], dAtA[iNdEx:postIndex]...)
  14396. if m.ValidatorsHash == nil {
  14397. m.ValidatorsHash = []byte{}
  14398. }
  14399. iNdEx = postIndex
  14400. case 11:
  14401. if wireType != 2 {
  14402. return fmt.Errorf("proto: wrong wireType = %d for field NextValidatorsHash", wireType)
  14403. }
  14404. var byteLen int
  14405. for shift := uint(0); ; shift += 7 {
  14406. if shift >= 64 {
  14407. return ErrIntOverflowTypes
  14408. }
  14409. if iNdEx >= l {
  14410. return io.ErrUnexpectedEOF
  14411. }
  14412. b := dAtA[iNdEx]
  14413. iNdEx++
  14414. byteLen |= int(b&0x7F) << shift
  14415. if b < 0x80 {
  14416. break
  14417. }
  14418. }
  14419. if byteLen < 0 {
  14420. return ErrInvalidLengthTypes
  14421. }
  14422. postIndex := iNdEx + byteLen
  14423. if postIndex < 0 {
  14424. return ErrInvalidLengthTypes
  14425. }
  14426. if postIndex > l {
  14427. return io.ErrUnexpectedEOF
  14428. }
  14429. m.NextValidatorsHash = append(m.NextValidatorsHash[:0], dAtA[iNdEx:postIndex]...)
  14430. if m.NextValidatorsHash == nil {
  14431. m.NextValidatorsHash = []byte{}
  14432. }
  14433. iNdEx = postIndex
  14434. case 12:
  14435. if wireType != 2 {
  14436. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusHash", wireType)
  14437. }
  14438. var byteLen int
  14439. for shift := uint(0); ; shift += 7 {
  14440. if shift >= 64 {
  14441. return ErrIntOverflowTypes
  14442. }
  14443. if iNdEx >= l {
  14444. return io.ErrUnexpectedEOF
  14445. }
  14446. b := dAtA[iNdEx]
  14447. iNdEx++
  14448. byteLen |= int(b&0x7F) << shift
  14449. if b < 0x80 {
  14450. break
  14451. }
  14452. }
  14453. if byteLen < 0 {
  14454. return ErrInvalidLengthTypes
  14455. }
  14456. postIndex := iNdEx + byteLen
  14457. if postIndex < 0 {
  14458. return ErrInvalidLengthTypes
  14459. }
  14460. if postIndex > l {
  14461. return io.ErrUnexpectedEOF
  14462. }
  14463. m.ConsensusHash = append(m.ConsensusHash[:0], dAtA[iNdEx:postIndex]...)
  14464. if m.ConsensusHash == nil {
  14465. m.ConsensusHash = []byte{}
  14466. }
  14467. iNdEx = postIndex
  14468. case 13:
  14469. if wireType != 2 {
  14470. return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType)
  14471. }
  14472. var byteLen int
  14473. for shift := uint(0); ; shift += 7 {
  14474. if shift >= 64 {
  14475. return ErrIntOverflowTypes
  14476. }
  14477. if iNdEx >= l {
  14478. return io.ErrUnexpectedEOF
  14479. }
  14480. b := dAtA[iNdEx]
  14481. iNdEx++
  14482. byteLen |= int(b&0x7F) << shift
  14483. if b < 0x80 {
  14484. break
  14485. }
  14486. }
  14487. if byteLen < 0 {
  14488. return ErrInvalidLengthTypes
  14489. }
  14490. postIndex := iNdEx + byteLen
  14491. if postIndex < 0 {
  14492. return ErrInvalidLengthTypes
  14493. }
  14494. if postIndex > l {
  14495. return io.ErrUnexpectedEOF
  14496. }
  14497. m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...)
  14498. if m.AppHash == nil {
  14499. m.AppHash = []byte{}
  14500. }
  14501. iNdEx = postIndex
  14502. case 14:
  14503. if wireType != 2 {
  14504. return fmt.Errorf("proto: wrong wireType = %d for field LastResultsHash", wireType)
  14505. }
  14506. var byteLen int
  14507. for shift := uint(0); ; shift += 7 {
  14508. if shift >= 64 {
  14509. return ErrIntOverflowTypes
  14510. }
  14511. if iNdEx >= l {
  14512. return io.ErrUnexpectedEOF
  14513. }
  14514. b := dAtA[iNdEx]
  14515. iNdEx++
  14516. byteLen |= int(b&0x7F) << shift
  14517. if b < 0x80 {
  14518. break
  14519. }
  14520. }
  14521. if byteLen < 0 {
  14522. return ErrInvalidLengthTypes
  14523. }
  14524. postIndex := iNdEx + byteLen
  14525. if postIndex < 0 {
  14526. return ErrInvalidLengthTypes
  14527. }
  14528. if postIndex > l {
  14529. return io.ErrUnexpectedEOF
  14530. }
  14531. m.LastResultsHash = append(m.LastResultsHash[:0], dAtA[iNdEx:postIndex]...)
  14532. if m.LastResultsHash == nil {
  14533. m.LastResultsHash = []byte{}
  14534. }
  14535. iNdEx = postIndex
  14536. case 15:
  14537. if wireType != 2 {
  14538. return fmt.Errorf("proto: wrong wireType = %d for field EvidenceHash", wireType)
  14539. }
  14540. var byteLen int
  14541. for shift := uint(0); ; shift += 7 {
  14542. if shift >= 64 {
  14543. return ErrIntOverflowTypes
  14544. }
  14545. if iNdEx >= l {
  14546. return io.ErrUnexpectedEOF
  14547. }
  14548. b := dAtA[iNdEx]
  14549. iNdEx++
  14550. byteLen |= int(b&0x7F) << shift
  14551. if b < 0x80 {
  14552. break
  14553. }
  14554. }
  14555. if byteLen < 0 {
  14556. return ErrInvalidLengthTypes
  14557. }
  14558. postIndex := iNdEx + byteLen
  14559. if postIndex < 0 {
  14560. return ErrInvalidLengthTypes
  14561. }
  14562. if postIndex > l {
  14563. return io.ErrUnexpectedEOF
  14564. }
  14565. m.EvidenceHash = append(m.EvidenceHash[:0], dAtA[iNdEx:postIndex]...)
  14566. if m.EvidenceHash == nil {
  14567. m.EvidenceHash = []byte{}
  14568. }
  14569. iNdEx = postIndex
  14570. case 16:
  14571. if wireType != 2 {
  14572. return fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", wireType)
  14573. }
  14574. var byteLen int
  14575. for shift := uint(0); ; shift += 7 {
  14576. if shift >= 64 {
  14577. return ErrIntOverflowTypes
  14578. }
  14579. if iNdEx >= l {
  14580. return io.ErrUnexpectedEOF
  14581. }
  14582. b := dAtA[iNdEx]
  14583. iNdEx++
  14584. byteLen |= int(b&0x7F) << shift
  14585. if b < 0x80 {
  14586. break
  14587. }
  14588. }
  14589. if byteLen < 0 {
  14590. return ErrInvalidLengthTypes
  14591. }
  14592. postIndex := iNdEx + byteLen
  14593. if postIndex < 0 {
  14594. return ErrInvalidLengthTypes
  14595. }
  14596. if postIndex > l {
  14597. return io.ErrUnexpectedEOF
  14598. }
  14599. m.ProposerAddress = append(m.ProposerAddress[:0], dAtA[iNdEx:postIndex]...)
  14600. if m.ProposerAddress == nil {
  14601. m.ProposerAddress = []byte{}
  14602. }
  14603. iNdEx = postIndex
  14604. default:
  14605. iNdEx = preIndex
  14606. skippy, err := skipTypes(dAtA[iNdEx:])
  14607. if err != nil {
  14608. return err
  14609. }
  14610. if skippy < 0 {
  14611. return ErrInvalidLengthTypes
  14612. }
  14613. if (iNdEx + skippy) < 0 {
  14614. return ErrInvalidLengthTypes
  14615. }
  14616. if (iNdEx + skippy) > l {
  14617. return io.ErrUnexpectedEOF
  14618. }
  14619. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14620. iNdEx += skippy
  14621. }
  14622. }
  14623. if iNdEx > l {
  14624. return io.ErrUnexpectedEOF
  14625. }
  14626. return nil
  14627. }
  14628. func (m *Version) Unmarshal(dAtA []byte) error {
  14629. l := len(dAtA)
  14630. iNdEx := 0
  14631. for iNdEx < l {
  14632. preIndex := iNdEx
  14633. var wire uint64
  14634. for shift := uint(0); ; shift += 7 {
  14635. if shift >= 64 {
  14636. return ErrIntOverflowTypes
  14637. }
  14638. if iNdEx >= l {
  14639. return io.ErrUnexpectedEOF
  14640. }
  14641. b := dAtA[iNdEx]
  14642. iNdEx++
  14643. wire |= uint64(b&0x7F) << shift
  14644. if b < 0x80 {
  14645. break
  14646. }
  14647. }
  14648. fieldNum := int32(wire >> 3)
  14649. wireType := int(wire & 0x7)
  14650. if wireType == 4 {
  14651. return fmt.Errorf("proto: Version: wiretype end group for non-group")
  14652. }
  14653. if fieldNum <= 0 {
  14654. return fmt.Errorf("proto: Version: illegal tag %d (wire type %d)", fieldNum, wire)
  14655. }
  14656. switch fieldNum {
  14657. case 1:
  14658. if wireType != 0 {
  14659. return fmt.Errorf("proto: wrong wireType = %d for field Block", wireType)
  14660. }
  14661. m.Block = 0
  14662. for shift := uint(0); ; shift += 7 {
  14663. if shift >= 64 {
  14664. return ErrIntOverflowTypes
  14665. }
  14666. if iNdEx >= l {
  14667. return io.ErrUnexpectedEOF
  14668. }
  14669. b := dAtA[iNdEx]
  14670. iNdEx++
  14671. m.Block |= uint64(b&0x7F) << shift
  14672. if b < 0x80 {
  14673. break
  14674. }
  14675. }
  14676. case 2:
  14677. if wireType != 0 {
  14678. return fmt.Errorf("proto: wrong wireType = %d for field App", wireType)
  14679. }
  14680. m.App = 0
  14681. for shift := uint(0); ; shift += 7 {
  14682. if shift >= 64 {
  14683. return ErrIntOverflowTypes
  14684. }
  14685. if iNdEx >= l {
  14686. return io.ErrUnexpectedEOF
  14687. }
  14688. b := dAtA[iNdEx]
  14689. iNdEx++
  14690. m.App |= uint64(b&0x7F) << shift
  14691. if b < 0x80 {
  14692. break
  14693. }
  14694. }
  14695. default:
  14696. iNdEx = preIndex
  14697. skippy, err := skipTypes(dAtA[iNdEx:])
  14698. if err != nil {
  14699. return err
  14700. }
  14701. if skippy < 0 {
  14702. return ErrInvalidLengthTypes
  14703. }
  14704. if (iNdEx + skippy) < 0 {
  14705. return ErrInvalidLengthTypes
  14706. }
  14707. if (iNdEx + skippy) > l {
  14708. return io.ErrUnexpectedEOF
  14709. }
  14710. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14711. iNdEx += skippy
  14712. }
  14713. }
  14714. if iNdEx > l {
  14715. return io.ErrUnexpectedEOF
  14716. }
  14717. return nil
  14718. }
  14719. func (m *BlockID) Unmarshal(dAtA []byte) error {
  14720. l := len(dAtA)
  14721. iNdEx := 0
  14722. for iNdEx < l {
  14723. preIndex := iNdEx
  14724. var wire uint64
  14725. for shift := uint(0); ; shift += 7 {
  14726. if shift >= 64 {
  14727. return ErrIntOverflowTypes
  14728. }
  14729. if iNdEx >= l {
  14730. return io.ErrUnexpectedEOF
  14731. }
  14732. b := dAtA[iNdEx]
  14733. iNdEx++
  14734. wire |= uint64(b&0x7F) << shift
  14735. if b < 0x80 {
  14736. break
  14737. }
  14738. }
  14739. fieldNum := int32(wire >> 3)
  14740. wireType := int(wire & 0x7)
  14741. if wireType == 4 {
  14742. return fmt.Errorf("proto: BlockID: wiretype end group for non-group")
  14743. }
  14744. if fieldNum <= 0 {
  14745. return fmt.Errorf("proto: BlockID: illegal tag %d (wire type %d)", fieldNum, wire)
  14746. }
  14747. switch fieldNum {
  14748. case 1:
  14749. if wireType != 2 {
  14750. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  14751. }
  14752. var byteLen int
  14753. for shift := uint(0); ; shift += 7 {
  14754. if shift >= 64 {
  14755. return ErrIntOverflowTypes
  14756. }
  14757. if iNdEx >= l {
  14758. return io.ErrUnexpectedEOF
  14759. }
  14760. b := dAtA[iNdEx]
  14761. iNdEx++
  14762. byteLen |= int(b&0x7F) << shift
  14763. if b < 0x80 {
  14764. break
  14765. }
  14766. }
  14767. if byteLen < 0 {
  14768. return ErrInvalidLengthTypes
  14769. }
  14770. postIndex := iNdEx + byteLen
  14771. if postIndex < 0 {
  14772. return ErrInvalidLengthTypes
  14773. }
  14774. if postIndex > l {
  14775. return io.ErrUnexpectedEOF
  14776. }
  14777. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  14778. if m.Hash == nil {
  14779. m.Hash = []byte{}
  14780. }
  14781. iNdEx = postIndex
  14782. case 2:
  14783. if wireType != 2 {
  14784. return fmt.Errorf("proto: wrong wireType = %d for field PartsHeader", wireType)
  14785. }
  14786. var msglen int
  14787. for shift := uint(0); ; shift += 7 {
  14788. if shift >= 64 {
  14789. return ErrIntOverflowTypes
  14790. }
  14791. if iNdEx >= l {
  14792. return io.ErrUnexpectedEOF
  14793. }
  14794. b := dAtA[iNdEx]
  14795. iNdEx++
  14796. msglen |= int(b&0x7F) << shift
  14797. if b < 0x80 {
  14798. break
  14799. }
  14800. }
  14801. if msglen < 0 {
  14802. return ErrInvalidLengthTypes
  14803. }
  14804. postIndex := iNdEx + msglen
  14805. if postIndex < 0 {
  14806. return ErrInvalidLengthTypes
  14807. }
  14808. if postIndex > l {
  14809. return io.ErrUnexpectedEOF
  14810. }
  14811. if err := m.PartsHeader.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14812. return err
  14813. }
  14814. iNdEx = postIndex
  14815. default:
  14816. iNdEx = preIndex
  14817. skippy, err := skipTypes(dAtA[iNdEx:])
  14818. if err != nil {
  14819. return err
  14820. }
  14821. if skippy < 0 {
  14822. return ErrInvalidLengthTypes
  14823. }
  14824. if (iNdEx + skippy) < 0 {
  14825. return ErrInvalidLengthTypes
  14826. }
  14827. if (iNdEx + skippy) > l {
  14828. return io.ErrUnexpectedEOF
  14829. }
  14830. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14831. iNdEx += skippy
  14832. }
  14833. }
  14834. if iNdEx > l {
  14835. return io.ErrUnexpectedEOF
  14836. }
  14837. return nil
  14838. }
  14839. func (m *PartSetHeader) Unmarshal(dAtA []byte) error {
  14840. l := len(dAtA)
  14841. iNdEx := 0
  14842. for iNdEx < l {
  14843. preIndex := iNdEx
  14844. var wire uint64
  14845. for shift := uint(0); ; shift += 7 {
  14846. if shift >= 64 {
  14847. return ErrIntOverflowTypes
  14848. }
  14849. if iNdEx >= l {
  14850. return io.ErrUnexpectedEOF
  14851. }
  14852. b := dAtA[iNdEx]
  14853. iNdEx++
  14854. wire |= uint64(b&0x7F) << shift
  14855. if b < 0x80 {
  14856. break
  14857. }
  14858. }
  14859. fieldNum := int32(wire >> 3)
  14860. wireType := int(wire & 0x7)
  14861. if wireType == 4 {
  14862. return fmt.Errorf("proto: PartSetHeader: wiretype end group for non-group")
  14863. }
  14864. if fieldNum <= 0 {
  14865. return fmt.Errorf("proto: PartSetHeader: illegal tag %d (wire type %d)", fieldNum, wire)
  14866. }
  14867. switch fieldNum {
  14868. case 1:
  14869. if wireType != 0 {
  14870. return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType)
  14871. }
  14872. m.Total = 0
  14873. for shift := uint(0); ; shift += 7 {
  14874. if shift >= 64 {
  14875. return ErrIntOverflowTypes
  14876. }
  14877. if iNdEx >= l {
  14878. return io.ErrUnexpectedEOF
  14879. }
  14880. b := dAtA[iNdEx]
  14881. iNdEx++
  14882. m.Total |= int32(b&0x7F) << shift
  14883. if b < 0x80 {
  14884. break
  14885. }
  14886. }
  14887. case 2:
  14888. if wireType != 2 {
  14889. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  14890. }
  14891. var byteLen int
  14892. for shift := uint(0); ; shift += 7 {
  14893. if shift >= 64 {
  14894. return ErrIntOverflowTypes
  14895. }
  14896. if iNdEx >= l {
  14897. return io.ErrUnexpectedEOF
  14898. }
  14899. b := dAtA[iNdEx]
  14900. iNdEx++
  14901. byteLen |= int(b&0x7F) << shift
  14902. if b < 0x80 {
  14903. break
  14904. }
  14905. }
  14906. if byteLen < 0 {
  14907. return ErrInvalidLengthTypes
  14908. }
  14909. postIndex := iNdEx + byteLen
  14910. if postIndex < 0 {
  14911. return ErrInvalidLengthTypes
  14912. }
  14913. if postIndex > l {
  14914. return io.ErrUnexpectedEOF
  14915. }
  14916. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  14917. if m.Hash == nil {
  14918. m.Hash = []byte{}
  14919. }
  14920. iNdEx = postIndex
  14921. default:
  14922. iNdEx = preIndex
  14923. skippy, err := skipTypes(dAtA[iNdEx:])
  14924. if err != nil {
  14925. return err
  14926. }
  14927. if skippy < 0 {
  14928. return ErrInvalidLengthTypes
  14929. }
  14930. if (iNdEx + skippy) < 0 {
  14931. return ErrInvalidLengthTypes
  14932. }
  14933. if (iNdEx + skippy) > l {
  14934. return io.ErrUnexpectedEOF
  14935. }
  14936. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14937. iNdEx += skippy
  14938. }
  14939. }
  14940. if iNdEx > l {
  14941. return io.ErrUnexpectedEOF
  14942. }
  14943. return nil
  14944. }
  14945. func (m *Validator) Unmarshal(dAtA []byte) error {
  14946. l := len(dAtA)
  14947. iNdEx := 0
  14948. for iNdEx < l {
  14949. preIndex := iNdEx
  14950. var wire uint64
  14951. for shift := uint(0); ; shift += 7 {
  14952. if shift >= 64 {
  14953. return ErrIntOverflowTypes
  14954. }
  14955. if iNdEx >= l {
  14956. return io.ErrUnexpectedEOF
  14957. }
  14958. b := dAtA[iNdEx]
  14959. iNdEx++
  14960. wire |= uint64(b&0x7F) << shift
  14961. if b < 0x80 {
  14962. break
  14963. }
  14964. }
  14965. fieldNum := int32(wire >> 3)
  14966. wireType := int(wire & 0x7)
  14967. if wireType == 4 {
  14968. return fmt.Errorf("proto: Validator: wiretype end group for non-group")
  14969. }
  14970. if fieldNum <= 0 {
  14971. return fmt.Errorf("proto: Validator: illegal tag %d (wire type %d)", fieldNum, wire)
  14972. }
  14973. switch fieldNum {
  14974. case 1:
  14975. if wireType != 2 {
  14976. return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
  14977. }
  14978. var byteLen int
  14979. for shift := uint(0); ; shift += 7 {
  14980. if shift >= 64 {
  14981. return ErrIntOverflowTypes
  14982. }
  14983. if iNdEx >= l {
  14984. return io.ErrUnexpectedEOF
  14985. }
  14986. b := dAtA[iNdEx]
  14987. iNdEx++
  14988. byteLen |= int(b&0x7F) << shift
  14989. if b < 0x80 {
  14990. break
  14991. }
  14992. }
  14993. if byteLen < 0 {
  14994. return ErrInvalidLengthTypes
  14995. }
  14996. postIndex := iNdEx + byteLen
  14997. if postIndex < 0 {
  14998. return ErrInvalidLengthTypes
  14999. }
  15000. if postIndex > l {
  15001. return io.ErrUnexpectedEOF
  15002. }
  15003. m.Address = append(m.Address[:0], dAtA[iNdEx:postIndex]...)
  15004. if m.Address == nil {
  15005. m.Address = []byte{}
  15006. }
  15007. iNdEx = postIndex
  15008. case 3:
  15009. if wireType != 0 {
  15010. return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
  15011. }
  15012. m.Power = 0
  15013. for shift := uint(0); ; shift += 7 {
  15014. if shift >= 64 {
  15015. return ErrIntOverflowTypes
  15016. }
  15017. if iNdEx >= l {
  15018. return io.ErrUnexpectedEOF
  15019. }
  15020. b := dAtA[iNdEx]
  15021. iNdEx++
  15022. m.Power |= int64(b&0x7F) << shift
  15023. if b < 0x80 {
  15024. break
  15025. }
  15026. }
  15027. default:
  15028. iNdEx = preIndex
  15029. skippy, err := skipTypes(dAtA[iNdEx:])
  15030. if err != nil {
  15031. return err
  15032. }
  15033. if skippy < 0 {
  15034. return ErrInvalidLengthTypes
  15035. }
  15036. if (iNdEx + skippy) < 0 {
  15037. return ErrInvalidLengthTypes
  15038. }
  15039. if (iNdEx + skippy) > l {
  15040. return io.ErrUnexpectedEOF
  15041. }
  15042. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  15043. iNdEx += skippy
  15044. }
  15045. }
  15046. if iNdEx > l {
  15047. return io.ErrUnexpectedEOF
  15048. }
  15049. return nil
  15050. }
  15051. func (m *ValidatorUpdate) Unmarshal(dAtA []byte) error {
  15052. l := len(dAtA)
  15053. iNdEx := 0
  15054. for iNdEx < l {
  15055. preIndex := iNdEx
  15056. var wire uint64
  15057. for shift := uint(0); ; shift += 7 {
  15058. if shift >= 64 {
  15059. return ErrIntOverflowTypes
  15060. }
  15061. if iNdEx >= l {
  15062. return io.ErrUnexpectedEOF
  15063. }
  15064. b := dAtA[iNdEx]
  15065. iNdEx++
  15066. wire |= uint64(b&0x7F) << shift
  15067. if b < 0x80 {
  15068. break
  15069. }
  15070. }
  15071. fieldNum := int32(wire >> 3)
  15072. wireType := int(wire & 0x7)
  15073. if wireType == 4 {
  15074. return fmt.Errorf("proto: ValidatorUpdate: wiretype end group for non-group")
  15075. }
  15076. if fieldNum <= 0 {
  15077. return fmt.Errorf("proto: ValidatorUpdate: illegal tag %d (wire type %d)", fieldNum, wire)
  15078. }
  15079. switch fieldNum {
  15080. case 1:
  15081. if wireType != 2 {
  15082. return fmt.Errorf("proto: wrong wireType = %d for field PubKey", wireType)
  15083. }
  15084. var msglen int
  15085. for shift := uint(0); ; shift += 7 {
  15086. if shift >= 64 {
  15087. return ErrIntOverflowTypes
  15088. }
  15089. if iNdEx >= l {
  15090. return io.ErrUnexpectedEOF
  15091. }
  15092. b := dAtA[iNdEx]
  15093. iNdEx++
  15094. msglen |= int(b&0x7F) << shift
  15095. if b < 0x80 {
  15096. break
  15097. }
  15098. }
  15099. if msglen < 0 {
  15100. return ErrInvalidLengthTypes
  15101. }
  15102. postIndex := iNdEx + msglen
  15103. if postIndex < 0 {
  15104. return ErrInvalidLengthTypes
  15105. }
  15106. if postIndex > l {
  15107. return io.ErrUnexpectedEOF
  15108. }
  15109. if err := m.PubKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15110. return err
  15111. }
  15112. iNdEx = postIndex
  15113. case 2:
  15114. if wireType != 0 {
  15115. return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
  15116. }
  15117. m.Power = 0
  15118. for shift := uint(0); ; shift += 7 {
  15119. if shift >= 64 {
  15120. return ErrIntOverflowTypes
  15121. }
  15122. if iNdEx >= l {
  15123. return io.ErrUnexpectedEOF
  15124. }
  15125. b := dAtA[iNdEx]
  15126. iNdEx++
  15127. m.Power |= int64(b&0x7F) << shift
  15128. if b < 0x80 {
  15129. break
  15130. }
  15131. }
  15132. default:
  15133. iNdEx = preIndex
  15134. skippy, err := skipTypes(dAtA[iNdEx:])
  15135. if err != nil {
  15136. return err
  15137. }
  15138. if skippy < 0 {
  15139. return ErrInvalidLengthTypes
  15140. }
  15141. if (iNdEx + skippy) < 0 {
  15142. return ErrInvalidLengthTypes
  15143. }
  15144. if (iNdEx + skippy) > l {
  15145. return io.ErrUnexpectedEOF
  15146. }
  15147. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  15148. iNdEx += skippy
  15149. }
  15150. }
  15151. if iNdEx > l {
  15152. return io.ErrUnexpectedEOF
  15153. }
  15154. return nil
  15155. }
  15156. func (m *VoteInfo) Unmarshal(dAtA []byte) error {
  15157. l := len(dAtA)
  15158. iNdEx := 0
  15159. for iNdEx < l {
  15160. preIndex := iNdEx
  15161. var wire uint64
  15162. for shift := uint(0); ; shift += 7 {
  15163. if shift >= 64 {
  15164. return ErrIntOverflowTypes
  15165. }
  15166. if iNdEx >= l {
  15167. return io.ErrUnexpectedEOF
  15168. }
  15169. b := dAtA[iNdEx]
  15170. iNdEx++
  15171. wire |= uint64(b&0x7F) << shift
  15172. if b < 0x80 {
  15173. break
  15174. }
  15175. }
  15176. fieldNum := int32(wire >> 3)
  15177. wireType := int(wire & 0x7)
  15178. if wireType == 4 {
  15179. return fmt.Errorf("proto: VoteInfo: wiretype end group for non-group")
  15180. }
  15181. if fieldNum <= 0 {
  15182. return fmt.Errorf("proto: VoteInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  15183. }
  15184. switch fieldNum {
  15185. case 1:
  15186. if wireType != 2 {
  15187. return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType)
  15188. }
  15189. var msglen int
  15190. for shift := uint(0); ; shift += 7 {
  15191. if shift >= 64 {
  15192. return ErrIntOverflowTypes
  15193. }
  15194. if iNdEx >= l {
  15195. return io.ErrUnexpectedEOF
  15196. }
  15197. b := dAtA[iNdEx]
  15198. iNdEx++
  15199. msglen |= int(b&0x7F) << shift
  15200. if b < 0x80 {
  15201. break
  15202. }
  15203. }
  15204. if msglen < 0 {
  15205. return ErrInvalidLengthTypes
  15206. }
  15207. postIndex := iNdEx + msglen
  15208. if postIndex < 0 {
  15209. return ErrInvalidLengthTypes
  15210. }
  15211. if postIndex > l {
  15212. return io.ErrUnexpectedEOF
  15213. }
  15214. if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15215. return err
  15216. }
  15217. iNdEx = postIndex
  15218. case 2:
  15219. if wireType != 0 {
  15220. return fmt.Errorf("proto: wrong wireType = %d for field SignedLastBlock", wireType)
  15221. }
  15222. var v int
  15223. for shift := uint(0); ; shift += 7 {
  15224. if shift >= 64 {
  15225. return ErrIntOverflowTypes
  15226. }
  15227. if iNdEx >= l {
  15228. return io.ErrUnexpectedEOF
  15229. }
  15230. b := dAtA[iNdEx]
  15231. iNdEx++
  15232. v |= int(b&0x7F) << shift
  15233. if b < 0x80 {
  15234. break
  15235. }
  15236. }
  15237. m.SignedLastBlock = bool(v != 0)
  15238. default:
  15239. iNdEx = preIndex
  15240. skippy, err := skipTypes(dAtA[iNdEx:])
  15241. if err != nil {
  15242. return err
  15243. }
  15244. if skippy < 0 {
  15245. return ErrInvalidLengthTypes
  15246. }
  15247. if (iNdEx + skippy) < 0 {
  15248. return ErrInvalidLengthTypes
  15249. }
  15250. if (iNdEx + skippy) > l {
  15251. return io.ErrUnexpectedEOF
  15252. }
  15253. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  15254. iNdEx += skippy
  15255. }
  15256. }
  15257. if iNdEx > l {
  15258. return io.ErrUnexpectedEOF
  15259. }
  15260. return nil
  15261. }
  15262. func (m *PubKey) Unmarshal(dAtA []byte) error {
  15263. l := len(dAtA)
  15264. iNdEx := 0
  15265. for iNdEx < l {
  15266. preIndex := iNdEx
  15267. var wire uint64
  15268. for shift := uint(0); ; shift += 7 {
  15269. if shift >= 64 {
  15270. return ErrIntOverflowTypes
  15271. }
  15272. if iNdEx >= l {
  15273. return io.ErrUnexpectedEOF
  15274. }
  15275. b := dAtA[iNdEx]
  15276. iNdEx++
  15277. wire |= uint64(b&0x7F) << shift
  15278. if b < 0x80 {
  15279. break
  15280. }
  15281. }
  15282. fieldNum := int32(wire >> 3)
  15283. wireType := int(wire & 0x7)
  15284. if wireType == 4 {
  15285. return fmt.Errorf("proto: PubKey: wiretype end group for non-group")
  15286. }
  15287. if fieldNum <= 0 {
  15288. return fmt.Errorf("proto: PubKey: illegal tag %d (wire type %d)", fieldNum, wire)
  15289. }
  15290. switch fieldNum {
  15291. case 1:
  15292. if wireType != 2 {
  15293. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  15294. }
  15295. var stringLen uint64
  15296. for shift := uint(0); ; shift += 7 {
  15297. if shift >= 64 {
  15298. return ErrIntOverflowTypes
  15299. }
  15300. if iNdEx >= l {
  15301. return io.ErrUnexpectedEOF
  15302. }
  15303. b := dAtA[iNdEx]
  15304. iNdEx++
  15305. stringLen |= uint64(b&0x7F) << shift
  15306. if b < 0x80 {
  15307. break
  15308. }
  15309. }
  15310. intStringLen := int(stringLen)
  15311. if intStringLen < 0 {
  15312. return ErrInvalidLengthTypes
  15313. }
  15314. postIndex := iNdEx + intStringLen
  15315. if postIndex < 0 {
  15316. return ErrInvalidLengthTypes
  15317. }
  15318. if postIndex > l {
  15319. return io.ErrUnexpectedEOF
  15320. }
  15321. m.Type = string(dAtA[iNdEx:postIndex])
  15322. iNdEx = postIndex
  15323. case 2:
  15324. if wireType != 2 {
  15325. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  15326. }
  15327. var byteLen int
  15328. for shift := uint(0); ; shift += 7 {
  15329. if shift >= 64 {
  15330. return ErrIntOverflowTypes
  15331. }
  15332. if iNdEx >= l {
  15333. return io.ErrUnexpectedEOF
  15334. }
  15335. b := dAtA[iNdEx]
  15336. iNdEx++
  15337. byteLen |= int(b&0x7F) << shift
  15338. if b < 0x80 {
  15339. break
  15340. }
  15341. }
  15342. if byteLen < 0 {
  15343. return ErrInvalidLengthTypes
  15344. }
  15345. postIndex := iNdEx + byteLen
  15346. if postIndex < 0 {
  15347. return ErrInvalidLengthTypes
  15348. }
  15349. if postIndex > l {
  15350. return io.ErrUnexpectedEOF
  15351. }
  15352. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  15353. if m.Data == nil {
  15354. m.Data = []byte{}
  15355. }
  15356. iNdEx = postIndex
  15357. default:
  15358. iNdEx = preIndex
  15359. skippy, err := skipTypes(dAtA[iNdEx:])
  15360. if err != nil {
  15361. return err
  15362. }
  15363. if skippy < 0 {
  15364. return ErrInvalidLengthTypes
  15365. }
  15366. if (iNdEx + skippy) < 0 {
  15367. return ErrInvalidLengthTypes
  15368. }
  15369. if (iNdEx + skippy) > l {
  15370. return io.ErrUnexpectedEOF
  15371. }
  15372. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  15373. iNdEx += skippy
  15374. }
  15375. }
  15376. if iNdEx > l {
  15377. return io.ErrUnexpectedEOF
  15378. }
  15379. return nil
  15380. }
  15381. func (m *Evidence) Unmarshal(dAtA []byte) error {
  15382. l := len(dAtA)
  15383. iNdEx := 0
  15384. for iNdEx < l {
  15385. preIndex := iNdEx
  15386. var wire uint64
  15387. for shift := uint(0); ; shift += 7 {
  15388. if shift >= 64 {
  15389. return ErrIntOverflowTypes
  15390. }
  15391. if iNdEx >= l {
  15392. return io.ErrUnexpectedEOF
  15393. }
  15394. b := dAtA[iNdEx]
  15395. iNdEx++
  15396. wire |= uint64(b&0x7F) << shift
  15397. if b < 0x80 {
  15398. break
  15399. }
  15400. }
  15401. fieldNum := int32(wire >> 3)
  15402. wireType := int(wire & 0x7)
  15403. if wireType == 4 {
  15404. return fmt.Errorf("proto: Evidence: wiretype end group for non-group")
  15405. }
  15406. if fieldNum <= 0 {
  15407. return fmt.Errorf("proto: Evidence: illegal tag %d (wire type %d)", fieldNum, wire)
  15408. }
  15409. switch fieldNum {
  15410. case 1:
  15411. if wireType != 2 {
  15412. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  15413. }
  15414. var stringLen uint64
  15415. for shift := uint(0); ; shift += 7 {
  15416. if shift >= 64 {
  15417. return ErrIntOverflowTypes
  15418. }
  15419. if iNdEx >= l {
  15420. return io.ErrUnexpectedEOF
  15421. }
  15422. b := dAtA[iNdEx]
  15423. iNdEx++
  15424. stringLen |= uint64(b&0x7F) << shift
  15425. if b < 0x80 {
  15426. break
  15427. }
  15428. }
  15429. intStringLen := int(stringLen)
  15430. if intStringLen < 0 {
  15431. return ErrInvalidLengthTypes
  15432. }
  15433. postIndex := iNdEx + intStringLen
  15434. if postIndex < 0 {
  15435. return ErrInvalidLengthTypes
  15436. }
  15437. if postIndex > l {
  15438. return io.ErrUnexpectedEOF
  15439. }
  15440. m.Type = string(dAtA[iNdEx:postIndex])
  15441. iNdEx = postIndex
  15442. case 2:
  15443. if wireType != 2 {
  15444. return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType)
  15445. }
  15446. var msglen int
  15447. for shift := uint(0); ; shift += 7 {
  15448. if shift >= 64 {
  15449. return ErrIntOverflowTypes
  15450. }
  15451. if iNdEx >= l {
  15452. return io.ErrUnexpectedEOF
  15453. }
  15454. b := dAtA[iNdEx]
  15455. iNdEx++
  15456. msglen |= int(b&0x7F) << shift
  15457. if b < 0x80 {
  15458. break
  15459. }
  15460. }
  15461. if msglen < 0 {
  15462. return ErrInvalidLengthTypes
  15463. }
  15464. postIndex := iNdEx + msglen
  15465. if postIndex < 0 {
  15466. return ErrInvalidLengthTypes
  15467. }
  15468. if postIndex > l {
  15469. return io.ErrUnexpectedEOF
  15470. }
  15471. if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15472. return err
  15473. }
  15474. iNdEx = postIndex
  15475. case 3:
  15476. if wireType != 0 {
  15477. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  15478. }
  15479. m.Height = 0
  15480. for shift := uint(0); ; shift += 7 {
  15481. if shift >= 64 {
  15482. return ErrIntOverflowTypes
  15483. }
  15484. if iNdEx >= l {
  15485. return io.ErrUnexpectedEOF
  15486. }
  15487. b := dAtA[iNdEx]
  15488. iNdEx++
  15489. m.Height |= int64(b&0x7F) << shift
  15490. if b < 0x80 {
  15491. break
  15492. }
  15493. }
  15494. case 4:
  15495. if wireType != 2 {
  15496. return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
  15497. }
  15498. var msglen int
  15499. for shift := uint(0); ; shift += 7 {
  15500. if shift >= 64 {
  15501. return ErrIntOverflowTypes
  15502. }
  15503. if iNdEx >= l {
  15504. return io.ErrUnexpectedEOF
  15505. }
  15506. b := dAtA[iNdEx]
  15507. iNdEx++
  15508. msglen |= int(b&0x7F) << shift
  15509. if b < 0x80 {
  15510. break
  15511. }
  15512. }
  15513. if msglen < 0 {
  15514. return ErrInvalidLengthTypes
  15515. }
  15516. postIndex := iNdEx + msglen
  15517. if postIndex < 0 {
  15518. return ErrInvalidLengthTypes
  15519. }
  15520. if postIndex > l {
  15521. return io.ErrUnexpectedEOF
  15522. }
  15523. if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil {
  15524. return err
  15525. }
  15526. iNdEx = postIndex
  15527. case 5:
  15528. if wireType != 0 {
  15529. return fmt.Errorf("proto: wrong wireType = %d for field TotalVotingPower", wireType)
  15530. }
  15531. m.TotalVotingPower = 0
  15532. for shift := uint(0); ; shift += 7 {
  15533. if shift >= 64 {
  15534. return ErrIntOverflowTypes
  15535. }
  15536. if iNdEx >= l {
  15537. return io.ErrUnexpectedEOF
  15538. }
  15539. b := dAtA[iNdEx]
  15540. iNdEx++
  15541. m.TotalVotingPower |= int64(b&0x7F) << shift
  15542. if b < 0x80 {
  15543. break
  15544. }
  15545. }
  15546. default:
  15547. iNdEx = preIndex
  15548. skippy, err := skipTypes(dAtA[iNdEx:])
  15549. if err != nil {
  15550. return err
  15551. }
  15552. if skippy < 0 {
  15553. return ErrInvalidLengthTypes
  15554. }
  15555. if (iNdEx + skippy) < 0 {
  15556. return ErrInvalidLengthTypes
  15557. }
  15558. if (iNdEx + skippy) > l {
  15559. return io.ErrUnexpectedEOF
  15560. }
  15561. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  15562. iNdEx += skippy
  15563. }
  15564. }
  15565. if iNdEx > l {
  15566. return io.ErrUnexpectedEOF
  15567. }
  15568. return nil
  15569. }
  15570. func skipTypes(dAtA []byte) (n int, err error) {
  15571. l := len(dAtA)
  15572. iNdEx := 0
  15573. for iNdEx < l {
  15574. var wire uint64
  15575. for shift := uint(0); ; shift += 7 {
  15576. if shift >= 64 {
  15577. return 0, ErrIntOverflowTypes
  15578. }
  15579. if iNdEx >= l {
  15580. return 0, io.ErrUnexpectedEOF
  15581. }
  15582. b := dAtA[iNdEx]
  15583. iNdEx++
  15584. wire |= (uint64(b) & 0x7F) << shift
  15585. if b < 0x80 {
  15586. break
  15587. }
  15588. }
  15589. wireType := int(wire & 0x7)
  15590. switch wireType {
  15591. case 0:
  15592. for shift := uint(0); ; shift += 7 {
  15593. if shift >= 64 {
  15594. return 0, ErrIntOverflowTypes
  15595. }
  15596. if iNdEx >= l {
  15597. return 0, io.ErrUnexpectedEOF
  15598. }
  15599. iNdEx++
  15600. if dAtA[iNdEx-1] < 0x80 {
  15601. break
  15602. }
  15603. }
  15604. return iNdEx, nil
  15605. case 1:
  15606. iNdEx += 8
  15607. return iNdEx, nil
  15608. case 2:
  15609. var length int
  15610. for shift := uint(0); ; shift += 7 {
  15611. if shift >= 64 {
  15612. return 0, ErrIntOverflowTypes
  15613. }
  15614. if iNdEx >= l {
  15615. return 0, io.ErrUnexpectedEOF
  15616. }
  15617. b := dAtA[iNdEx]
  15618. iNdEx++
  15619. length |= (int(b) & 0x7F) << shift
  15620. if b < 0x80 {
  15621. break
  15622. }
  15623. }
  15624. if length < 0 {
  15625. return 0, ErrInvalidLengthTypes
  15626. }
  15627. iNdEx += length
  15628. if iNdEx < 0 {
  15629. return 0, ErrInvalidLengthTypes
  15630. }
  15631. return iNdEx, nil
  15632. case 3:
  15633. for {
  15634. var innerWire uint64
  15635. var start int = iNdEx
  15636. for shift := uint(0); ; shift += 7 {
  15637. if shift >= 64 {
  15638. return 0, ErrIntOverflowTypes
  15639. }
  15640. if iNdEx >= l {
  15641. return 0, io.ErrUnexpectedEOF
  15642. }
  15643. b := dAtA[iNdEx]
  15644. iNdEx++
  15645. innerWire |= (uint64(b) & 0x7F) << shift
  15646. if b < 0x80 {
  15647. break
  15648. }
  15649. }
  15650. innerWireType := int(innerWire & 0x7)
  15651. if innerWireType == 4 {
  15652. break
  15653. }
  15654. next, err := skipTypes(dAtA[start:])
  15655. if err != nil {
  15656. return 0, err
  15657. }
  15658. iNdEx = start + next
  15659. if iNdEx < 0 {
  15660. return 0, ErrInvalidLengthTypes
  15661. }
  15662. }
  15663. return iNdEx, nil
  15664. case 4:
  15665. return iNdEx, nil
  15666. case 5:
  15667. iNdEx += 4
  15668. return iNdEx, nil
  15669. default:
  15670. return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  15671. }
  15672. }
  15673. panic("unreachable")
  15674. }
  15675. var (
  15676. ErrInvalidLengthTypes = fmt.Errorf("proto: negative length found during unmarshaling")
  15677. ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow")
  15678. )