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.

16230 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
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
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
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. kv "github.com/tendermint/tendermint/libs/kv"
  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" json:"echo,omitempty"`
  110. }
  111. type Request_Flush struct {
  112. Flush *RequestFlush `protobuf:"bytes,3,opt,name=flush,proto3,oneof" json:"flush,omitempty"`
  113. }
  114. type Request_Info struct {
  115. Info *RequestInfo `protobuf:"bytes,4,opt,name=info,proto3,oneof" json:"info,omitempty"`
  116. }
  117. type Request_SetOption struct {
  118. SetOption *RequestSetOption `protobuf:"bytes,5,opt,name=set_option,json=setOption,proto3,oneof" json:"set_option,omitempty"`
  119. }
  120. type Request_InitChain struct {
  121. InitChain *RequestInitChain `protobuf:"bytes,6,opt,name=init_chain,json=initChain,proto3,oneof" json:"init_chain,omitempty"`
  122. }
  123. type Request_Query struct {
  124. Query *RequestQuery `protobuf:"bytes,7,opt,name=query,proto3,oneof" json:"query,omitempty"`
  125. }
  126. type Request_BeginBlock struct {
  127. BeginBlock *RequestBeginBlock `protobuf:"bytes,8,opt,name=begin_block,json=beginBlock,proto3,oneof" json:"begin_block,omitempty"`
  128. }
  129. type Request_CheckTx struct {
  130. CheckTx *RequestCheckTx `protobuf:"bytes,9,opt,name=check_tx,json=checkTx,proto3,oneof" json:"check_tx,omitempty"`
  131. }
  132. type Request_DeliverTx struct {
  133. DeliverTx *RequestDeliverTx `protobuf:"bytes,19,opt,name=deliver_tx,json=deliverTx,proto3,oneof" json:"deliver_tx,omitempty"`
  134. }
  135. type Request_EndBlock struct {
  136. EndBlock *RequestEndBlock `protobuf:"bytes,11,opt,name=end_block,json=endBlock,proto3,oneof" json:"end_block,omitempty"`
  137. }
  138. type Request_Commit struct {
  139. Commit *RequestCommit `protobuf:"bytes,12,opt,name=commit,proto3,oneof" json:"commit,omitempty"`
  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=tendermint.abci.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" json:"exception,omitempty"`
  856. }
  857. type Response_Echo struct {
  858. Echo *ResponseEcho `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"`
  859. }
  860. type Response_Flush struct {
  861. Flush *ResponseFlush `protobuf:"bytes,3,opt,name=flush,proto3,oneof" json:"flush,omitempty"`
  862. }
  863. type Response_Info struct {
  864. Info *ResponseInfo `protobuf:"bytes,4,opt,name=info,proto3,oneof" json:"info,omitempty"`
  865. }
  866. type Response_SetOption struct {
  867. SetOption *ResponseSetOption `protobuf:"bytes,5,opt,name=set_option,json=setOption,proto3,oneof" json:"set_option,omitempty"`
  868. }
  869. type Response_InitChain struct {
  870. InitChain *ResponseInitChain `protobuf:"bytes,6,opt,name=init_chain,json=initChain,proto3,oneof" json:"init_chain,omitempty"`
  871. }
  872. type Response_Query struct {
  873. Query *ResponseQuery `protobuf:"bytes,7,opt,name=query,proto3,oneof" json:"query,omitempty"`
  874. }
  875. type Response_BeginBlock struct {
  876. BeginBlock *ResponseBeginBlock `protobuf:"bytes,8,opt,name=begin_block,json=beginBlock,proto3,oneof" json:"begin_block,omitempty"`
  877. }
  878. type Response_CheckTx struct {
  879. CheckTx *ResponseCheckTx `protobuf:"bytes,9,opt,name=check_tx,json=checkTx,proto3,oneof" json:"check_tx,omitempty"`
  880. }
  881. type Response_DeliverTx struct {
  882. DeliverTx *ResponseDeliverTx `protobuf:"bytes,10,opt,name=deliver_tx,json=deliverTx,proto3,oneof" json:"deliver_tx,omitempty"`
  883. }
  884. type Response_EndBlock struct {
  885. EndBlock *ResponseEndBlock `protobuf:"bytes,11,opt,name=end_block,json=endBlock,proto3,oneof" json:"end_block,omitempty"`
  886. }
  887. type Response_Commit struct {
  888. Commit *ResponseCommit `protobuf:"bytes,12,opt,name=commit,proto3,oneof" json:"commit,omitempty"`
  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 []kv.Pair `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() []kv.Pair {
  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. // prev block info
  2036. LastBlockId BlockID `protobuf:"bytes,5,opt,name=last_block_id,json=lastBlockId,proto3" json:"last_block_id"`
  2037. // hashes of block data
  2038. LastCommitHash []byte `protobuf:"bytes,6,opt,name=last_commit_hash,json=lastCommitHash,proto3" json:"last_commit_hash,omitempty"`
  2039. DataHash []byte `protobuf:"bytes,7,opt,name=data_hash,json=dataHash,proto3" json:"data_hash,omitempty"`
  2040. // hashes from the app output from the prev block
  2041. ValidatorsHash []byte `protobuf:"bytes,8,opt,name=validators_hash,json=validatorsHash,proto3" json:"validators_hash,omitempty"`
  2042. NextValidatorsHash []byte `protobuf:"bytes,9,opt,name=next_validators_hash,json=nextValidatorsHash,proto3" json:"next_validators_hash,omitempty"`
  2043. ConsensusHash []byte `protobuf:"bytes,10,opt,name=consensus_hash,json=consensusHash,proto3" json:"consensus_hash,omitempty"`
  2044. AppHash []byte `protobuf:"bytes,11,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"`
  2045. LastResultsHash []byte `protobuf:"bytes,12,opt,name=last_results_hash,json=lastResultsHash,proto3" json:"last_results_hash,omitempty"`
  2046. // consensus info
  2047. EvidenceHash []byte `protobuf:"bytes,13,opt,name=evidence_hash,json=evidenceHash,proto3" json:"evidence_hash,omitempty"`
  2048. ProposerAddress []byte `protobuf:"bytes,14,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"`
  2049. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2050. XXX_unrecognized []byte `json:"-"`
  2051. XXX_sizecache int32 `json:"-"`
  2052. }
  2053. func (m *Header) Reset() { *m = Header{} }
  2054. func (m *Header) String() string { return proto.CompactTextString(m) }
  2055. func (*Header) ProtoMessage() {}
  2056. func (*Header) Descriptor() ([]byte, []int) {
  2057. return fileDescriptor_9f1eaa49c51fa1ac, []int{31}
  2058. }
  2059. func (m *Header) XXX_Unmarshal(b []byte) error {
  2060. return m.Unmarshal(b)
  2061. }
  2062. func (m *Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2063. if deterministic {
  2064. return xxx_messageInfo_Header.Marshal(b, m, deterministic)
  2065. } else {
  2066. b = b[:cap(b)]
  2067. n, err := m.MarshalToSizedBuffer(b)
  2068. if err != nil {
  2069. return nil, err
  2070. }
  2071. return b[:n], nil
  2072. }
  2073. }
  2074. func (m *Header) XXX_Merge(src proto.Message) {
  2075. xxx_messageInfo_Header.Merge(m, src)
  2076. }
  2077. func (m *Header) XXX_Size() int {
  2078. return m.Size()
  2079. }
  2080. func (m *Header) XXX_DiscardUnknown() {
  2081. xxx_messageInfo_Header.DiscardUnknown(m)
  2082. }
  2083. var xxx_messageInfo_Header proto.InternalMessageInfo
  2084. func (m *Header) GetVersion() Version {
  2085. if m != nil {
  2086. return m.Version
  2087. }
  2088. return Version{}
  2089. }
  2090. func (m *Header) GetChainID() string {
  2091. if m != nil {
  2092. return m.ChainID
  2093. }
  2094. return ""
  2095. }
  2096. func (m *Header) GetHeight() int64 {
  2097. if m != nil {
  2098. return m.Height
  2099. }
  2100. return 0
  2101. }
  2102. func (m *Header) GetTime() time.Time {
  2103. if m != nil {
  2104. return m.Time
  2105. }
  2106. return time.Time{}
  2107. }
  2108. func (m *Header) GetLastBlockId() BlockID {
  2109. if m != nil {
  2110. return m.LastBlockId
  2111. }
  2112. return BlockID{}
  2113. }
  2114. func (m *Header) GetLastCommitHash() []byte {
  2115. if m != nil {
  2116. return m.LastCommitHash
  2117. }
  2118. return nil
  2119. }
  2120. func (m *Header) GetDataHash() []byte {
  2121. if m != nil {
  2122. return m.DataHash
  2123. }
  2124. return nil
  2125. }
  2126. func (m *Header) GetValidatorsHash() []byte {
  2127. if m != nil {
  2128. return m.ValidatorsHash
  2129. }
  2130. return nil
  2131. }
  2132. func (m *Header) GetNextValidatorsHash() []byte {
  2133. if m != nil {
  2134. return m.NextValidatorsHash
  2135. }
  2136. return nil
  2137. }
  2138. func (m *Header) GetConsensusHash() []byte {
  2139. if m != nil {
  2140. return m.ConsensusHash
  2141. }
  2142. return nil
  2143. }
  2144. func (m *Header) GetAppHash() []byte {
  2145. if m != nil {
  2146. return m.AppHash
  2147. }
  2148. return nil
  2149. }
  2150. func (m *Header) GetLastResultsHash() []byte {
  2151. if m != nil {
  2152. return m.LastResultsHash
  2153. }
  2154. return nil
  2155. }
  2156. func (m *Header) GetEvidenceHash() []byte {
  2157. if m != nil {
  2158. return m.EvidenceHash
  2159. }
  2160. return nil
  2161. }
  2162. func (m *Header) GetProposerAddress() []byte {
  2163. if m != nil {
  2164. return m.ProposerAddress
  2165. }
  2166. return nil
  2167. }
  2168. type Version struct {
  2169. Block uint64 `protobuf:"varint,1,opt,name=Block,proto3" json:"Block,omitempty"`
  2170. App uint64 `protobuf:"varint,2,opt,name=App,proto3" json:"App,omitempty"`
  2171. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2172. XXX_unrecognized []byte `json:"-"`
  2173. XXX_sizecache int32 `json:"-"`
  2174. }
  2175. func (m *Version) Reset() { *m = Version{} }
  2176. func (m *Version) String() string { return proto.CompactTextString(m) }
  2177. func (*Version) ProtoMessage() {}
  2178. func (*Version) Descriptor() ([]byte, []int) {
  2179. return fileDescriptor_9f1eaa49c51fa1ac, []int{32}
  2180. }
  2181. func (m *Version) XXX_Unmarshal(b []byte) error {
  2182. return m.Unmarshal(b)
  2183. }
  2184. func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2185. if deterministic {
  2186. return xxx_messageInfo_Version.Marshal(b, m, deterministic)
  2187. } else {
  2188. b = b[:cap(b)]
  2189. n, err := m.MarshalToSizedBuffer(b)
  2190. if err != nil {
  2191. return nil, err
  2192. }
  2193. return b[:n], nil
  2194. }
  2195. }
  2196. func (m *Version) XXX_Merge(src proto.Message) {
  2197. xxx_messageInfo_Version.Merge(m, src)
  2198. }
  2199. func (m *Version) XXX_Size() int {
  2200. return m.Size()
  2201. }
  2202. func (m *Version) XXX_DiscardUnknown() {
  2203. xxx_messageInfo_Version.DiscardUnknown(m)
  2204. }
  2205. var xxx_messageInfo_Version proto.InternalMessageInfo
  2206. func (m *Version) GetBlock() uint64 {
  2207. if m != nil {
  2208. return m.Block
  2209. }
  2210. return 0
  2211. }
  2212. func (m *Version) GetApp() uint64 {
  2213. if m != nil {
  2214. return m.App
  2215. }
  2216. return 0
  2217. }
  2218. type BlockID struct {
  2219. Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
  2220. PartsHeader PartSetHeader `protobuf:"bytes,2,opt,name=parts_header,json=partsHeader,proto3" json:"parts_header"`
  2221. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2222. XXX_unrecognized []byte `json:"-"`
  2223. XXX_sizecache int32 `json:"-"`
  2224. }
  2225. func (m *BlockID) Reset() { *m = BlockID{} }
  2226. func (m *BlockID) String() string { return proto.CompactTextString(m) }
  2227. func (*BlockID) ProtoMessage() {}
  2228. func (*BlockID) Descriptor() ([]byte, []int) {
  2229. return fileDescriptor_9f1eaa49c51fa1ac, []int{33}
  2230. }
  2231. func (m *BlockID) XXX_Unmarshal(b []byte) error {
  2232. return m.Unmarshal(b)
  2233. }
  2234. func (m *BlockID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2235. if deterministic {
  2236. return xxx_messageInfo_BlockID.Marshal(b, m, deterministic)
  2237. } else {
  2238. b = b[:cap(b)]
  2239. n, err := m.MarshalToSizedBuffer(b)
  2240. if err != nil {
  2241. return nil, err
  2242. }
  2243. return b[:n], nil
  2244. }
  2245. }
  2246. func (m *BlockID) XXX_Merge(src proto.Message) {
  2247. xxx_messageInfo_BlockID.Merge(m, src)
  2248. }
  2249. func (m *BlockID) XXX_Size() int {
  2250. return m.Size()
  2251. }
  2252. func (m *BlockID) XXX_DiscardUnknown() {
  2253. xxx_messageInfo_BlockID.DiscardUnknown(m)
  2254. }
  2255. var xxx_messageInfo_BlockID proto.InternalMessageInfo
  2256. func (m *BlockID) GetHash() []byte {
  2257. if m != nil {
  2258. return m.Hash
  2259. }
  2260. return nil
  2261. }
  2262. func (m *BlockID) GetPartsHeader() PartSetHeader {
  2263. if m != nil {
  2264. return m.PartsHeader
  2265. }
  2266. return PartSetHeader{}
  2267. }
  2268. type PartSetHeader struct {
  2269. Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
  2270. Hash []byte `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
  2271. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2272. XXX_unrecognized []byte `json:"-"`
  2273. XXX_sizecache int32 `json:"-"`
  2274. }
  2275. func (m *PartSetHeader) Reset() { *m = PartSetHeader{} }
  2276. func (m *PartSetHeader) String() string { return proto.CompactTextString(m) }
  2277. func (*PartSetHeader) ProtoMessage() {}
  2278. func (*PartSetHeader) Descriptor() ([]byte, []int) {
  2279. return fileDescriptor_9f1eaa49c51fa1ac, []int{34}
  2280. }
  2281. func (m *PartSetHeader) XXX_Unmarshal(b []byte) error {
  2282. return m.Unmarshal(b)
  2283. }
  2284. func (m *PartSetHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2285. if deterministic {
  2286. return xxx_messageInfo_PartSetHeader.Marshal(b, m, deterministic)
  2287. } else {
  2288. b = b[:cap(b)]
  2289. n, err := m.MarshalToSizedBuffer(b)
  2290. if err != nil {
  2291. return nil, err
  2292. }
  2293. return b[:n], nil
  2294. }
  2295. }
  2296. func (m *PartSetHeader) XXX_Merge(src proto.Message) {
  2297. xxx_messageInfo_PartSetHeader.Merge(m, src)
  2298. }
  2299. func (m *PartSetHeader) XXX_Size() int {
  2300. return m.Size()
  2301. }
  2302. func (m *PartSetHeader) XXX_DiscardUnknown() {
  2303. xxx_messageInfo_PartSetHeader.DiscardUnknown(m)
  2304. }
  2305. var xxx_messageInfo_PartSetHeader proto.InternalMessageInfo
  2306. func (m *PartSetHeader) GetTotal() int32 {
  2307. if m != nil {
  2308. return m.Total
  2309. }
  2310. return 0
  2311. }
  2312. func (m *PartSetHeader) GetHash() []byte {
  2313. if m != nil {
  2314. return m.Hash
  2315. }
  2316. return nil
  2317. }
  2318. // Validator
  2319. type Validator struct {
  2320. Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
  2321. //PubKey pub_key = 2 [(gogoproto.nullable)=false];
  2322. Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"`
  2323. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2324. XXX_unrecognized []byte `json:"-"`
  2325. XXX_sizecache int32 `json:"-"`
  2326. }
  2327. func (m *Validator) Reset() { *m = Validator{} }
  2328. func (m *Validator) String() string { return proto.CompactTextString(m) }
  2329. func (*Validator) ProtoMessage() {}
  2330. func (*Validator) Descriptor() ([]byte, []int) {
  2331. return fileDescriptor_9f1eaa49c51fa1ac, []int{35}
  2332. }
  2333. func (m *Validator) XXX_Unmarshal(b []byte) error {
  2334. return m.Unmarshal(b)
  2335. }
  2336. func (m *Validator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2337. if deterministic {
  2338. return xxx_messageInfo_Validator.Marshal(b, m, deterministic)
  2339. } else {
  2340. b = b[:cap(b)]
  2341. n, err := m.MarshalToSizedBuffer(b)
  2342. if err != nil {
  2343. return nil, err
  2344. }
  2345. return b[:n], nil
  2346. }
  2347. }
  2348. func (m *Validator) XXX_Merge(src proto.Message) {
  2349. xxx_messageInfo_Validator.Merge(m, src)
  2350. }
  2351. func (m *Validator) XXX_Size() int {
  2352. return m.Size()
  2353. }
  2354. func (m *Validator) XXX_DiscardUnknown() {
  2355. xxx_messageInfo_Validator.DiscardUnknown(m)
  2356. }
  2357. var xxx_messageInfo_Validator proto.InternalMessageInfo
  2358. func (m *Validator) GetAddress() []byte {
  2359. if m != nil {
  2360. return m.Address
  2361. }
  2362. return nil
  2363. }
  2364. func (m *Validator) GetPower() int64 {
  2365. if m != nil {
  2366. return m.Power
  2367. }
  2368. return 0
  2369. }
  2370. // ValidatorUpdate
  2371. type ValidatorUpdate struct {
  2372. PubKey PubKey `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key"`
  2373. Power int64 `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"`
  2374. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2375. XXX_unrecognized []byte `json:"-"`
  2376. XXX_sizecache int32 `json:"-"`
  2377. }
  2378. func (m *ValidatorUpdate) Reset() { *m = ValidatorUpdate{} }
  2379. func (m *ValidatorUpdate) String() string { return proto.CompactTextString(m) }
  2380. func (*ValidatorUpdate) ProtoMessage() {}
  2381. func (*ValidatorUpdate) Descriptor() ([]byte, []int) {
  2382. return fileDescriptor_9f1eaa49c51fa1ac, []int{36}
  2383. }
  2384. func (m *ValidatorUpdate) XXX_Unmarshal(b []byte) error {
  2385. return m.Unmarshal(b)
  2386. }
  2387. func (m *ValidatorUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2388. if deterministic {
  2389. return xxx_messageInfo_ValidatorUpdate.Marshal(b, m, deterministic)
  2390. } else {
  2391. b = b[:cap(b)]
  2392. n, err := m.MarshalToSizedBuffer(b)
  2393. if err != nil {
  2394. return nil, err
  2395. }
  2396. return b[:n], nil
  2397. }
  2398. }
  2399. func (m *ValidatorUpdate) XXX_Merge(src proto.Message) {
  2400. xxx_messageInfo_ValidatorUpdate.Merge(m, src)
  2401. }
  2402. func (m *ValidatorUpdate) XXX_Size() int {
  2403. return m.Size()
  2404. }
  2405. func (m *ValidatorUpdate) XXX_DiscardUnknown() {
  2406. xxx_messageInfo_ValidatorUpdate.DiscardUnknown(m)
  2407. }
  2408. var xxx_messageInfo_ValidatorUpdate proto.InternalMessageInfo
  2409. func (m *ValidatorUpdate) GetPubKey() PubKey {
  2410. if m != nil {
  2411. return m.PubKey
  2412. }
  2413. return PubKey{}
  2414. }
  2415. func (m *ValidatorUpdate) GetPower() int64 {
  2416. if m != nil {
  2417. return m.Power
  2418. }
  2419. return 0
  2420. }
  2421. // VoteInfo
  2422. type VoteInfo struct {
  2423. Validator Validator `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator"`
  2424. SignedLastBlock bool `protobuf:"varint,2,opt,name=signed_last_block,json=signedLastBlock,proto3" json:"signed_last_block,omitempty"`
  2425. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2426. XXX_unrecognized []byte `json:"-"`
  2427. XXX_sizecache int32 `json:"-"`
  2428. }
  2429. func (m *VoteInfo) Reset() { *m = VoteInfo{} }
  2430. func (m *VoteInfo) String() string { return proto.CompactTextString(m) }
  2431. func (*VoteInfo) ProtoMessage() {}
  2432. func (*VoteInfo) Descriptor() ([]byte, []int) {
  2433. return fileDescriptor_9f1eaa49c51fa1ac, []int{37}
  2434. }
  2435. func (m *VoteInfo) XXX_Unmarshal(b []byte) error {
  2436. return m.Unmarshal(b)
  2437. }
  2438. func (m *VoteInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2439. if deterministic {
  2440. return xxx_messageInfo_VoteInfo.Marshal(b, m, deterministic)
  2441. } else {
  2442. b = b[:cap(b)]
  2443. n, err := m.MarshalToSizedBuffer(b)
  2444. if err != nil {
  2445. return nil, err
  2446. }
  2447. return b[:n], nil
  2448. }
  2449. }
  2450. func (m *VoteInfo) XXX_Merge(src proto.Message) {
  2451. xxx_messageInfo_VoteInfo.Merge(m, src)
  2452. }
  2453. func (m *VoteInfo) XXX_Size() int {
  2454. return m.Size()
  2455. }
  2456. func (m *VoteInfo) XXX_DiscardUnknown() {
  2457. xxx_messageInfo_VoteInfo.DiscardUnknown(m)
  2458. }
  2459. var xxx_messageInfo_VoteInfo proto.InternalMessageInfo
  2460. func (m *VoteInfo) GetValidator() Validator {
  2461. if m != nil {
  2462. return m.Validator
  2463. }
  2464. return Validator{}
  2465. }
  2466. func (m *VoteInfo) GetSignedLastBlock() bool {
  2467. if m != nil {
  2468. return m.SignedLastBlock
  2469. }
  2470. return false
  2471. }
  2472. type PubKey struct {
  2473. Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
  2474. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  2475. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2476. XXX_unrecognized []byte `json:"-"`
  2477. XXX_sizecache int32 `json:"-"`
  2478. }
  2479. func (m *PubKey) Reset() { *m = PubKey{} }
  2480. func (m *PubKey) String() string { return proto.CompactTextString(m) }
  2481. func (*PubKey) ProtoMessage() {}
  2482. func (*PubKey) Descriptor() ([]byte, []int) {
  2483. return fileDescriptor_9f1eaa49c51fa1ac, []int{38}
  2484. }
  2485. func (m *PubKey) XXX_Unmarshal(b []byte) error {
  2486. return m.Unmarshal(b)
  2487. }
  2488. func (m *PubKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2489. if deterministic {
  2490. return xxx_messageInfo_PubKey.Marshal(b, m, deterministic)
  2491. } else {
  2492. b = b[:cap(b)]
  2493. n, err := m.MarshalToSizedBuffer(b)
  2494. if err != nil {
  2495. return nil, err
  2496. }
  2497. return b[:n], nil
  2498. }
  2499. }
  2500. func (m *PubKey) XXX_Merge(src proto.Message) {
  2501. xxx_messageInfo_PubKey.Merge(m, src)
  2502. }
  2503. func (m *PubKey) XXX_Size() int {
  2504. return m.Size()
  2505. }
  2506. func (m *PubKey) XXX_DiscardUnknown() {
  2507. xxx_messageInfo_PubKey.DiscardUnknown(m)
  2508. }
  2509. var xxx_messageInfo_PubKey proto.InternalMessageInfo
  2510. func (m *PubKey) GetType() string {
  2511. if m != nil {
  2512. return m.Type
  2513. }
  2514. return ""
  2515. }
  2516. func (m *PubKey) GetData() []byte {
  2517. if m != nil {
  2518. return m.Data
  2519. }
  2520. return nil
  2521. }
  2522. type Evidence struct {
  2523. Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
  2524. Validator Validator `protobuf:"bytes,2,opt,name=validator,proto3" json:"validator"`
  2525. Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
  2526. Time time.Time `protobuf:"bytes,4,opt,name=time,proto3,stdtime" json:"time"`
  2527. TotalVotingPower int64 `protobuf:"varint,5,opt,name=total_voting_power,json=totalVotingPower,proto3" json:"total_voting_power,omitempty"`
  2528. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2529. XXX_unrecognized []byte `json:"-"`
  2530. XXX_sizecache int32 `json:"-"`
  2531. }
  2532. func (m *Evidence) Reset() { *m = Evidence{} }
  2533. func (m *Evidence) String() string { return proto.CompactTextString(m) }
  2534. func (*Evidence) ProtoMessage() {}
  2535. func (*Evidence) Descriptor() ([]byte, []int) {
  2536. return fileDescriptor_9f1eaa49c51fa1ac, []int{39}
  2537. }
  2538. func (m *Evidence) XXX_Unmarshal(b []byte) error {
  2539. return m.Unmarshal(b)
  2540. }
  2541. func (m *Evidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2542. if deterministic {
  2543. return xxx_messageInfo_Evidence.Marshal(b, m, deterministic)
  2544. } else {
  2545. b = b[:cap(b)]
  2546. n, err := m.MarshalToSizedBuffer(b)
  2547. if err != nil {
  2548. return nil, err
  2549. }
  2550. return b[:n], nil
  2551. }
  2552. }
  2553. func (m *Evidence) XXX_Merge(src proto.Message) {
  2554. xxx_messageInfo_Evidence.Merge(m, src)
  2555. }
  2556. func (m *Evidence) XXX_Size() int {
  2557. return m.Size()
  2558. }
  2559. func (m *Evidence) XXX_DiscardUnknown() {
  2560. xxx_messageInfo_Evidence.DiscardUnknown(m)
  2561. }
  2562. var xxx_messageInfo_Evidence proto.InternalMessageInfo
  2563. func (m *Evidence) GetType() string {
  2564. if m != nil {
  2565. return m.Type
  2566. }
  2567. return ""
  2568. }
  2569. func (m *Evidence) GetValidator() Validator {
  2570. if m != nil {
  2571. return m.Validator
  2572. }
  2573. return Validator{}
  2574. }
  2575. func (m *Evidence) GetHeight() int64 {
  2576. if m != nil {
  2577. return m.Height
  2578. }
  2579. return 0
  2580. }
  2581. func (m *Evidence) GetTime() time.Time {
  2582. if m != nil {
  2583. return m.Time
  2584. }
  2585. return time.Time{}
  2586. }
  2587. func (m *Evidence) GetTotalVotingPower() int64 {
  2588. if m != nil {
  2589. return m.TotalVotingPower
  2590. }
  2591. return 0
  2592. }
  2593. func init() {
  2594. proto.RegisterEnum("tendermint.abci.types.CheckTxType", CheckTxType_name, CheckTxType_value)
  2595. golang_proto.RegisterEnum("tendermint.abci.types.CheckTxType", CheckTxType_name, CheckTxType_value)
  2596. proto.RegisterType((*Request)(nil), "tendermint.abci.types.Request")
  2597. golang_proto.RegisterType((*Request)(nil), "tendermint.abci.types.Request")
  2598. proto.RegisterType((*RequestEcho)(nil), "tendermint.abci.types.RequestEcho")
  2599. golang_proto.RegisterType((*RequestEcho)(nil), "tendermint.abci.types.RequestEcho")
  2600. proto.RegisterType((*RequestFlush)(nil), "tendermint.abci.types.RequestFlush")
  2601. golang_proto.RegisterType((*RequestFlush)(nil), "tendermint.abci.types.RequestFlush")
  2602. proto.RegisterType((*RequestInfo)(nil), "tendermint.abci.types.RequestInfo")
  2603. golang_proto.RegisterType((*RequestInfo)(nil), "tendermint.abci.types.RequestInfo")
  2604. proto.RegisterType((*RequestSetOption)(nil), "tendermint.abci.types.RequestSetOption")
  2605. golang_proto.RegisterType((*RequestSetOption)(nil), "tendermint.abci.types.RequestSetOption")
  2606. proto.RegisterType((*RequestInitChain)(nil), "tendermint.abci.types.RequestInitChain")
  2607. golang_proto.RegisterType((*RequestInitChain)(nil), "tendermint.abci.types.RequestInitChain")
  2608. proto.RegisterType((*RequestQuery)(nil), "tendermint.abci.types.RequestQuery")
  2609. golang_proto.RegisterType((*RequestQuery)(nil), "tendermint.abci.types.RequestQuery")
  2610. proto.RegisterType((*RequestBeginBlock)(nil), "tendermint.abci.types.RequestBeginBlock")
  2611. golang_proto.RegisterType((*RequestBeginBlock)(nil), "tendermint.abci.types.RequestBeginBlock")
  2612. proto.RegisterType((*RequestCheckTx)(nil), "tendermint.abci.types.RequestCheckTx")
  2613. golang_proto.RegisterType((*RequestCheckTx)(nil), "tendermint.abci.types.RequestCheckTx")
  2614. proto.RegisterType((*RequestDeliverTx)(nil), "tendermint.abci.types.RequestDeliverTx")
  2615. golang_proto.RegisterType((*RequestDeliverTx)(nil), "tendermint.abci.types.RequestDeliverTx")
  2616. proto.RegisterType((*RequestEndBlock)(nil), "tendermint.abci.types.RequestEndBlock")
  2617. golang_proto.RegisterType((*RequestEndBlock)(nil), "tendermint.abci.types.RequestEndBlock")
  2618. proto.RegisterType((*RequestCommit)(nil), "tendermint.abci.types.RequestCommit")
  2619. golang_proto.RegisterType((*RequestCommit)(nil), "tendermint.abci.types.RequestCommit")
  2620. proto.RegisterType((*Response)(nil), "tendermint.abci.types.Response")
  2621. golang_proto.RegisterType((*Response)(nil), "tendermint.abci.types.Response")
  2622. proto.RegisterType((*ResponseException)(nil), "tendermint.abci.types.ResponseException")
  2623. golang_proto.RegisterType((*ResponseException)(nil), "tendermint.abci.types.ResponseException")
  2624. proto.RegisterType((*ResponseEcho)(nil), "tendermint.abci.types.ResponseEcho")
  2625. golang_proto.RegisterType((*ResponseEcho)(nil), "tendermint.abci.types.ResponseEcho")
  2626. proto.RegisterType((*ResponseFlush)(nil), "tendermint.abci.types.ResponseFlush")
  2627. golang_proto.RegisterType((*ResponseFlush)(nil), "tendermint.abci.types.ResponseFlush")
  2628. proto.RegisterType((*ResponseInfo)(nil), "tendermint.abci.types.ResponseInfo")
  2629. golang_proto.RegisterType((*ResponseInfo)(nil), "tendermint.abci.types.ResponseInfo")
  2630. proto.RegisterType((*ResponseSetOption)(nil), "tendermint.abci.types.ResponseSetOption")
  2631. golang_proto.RegisterType((*ResponseSetOption)(nil), "tendermint.abci.types.ResponseSetOption")
  2632. proto.RegisterType((*ResponseInitChain)(nil), "tendermint.abci.types.ResponseInitChain")
  2633. golang_proto.RegisterType((*ResponseInitChain)(nil), "tendermint.abci.types.ResponseInitChain")
  2634. proto.RegisterType((*ResponseQuery)(nil), "tendermint.abci.types.ResponseQuery")
  2635. golang_proto.RegisterType((*ResponseQuery)(nil), "tendermint.abci.types.ResponseQuery")
  2636. proto.RegisterType((*ResponseBeginBlock)(nil), "tendermint.abci.types.ResponseBeginBlock")
  2637. golang_proto.RegisterType((*ResponseBeginBlock)(nil), "tendermint.abci.types.ResponseBeginBlock")
  2638. proto.RegisterType((*ResponseCheckTx)(nil), "tendermint.abci.types.ResponseCheckTx")
  2639. golang_proto.RegisterType((*ResponseCheckTx)(nil), "tendermint.abci.types.ResponseCheckTx")
  2640. proto.RegisterType((*ResponseDeliverTx)(nil), "tendermint.abci.types.ResponseDeliverTx")
  2641. golang_proto.RegisterType((*ResponseDeliverTx)(nil), "tendermint.abci.types.ResponseDeliverTx")
  2642. proto.RegisterType((*ResponseEndBlock)(nil), "tendermint.abci.types.ResponseEndBlock")
  2643. golang_proto.RegisterType((*ResponseEndBlock)(nil), "tendermint.abci.types.ResponseEndBlock")
  2644. proto.RegisterType((*ResponseCommit)(nil), "tendermint.abci.types.ResponseCommit")
  2645. golang_proto.RegisterType((*ResponseCommit)(nil), "tendermint.abci.types.ResponseCommit")
  2646. proto.RegisterType((*ConsensusParams)(nil), "tendermint.abci.types.ConsensusParams")
  2647. golang_proto.RegisterType((*ConsensusParams)(nil), "tendermint.abci.types.ConsensusParams")
  2648. proto.RegisterType((*BlockParams)(nil), "tendermint.abci.types.BlockParams")
  2649. golang_proto.RegisterType((*BlockParams)(nil), "tendermint.abci.types.BlockParams")
  2650. proto.RegisterType((*EvidenceParams)(nil), "tendermint.abci.types.EvidenceParams")
  2651. golang_proto.RegisterType((*EvidenceParams)(nil), "tendermint.abci.types.EvidenceParams")
  2652. proto.RegisterType((*ValidatorParams)(nil), "tendermint.abci.types.ValidatorParams")
  2653. golang_proto.RegisterType((*ValidatorParams)(nil), "tendermint.abci.types.ValidatorParams")
  2654. proto.RegisterType((*LastCommitInfo)(nil), "tendermint.abci.types.LastCommitInfo")
  2655. golang_proto.RegisterType((*LastCommitInfo)(nil), "tendermint.abci.types.LastCommitInfo")
  2656. proto.RegisterType((*Event)(nil), "tendermint.abci.types.Event")
  2657. golang_proto.RegisterType((*Event)(nil), "tendermint.abci.types.Event")
  2658. proto.RegisterType((*Header)(nil), "tendermint.abci.types.Header")
  2659. golang_proto.RegisterType((*Header)(nil), "tendermint.abci.types.Header")
  2660. proto.RegisterType((*Version)(nil), "tendermint.abci.types.Version")
  2661. golang_proto.RegisterType((*Version)(nil), "tendermint.abci.types.Version")
  2662. proto.RegisterType((*BlockID)(nil), "tendermint.abci.types.BlockID")
  2663. golang_proto.RegisterType((*BlockID)(nil), "tendermint.abci.types.BlockID")
  2664. proto.RegisterType((*PartSetHeader)(nil), "tendermint.abci.types.PartSetHeader")
  2665. golang_proto.RegisterType((*PartSetHeader)(nil), "tendermint.abci.types.PartSetHeader")
  2666. proto.RegisterType((*Validator)(nil), "tendermint.abci.types.Validator")
  2667. golang_proto.RegisterType((*Validator)(nil), "tendermint.abci.types.Validator")
  2668. proto.RegisterType((*ValidatorUpdate)(nil), "tendermint.abci.types.ValidatorUpdate")
  2669. golang_proto.RegisterType((*ValidatorUpdate)(nil), "tendermint.abci.types.ValidatorUpdate")
  2670. proto.RegisterType((*VoteInfo)(nil), "tendermint.abci.types.VoteInfo")
  2671. golang_proto.RegisterType((*VoteInfo)(nil), "tendermint.abci.types.VoteInfo")
  2672. proto.RegisterType((*PubKey)(nil), "tendermint.abci.types.PubKey")
  2673. golang_proto.RegisterType((*PubKey)(nil), "tendermint.abci.types.PubKey")
  2674. proto.RegisterType((*Evidence)(nil), "tendermint.abci.types.Evidence")
  2675. golang_proto.RegisterType((*Evidence)(nil), "tendermint.abci.types.Evidence")
  2676. }
  2677. func init() { proto.RegisterFile("abci/types/types.proto", fileDescriptor_9f1eaa49c51fa1ac) }
  2678. func init() { golang_proto.RegisterFile("abci/types/types.proto", fileDescriptor_9f1eaa49c51fa1ac) }
  2679. var fileDescriptor_9f1eaa49c51fa1ac = []byte{
  2680. // 2313 bytes of a gzipped FileDescriptorProto
  2681. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4d, 0x90, 0x1b, 0x47,
  2682. 0x15, 0xde, 0x91, 0xb4, 0x92, 0xe6, 0x69, 0x7f, 0xe4, 0xb6, 0x93, 0x28, 0xc2, 0xd9, 0x75, 0x8d,
  2683. 0xff, 0xd6, 0x21, 0x91, 0xc3, 0x42, 0xa8, 0x18, 0xbb, 0x42, 0xad, 0xd6, 0x0e, 0x52, 0xc5, 0x49,
  2684. 0x36, 0x63, 0x7b, 0x31, 0x50, 0x95, 0xa9, 0x96, 0xa6, 0x2d, 0x4d, 0xad, 0x34, 0x33, 0x99, 0x69,
  2685. 0xc9, 0xbb, 0x14, 0x77, 0x8a, 0x1b, 0x17, 0x8e, 0xdc, 0x39, 0x72, 0xe0, 0x90, 0x23, 0xc7, 0x1c,
  2686. 0x38, 0x70, 0xe0, 0x6c, 0x60, 0xe1, 0x44, 0xe5, 0x48, 0x51, 0x1c, 0xa9, 0x7e, 0xdd, 0xf3, 0x27,
  2687. 0x4b, 0xab, 0x71, 0xf0, 0x2d, 0x97, 0xdd, 0xe9, 0xd6, 0x7b, 0xaf, 0xbb, 0x5f, 0xbf, 0xf7, 0xbe,
  2688. 0xf7, 0x5e, 0xc3, 0xab, 0xb4, 0xd7, 0x77, 0x6e, 0xf2, 0x13, 0x9f, 0x85, 0xf2, 0x6f, 0xcb, 0x0f,
  2689. 0x3c, 0xee, 0x91, 0x57, 0x38, 0x73, 0x6d, 0x16, 0x8c, 0x1d, 0x97, 0xb7, 0x04, 0x49, 0x0b, 0x7f,
  2690. 0x6c, 0xbe, 0x3d, 0x70, 0xf8, 0x70, 0xd2, 0x6b, 0xf5, 0xbd, 0xf1, 0xcd, 0x81, 0x37, 0xf0, 0x6e,
  2691. 0x22, 0x75, 0x6f, 0xf2, 0x04, 0x47, 0x38, 0xc0, 0x2f, 0x29, 0xa5, 0x79, 0x3b, 0x45, 0x9e, 0x08,
  2692. 0x4c, 0x7f, 0xf6, 0x83, 0x13, 0x9f, 0x7b, 0x37, 0xc7, 0x2c, 0x38, 0x1a, 0x31, 0xf5, 0x4f, 0x31,
  2693. 0x7f, 0x6f, 0x29, 0xf3, 0xc8, 0xe9, 0x85, 0x37, 0x8f, 0xa6, 0xe9, 0x8d, 0x37, 0xb7, 0x07, 0x9e,
  2694. 0x37, 0x18, 0xb1, 0x64, 0x63, 0xdc, 0x19, 0xb3, 0x90, 0xd3, 0xb1, 0x2f, 0x09, 0x8c, 0xff, 0xac,
  2695. 0x42, 0xc5, 0x64, 0x9f, 0x4f, 0x58, 0xc8, 0xc9, 0x7b, 0x50, 0x62, 0xfd, 0xa1, 0xd7, 0x28, 0x5c,
  2696. 0xd2, 0x76, 0x6a, 0xbb, 0x46, 0x6b, 0xee, 0xa1, 0x5b, 0x8a, 0xfa, 0x5e, 0x7f, 0xe8, 0x75, 0x56,
  2697. 0x4c, 0xe4, 0x20, 0xb7, 0x61, 0xf5, 0xc9, 0x68, 0x12, 0x0e, 0x1b, 0x45, 0x64, 0xbd, 0x7c, 0x36,
  2698. 0xeb, 0x07, 0x82, 0xb4, 0xb3, 0x62, 0x4a, 0x1e, 0xb1, 0xac, 0xe3, 0x3e, 0xf1, 0x1a, 0xa5, 0x3c,
  2699. 0xcb, 0x76, 0xdd, 0x27, 0xb8, 0xac, 0xe0, 0x20, 0x1d, 0x80, 0x90, 0x71, 0xcb, 0xf3, 0xb9, 0xe3,
  2700. 0xb9, 0x8d, 0x55, 0xe4, 0xbf, 0x7e, 0x36, 0xff, 0x03, 0xc6, 0x3f, 0x41, 0xf2, 0xce, 0x8a, 0xa9,
  2701. 0x87, 0xd1, 0x40, 0x48, 0x72, 0x5c, 0x87, 0x5b, 0xfd, 0x21, 0x75, 0xdc, 0x46, 0x39, 0x8f, 0xa4,
  2702. 0xae, 0xeb, 0xf0, 0x7d, 0x41, 0x2e, 0x24, 0x39, 0xd1, 0x40, 0xa8, 0xe2, 0xf3, 0x09, 0x0b, 0x4e,
  2703. 0x1a, 0x95, 0x3c, 0xaa, 0xf8, 0x54, 0x90, 0x0a, 0x55, 0x20, 0x0f, 0xf9, 0x10, 0x6a, 0x3d, 0x36,
  2704. 0x70, 0x5c, 0xab, 0x37, 0xf2, 0xfa, 0x47, 0x8d, 0x2a, 0x8a, 0xd8, 0x39, 0x5b, 0x44, 0x5b, 0x30,
  2705. 0xb4, 0x05, 0x7d, 0x67, 0xc5, 0x84, 0x5e, 0x3c, 0x22, 0x6d, 0xa8, 0xf6, 0x87, 0xac, 0x7f, 0x64,
  2706. 0xf1, 0xe3, 0x86, 0x8e, 0x92, 0xae, 0x9e, 0x2d, 0x69, 0x5f, 0x50, 0x3f, 0x3c, 0xee, 0xac, 0x98,
  2707. 0x95, 0xbe, 0xfc, 0x14, 0x7a, 0xb1, 0xd9, 0xc8, 0x99, 0xb2, 0x40, 0x48, 0x39, 0x9f, 0x47, 0x2f,
  2708. 0x77, 0x25, 0x3d, 0xca, 0xd1, 0xed, 0x68, 0x40, 0xee, 0x81, 0xce, 0x5c, 0x5b, 0x1d, 0xac, 0x86,
  2709. 0x82, 0xae, 0x2d, 0xb1, 0x30, 0xd7, 0x8e, 0x8e, 0x55, 0x65, 0xea, 0x9b, 0xbc, 0x0f, 0xe5, 0xbe,
  2710. 0x37, 0x1e, 0x3b, 0xbc, 0xb1, 0x86, 0x32, 0xae, 0x2c, 0x39, 0x12, 0xd2, 0x76, 0x56, 0x4c, 0xc5,
  2711. 0xd5, 0xae, 0xc0, 0xea, 0x94, 0x8e, 0x26, 0xcc, 0xb8, 0x0e, 0xb5, 0x94, 0x25, 0x93, 0x06, 0x54,
  2712. 0xc6, 0x2c, 0x0c, 0xe9, 0x80, 0x35, 0xb4, 0x4b, 0xda, 0x8e, 0x6e, 0x46, 0x43, 0x63, 0x03, 0xd6,
  2713. 0xd2, 0x76, 0x6b, 0x8c, 0x63, 0x46, 0x61, 0x8b, 0x82, 0x71, 0xca, 0x82, 0x50, 0x18, 0xa0, 0x62,
  2714. 0x54, 0x43, 0x72, 0x19, 0xd6, 0xf1, 0xb4, 0x56, 0xf4, 0xbb, 0xf0, 0xab, 0x92, 0xb9, 0x86, 0x93,
  2715. 0x87, 0x8a, 0x68, 0x1b, 0x6a, 0xfe, 0xae, 0x1f, 0x93, 0x14, 0x91, 0x04, 0xfc, 0x5d, 0x5f, 0x11,
  2716. 0x18, 0x3f, 0x80, 0xfa, 0xac, 0xe9, 0x92, 0x3a, 0x14, 0x8f, 0xd8, 0x89, 0x5a, 0x4f, 0x7c, 0x92,
  2717. 0x0b, 0xea, 0x58, 0xb8, 0x86, 0x6e, 0xaa, 0x33, 0xfe, 0xbe, 0x10, 0x33, 0xc7, 0xd6, 0x2a, 0xdc,
  2718. 0x4d, 0x04, 0x01, 0xe4, 0xae, 0xed, 0x36, 0x5b, 0x32, 0x42, 0xb4, 0xa2, 0x08, 0xd1, 0x7a, 0x18,
  2719. 0x45, 0x88, 0x76, 0xf5, 0xcb, 0x67, 0xdb, 0x2b, 0xbf, 0xfe, 0xeb, 0xb6, 0x66, 0x22, 0x07, 0x79,
  2720. 0x5d, 0x18, 0x14, 0x75, 0x5c, 0xcb, 0xb1, 0xd5, 0x3a, 0x15, 0x1c, 0x77, 0x6d, 0xf2, 0x29, 0xd4,
  2721. 0xfb, 0x9e, 0x1b, 0x32, 0x37, 0x9c, 0x84, 0x96, 0x4f, 0x03, 0x3a, 0x0e, 0x55, 0x2c, 0x58, 0x74,
  2722. 0xc9, 0xfb, 0x11, 0xf9, 0x01, 0x52, 0x9b, 0x9b, 0xfd, 0xec, 0x04, 0xb9, 0x0f, 0x30, 0xa5, 0x23,
  2723. 0xc7, 0xa6, 0xdc, 0x0b, 0xc2, 0x46, 0xe9, 0x52, 0xf1, 0x0c, 0x61, 0x87, 0x11, 0xe1, 0x23, 0xdf,
  2724. 0xa6, 0x9c, 0xb5, 0x4b, 0x62, 0xe7, 0x66, 0x8a, 0x9f, 0x5c, 0x83, 0x4d, 0xea, 0xfb, 0x56, 0xc8,
  2725. 0x29, 0x67, 0x56, 0xef, 0x84, 0xb3, 0x10, 0xe3, 0xc5, 0x9a, 0xb9, 0x4e, 0x7d, 0xff, 0x81, 0x98,
  2726. 0x6d, 0x8b, 0x49, 0xc3, 0x8e, 0x6f, 0x1b, 0x5d, 0x93, 0x10, 0x28, 0xd9, 0x94, 0x53, 0xd4, 0xd6,
  2727. 0x9a, 0x89, 0xdf, 0x62, 0xce, 0xa7, 0x7c, 0xa8, 0x74, 0x80, 0xdf, 0xe4, 0x55, 0x28, 0x0f, 0x99,
  2728. 0x33, 0x18, 0x72, 0x3c, 0x76, 0xd1, 0x54, 0x23, 0x71, 0x31, 0x7e, 0xe0, 0x4d, 0x19, 0x46, 0xb7,
  2729. 0xaa, 0x29, 0x07, 0xc6, 0x6f, 0x0a, 0x70, 0xee, 0x39, 0xf7, 0x15, 0x72, 0x87, 0x34, 0x1c, 0x46,
  2730. 0x6b, 0x89, 0x6f, 0x72, 0x5b, 0xc8, 0xa5, 0x36, 0x0b, 0x54, 0x54, 0x7e, 0x63, 0x81, 0x06, 0x3a,
  2731. 0x48, 0xa4, 0x0e, 0xae, 0x58, 0xc8, 0x23, 0xa8, 0x8f, 0x68, 0xc8, 0x2d, 0x69, 0xfb, 0x16, 0x46,
  2732. 0xd9, 0xe2, 0x99, 0x91, 0xe0, 0x3e, 0x8d, 0x7c, 0x46, 0x18, 0xb7, 0x12, 0xb7, 0x31, 0xca, 0xcc,
  2733. 0x92, 0xc7, 0x70, 0xa1, 0x77, 0xf2, 0x73, 0xea, 0x72, 0xc7, 0x65, 0xd6, 0x73, 0x77, 0xb4, 0xbd,
  2734. 0x40, 0xf4, 0xbd, 0xa9, 0x63, 0x33, 0xb7, 0x1f, 0x5d, 0xce, 0xf9, 0x58, 0x44, 0x7c, 0x79, 0xa1,
  2735. 0xf1, 0x18, 0x36, 0xb2, 0xb1, 0x88, 0x6c, 0x40, 0x81, 0x1f, 0x2b, 0x8d, 0x14, 0xf8, 0x31, 0xf9,
  2736. 0x3e, 0x94, 0x84, 0x38, 0xd4, 0xc6, 0xc6, 0x42, 0xb0, 0x50, 0xdc, 0x0f, 0x4f, 0x7c, 0x66, 0x22,
  2737. 0xbd, 0x61, 0xc4, 0x9e, 0x10, 0xc7, 0xa7, 0x59, 0xd9, 0xc6, 0x0d, 0xd8, 0x9c, 0x09, 0x3d, 0xa9,
  2738. 0x6b, 0xd5, 0xd2, 0xd7, 0x6a, 0x6c, 0xc2, 0x7a, 0x26, 0xc2, 0x18, 0x7f, 0x2a, 0x43, 0xd5, 0x64,
  2739. 0xa1, 0x2f, 0x8c, 0x98, 0x74, 0x40, 0x67, 0xc7, 0x7d, 0x26, 0x61, 0x49, 0x5b, 0x12, 0xc4, 0x25,
  2740. 0xcf, 0xbd, 0x88, 0x5e, 0x44, 0xcd, 0x98, 0x99, 0xdc, 0xca, 0x40, 0xf2, 0xe5, 0x65, 0x42, 0xd2,
  2741. 0x98, 0x7c, 0x27, 0x8b, 0xc9, 0x57, 0x96, 0xf0, 0xce, 0x80, 0xf2, 0xad, 0x0c, 0x28, 0x2f, 0x5b,
  2742. 0x38, 0x83, 0xca, 0xdd, 0x39, 0xa8, 0xbc, 0xec, 0xf8, 0x0b, 0x60, 0xb9, 0x3b, 0x07, 0x96, 0x77,
  2743. 0x96, 0xee, 0x65, 0x2e, 0x2e, 0xdf, 0xc9, 0xe2, 0xf2, 0x32, 0x75, 0xcc, 0x00, 0xf3, 0xfd, 0x79,
  2744. 0xc0, 0x7c, 0x63, 0x89, 0x8c, 0x85, 0xc8, 0xbc, 0xff, 0x1c, 0x32, 0x5f, 0x5b, 0x22, 0x6a, 0x0e,
  2745. 0x34, 0x77, 0x33, 0xd0, 0x0c, 0xb9, 0x74, 0xb3, 0x00, 0x9b, 0x3f, 0x78, 0x1e, 0x9b, 0xaf, 0x2f,
  2746. 0x33, 0xb5, 0x79, 0xe0, 0xfc, 0xc3, 0x19, 0x70, 0xbe, 0xba, 0xec, 0x54, 0x0b, 0xd1, 0xf9, 0x86,
  2747. 0x88, 0x8f, 0x33, 0x9e, 0x21, 0x62, 0x29, 0x0b, 0x02, 0x2f, 0x50, 0xc0, 0x27, 0x07, 0xc6, 0x8e,
  2748. 0x88, 0xd8, 0x89, 0xfd, 0x9f, 0x81, 0xe4, 0xe8, 0xb4, 0x29, 0x6b, 0x37, 0xbe, 0xd0, 0x12, 0x5e,
  2749. 0x8c, 0x6c, 0xe9, 0x68, 0xaf, 0xab, 0x68, 0x9f, 0x02, 0xf8, 0x42, 0x16, 0xe0, 0xb7, 0xa1, 0x26,
  2750. 0x30, 0x65, 0x06, 0xbb, 0xa9, 0x1f, 0x61, 0x37, 0x79, 0x13, 0xce, 0x61, 0xfc, 0x95, 0x69, 0x80,
  2751. 0x0a, 0x24, 0x25, 0x0c, 0x24, 0x9b, 0xe2, 0x07, 0xa9, 0x41, 0x09, 0x14, 0x6f, 0xc3, 0xf9, 0x14,
  2752. 0xad, 0x90, 0x8b, 0x58, 0x20, 0x41, 0xaa, 0x1e, 0x53, 0xef, 0xf9, 0x7e, 0x87, 0x86, 0x43, 0xe3,
  2753. 0xa3, 0x44, 0x41, 0x49, 0x5e, 0x40, 0xa0, 0xd4, 0xf7, 0x6c, 0x79, 0xee, 0x75, 0x13, 0xbf, 0x45,
  2754. 0xae, 0x30, 0xf2, 0x06, 0xb8, 0x39, 0xdd, 0x14, 0x9f, 0x82, 0x2a, 0x76, 0x6d, 0x5d, 0xfa, 0xac,
  2755. 0xf1, 0x07, 0x2d, 0x91, 0x97, 0xa4, 0x0a, 0xf3, 0x50, 0x5d, 0x7b, 0x99, 0xa8, 0x5e, 0xf8, 0xff,
  2756. 0x50, 0xdd, 0xf8, 0xb7, 0x96, 0x5c, 0x69, 0x8c, 0xd7, 0x5f, 0x4f, 0x05, 0xc2, 0xba, 0x1c, 0xd7,
  2757. 0x66, 0xc7, 0xa8, 0xf2, 0xa2, 0x29, 0x07, 0x51, 0xaa, 0x55, 0xc6, 0x6b, 0xc8, 0xa6, 0x5a, 0x15,
  2758. 0x9c, 0x93, 0x03, 0xf2, 0x2e, 0xe2, 0xbc, 0xf7, 0x44, 0x85, 0x86, 0x0c, 0x08, 0xca, 0xaa, 0xae,
  2759. 0xa5, 0xca, 0xb9, 0x03, 0x41, 0x66, 0x4a, 0xea, 0x14, 0xbe, 0xe8, 0x99, 0xb4, 0xe1, 0x22, 0xe8,
  2760. 0x62, 0xeb, 0xa1, 0x4f, 0xfb, 0x0c, 0x7d, 0x5b, 0x37, 0x93, 0x09, 0xc3, 0x06, 0xf2, 0x7c, 0x8c,
  2761. 0x21, 0x1f, 0x43, 0x99, 0x4d, 0x99, 0xcb, 0xc5, 0x1d, 0x09, 0xb5, 0x5e, 0x5c, 0x08, 0xc4, 0xcc,
  2762. 0xe5, 0xed, 0x86, 0x50, 0xe6, 0xbf, 0x9e, 0x6d, 0xd7, 0x25, 0xcf, 0x5b, 0xde, 0xd8, 0xe1, 0x6c,
  2763. 0xec, 0xf3, 0x13, 0x53, 0x49, 0x31, 0x7e, 0x59, 0x10, 0x78, 0x98, 0x89, 0x3f, 0x73, 0xd5, 0x1b,
  2764. 0x39, 0x4d, 0x21, 0x95, 0x22, 0xe5, 0x53, 0xf9, 0x1b, 0x00, 0x03, 0x1a, 0x5a, 0x4f, 0xa9, 0xcb,
  2765. 0x99, 0xad, 0xf4, 0xae, 0x0f, 0x68, 0xf8, 0x63, 0x9c, 0x10, 0xf9, 0xa6, 0xf8, 0x79, 0x12, 0x32,
  2766. 0x1b, 0x2f, 0xa0, 0x68, 0x56, 0x06, 0x34, 0x7c, 0x14, 0x32, 0x3b, 0x75, 0xd6, 0xca, 0xcb, 0x38,
  2767. 0x6b, 0x56, 0xdf, 0xd5, 0x59, 0x7d, 0xff, 0xaa, 0x90, 0x78, 0x47, 0x92, 0x3e, 0x7c, 0x33, 0x75,
  2768. 0xf1, 0x5b, 0xac, 0x29, 0xb2, 0x20, 0x40, 0x7e, 0x02, 0xe7, 0x62, 0xaf, 0xb4, 0x26, 0xe8, 0xad,
  2769. 0x91, 0x15, 0xbe, 0x98, 0x73, 0xd7, 0xa7, 0xd9, 0xe9, 0x90, 0x7c, 0x06, 0xaf, 0xcd, 0xc4, 0xa0,
  2770. 0x78, 0x81, 0xc2, 0x0b, 0x85, 0xa2, 0x57, 0xb2, 0xa1, 0x28, 0x92, 0x9f, 0x68, 0xaf, 0xf8, 0x52,
  2771. 0xbc, 0xe6, 0x8a, 0x48, 0x61, 0xd3, 0xf0, 0x36, 0xcf, 0x26, 0x8c, 0xbf, 0x68, 0xb0, 0x39, 0xb3,
  2772. 0x41, 0xf2, 0x1e, 0xac, 0x4a, 0x04, 0xd6, 0xce, 0x6c, 0x84, 0xa0, 0xc6, 0xd5, 0x99, 0x24, 0x03,
  2773. 0xd9, 0x83, 0x2a, 0x53, 0xd9, 0xb5, 0x52, 0xca, 0xd5, 0x25, 0x49, 0xb8, 0xe2, 0x8f, 0xd9, 0xc8,
  2774. 0x5d, 0xd0, 0x63, 0xd5, 0x2f, 0xa9, 0xdc, 0xe2, 0x9b, 0x53, 0x42, 0x12, 0x46, 0x63, 0x1f, 0x6a,
  2775. 0xa9, 0xed, 0x91, 0x6f, 0x81, 0x3e, 0xa6, 0xc7, 0xaa, 0xdc, 0x92, 0x09, 0x74, 0x75, 0x4c, 0x8f,
  2776. 0xb1, 0xd2, 0x22, 0xaf, 0x41, 0x45, 0xfc, 0x38, 0xa0, 0xf2, 0x22, 0x8b, 0x66, 0x79, 0x4c, 0x8f,
  2777. 0x7f, 0x44, 0x43, 0xe3, 0x06, 0x6c, 0x64, 0xb7, 0x19, 0x91, 0x46, 0x90, 0x2e, 0x49, 0xf7, 0x06,
  2778. 0xcc, 0x78, 0x17, 0x36, 0x67, 0x76, 0x43, 0x0c, 0x58, 0xf7, 0x27, 0x3d, 0xeb, 0x88, 0x9d, 0x58,
  2779. 0xb8, 0x5d, 0x34, 0x43, 0xdd, 0xac, 0xf9, 0x93, 0xde, 0x87, 0xec, 0x44, 0x54, 0x04, 0xa1, 0xd1,
  2780. 0x87, 0x8d, 0x6c, 0xa1, 0x23, 0x82, 0x7a, 0xe0, 0x4d, 0x5c, 0x1b, 0xe5, 0xaf, 0x9a, 0x72, 0x40,
  2781. 0x6e, 0xc3, 0xea, 0xd4, 0x93, 0x96, 0x76, 0x56, 0x65, 0x73, 0xe8, 0x71, 0x96, 0x2a, 0x97, 0x24,
  2782. 0x8f, 0x11, 0xc2, 0x2a, 0xda, 0x8c, 0xb8, 0x7f, 0x2c, 0x59, 0x54, 0x52, 0x21, 0xbe, 0xc9, 0x21,
  2783. 0x00, 0xe5, 0x3c, 0x70, 0x7a, 0x93, 0x44, 0x7c, 0x23, 0x2d, 0x7e, 0xe4, 0xf4, 0xc2, 0xd6, 0xd1,
  2784. 0xb4, 0x75, 0x40, 0x9d, 0xa0, 0x7d, 0x51, 0x59, 0xdd, 0x85, 0x84, 0x27, 0x65, 0x79, 0x29, 0x49,
  2785. 0xc6, 0x57, 0x25, 0x28, 0xcb, 0x52, 0x90, 0xbc, 0x9f, 0x6d, 0x4c, 0xd4, 0x76, 0xb7, 0x16, 0x6d,
  2786. 0x5f, 0x52, 0xa9, 0xdd, 0xc7, 0xd9, 0xcd, 0xb5, 0xd9, 0x6a, 0xbf, 0x5d, 0x3b, 0x7d, 0xb6, 0x5d,
  2787. 0xc1, 0xcc, 0xa0, 0x7b, 0x37, 0x29, 0xfd, 0x17, 0x55, 0xbe, 0x51, 0x9f, 0xa1, 0xf4, 0xc2, 0x7d,
  2788. 0x86, 0x0e, 0xac, 0xa7, 0x52, 0x21, 0xc7, 0x56, 0x35, 0xc4, 0xd6, 0x59, 0x0e, 0xd1, 0xbd, 0xab,
  2789. 0xf6, 0x5f, 0x8b, 0x53, 0xa5, 0xae, 0x4d, 0x76, 0xb2, 0x05, 0x30, 0x66, 0x54, 0x12, 0xca, 0x53,
  2790. 0x35, 0xad, 0xc8, 0xa7, 0x84, 0xa9, 0x0a, 0xc7, 0x94, 0x24, 0x12, 0xd9, 0xab, 0x62, 0x02, 0x7f,
  2791. 0xbc, 0x0e, 0x9b, 0x49, 0xd2, 0x21, 0x49, 0xaa, 0x52, 0x4a, 0x32, 0x8d, 0x84, 0xef, 0xc0, 0x05,
  2792. 0x97, 0x1d, 0x73, 0x6b, 0x96, 0x5a, 0x47, 0x6a, 0x22, 0x7e, 0x3b, 0xcc, 0x72, 0x5c, 0x85, 0x8d,
  2793. 0x24, 0xbc, 0x21, 0x2d, 0xc8, 0xb6, 0x44, 0x3c, 0x8b, 0x64, 0xaf, 0x43, 0x35, 0x4e, 0x09, 0x6b,
  2794. 0x48, 0x50, 0xa1, 0x32, 0x13, 0x8c, 0x93, 0xcc, 0x80, 0x85, 0x93, 0x11, 0x57, 0x42, 0xd6, 0x90,
  2795. 0x06, 0x93, 0x4c, 0x53, 0xce, 0x23, 0xed, 0x65, 0x58, 0x8f, 0x3c, 0x5e, 0xd2, 0xad, 0x23, 0xdd,
  2796. 0x5a, 0x34, 0x89, 0x44, 0x37, 0xa0, 0xee, 0x07, 0x9e, 0xef, 0x85, 0x2c, 0xb0, 0xa8, 0x6d, 0x07,
  2797. 0x2c, 0x0c, 0x1b, 0x1b, 0x52, 0x5e, 0x34, 0xbf, 0x27, 0xa7, 0x8d, 0xef, 0x40, 0x25, 0xca, 0x75,
  2798. 0x2f, 0xc0, 0x6a, 0x3b, 0x8e, 0x5e, 0x25, 0x53, 0x0e, 0x04, 0xf6, 0xed, 0xf9, 0xbe, 0xea, 0x7c,
  2799. 0x89, 0x4f, 0x63, 0x04, 0x15, 0x75, 0x61, 0x73, 0xfb, 0x1d, 0x1f, 0xc1, 0x9a, 0x4f, 0x03, 0x71,
  2800. 0x8c, 0x74, 0xd7, 0x63, 0x51, 0xb5, 0x76, 0x40, 0x03, 0xfe, 0x80, 0xf1, 0x4c, 0xf3, 0xa3, 0x86,
  2801. 0xfc, 0x72, 0xca, 0xb8, 0x05, 0xeb, 0x19, 0x1a, 0xb1, 0x4d, 0xee, 0x71, 0x3a, 0x8a, 0x1c, 0x1d,
  2802. 0x07, 0xf1, 0x4e, 0x0a, 0xc9, 0x4e, 0x8c, 0xdb, 0xa0, 0xc7, 0x77, 0x25, 0x8a, 0x80, 0x48, 0x15,
  2803. 0x9a, 0x52, 0xbf, 0x1c, 0x62, 0x83, 0xc7, 0x7b, 0xca, 0x02, 0x65, 0xfd, 0x72, 0x60, 0xb0, 0x54,
  2804. 0x60, 0x92, 0x48, 0x43, 0xee, 0x40, 0x45, 0x05, 0x26, 0xe5, 0x8f, 0x8b, 0x5a, 0x39, 0x07, 0x18,
  2805. 0xa9, 0xa2, 0x56, 0x8e, 0x8c, 0x5b, 0xc9, 0x32, 0x85, 0xf4, 0x32, 0xbf, 0x80, 0x6a, 0x14, 0x7c,
  2806. 0xb2, 0x11, 0x5c, 0xae, 0x70, 0x69, 0x59, 0x04, 0x57, 0x8b, 0x24, 0x8c, 0xc2, 0x9a, 0x42, 0x67,
  2807. 0xe0, 0x32, 0xdb, 0x4a, 0x5c, 0x10, 0xd7, 0xac, 0x9a, 0x9b, 0xf2, 0x87, 0xfb, 0x91, 0x7f, 0x19,
  2808. 0xef, 0x40, 0x59, 0xee, 0x75, 0x6e, 0x88, 0x9b, 0x07, 0x7b, 0xff, 0xd4, 0xa0, 0x1a, 0xc5, 0xf6,
  2809. 0xb9, 0x4c, 0x99, 0x43, 0x14, 0xbe, 0xee, 0x21, 0x5e, 0x7e, 0x48, 0x7a, 0x0b, 0x08, 0x5a, 0x8a,
  2810. 0x35, 0xf5, 0xb8, 0xe3, 0x0e, 0x2c, 0x79, 0x17, 0x32, 0x4b, 0xab, 0xe3, 0x2f, 0x87, 0xf8, 0xc3,
  2811. 0x81, 0x98, 0x7f, 0xf3, 0x32, 0xd4, 0x52, 0x1d, 0x28, 0x52, 0x81, 0xe2, 0xc7, 0xec, 0x69, 0x7d,
  2812. 0x85, 0xd4, 0xa0, 0x62, 0x32, 0xac, 0xdf, 0xeb, 0xda, 0xee, 0x57, 0x15, 0xd8, 0xdc, 0x6b, 0xef,
  2813. 0x77, 0xf7, 0x7c, 0x7f, 0xe4, 0xf4, 0x29, 0x16, 0x70, 0x9f, 0x40, 0x09, 0x6b, 0xd8, 0x1c, 0x6f,
  2814. 0x2f, 0xcd, 0x3c, 0xcd, 0x20, 0x62, 0xc2, 0x2a, 0x96, 0xba, 0x24, 0xcf, 0x93, 0x4c, 0x33, 0x57,
  2815. 0x8f, 0x48, 0x6c, 0x12, 0x0d, 0x2e, 0xc7, 0x4b, 0x4d, 0x33, 0x4f, 0xe3, 0x88, 0x7c, 0x06, 0x7a,
  2816. 0x52, 0xc3, 0xe6, 0x7d, 0xbf, 0x69, 0xe6, 0x6e, 0x29, 0x09, 0xf9, 0x49, 0xd6, 0x9e, 0xf7, 0xf5,
  2817. 0xa2, 0x99, 0xbb, 0x97, 0x42, 0x1e, 0x43, 0x25, 0xaa, 0x8f, 0xf2, 0xbd, 0xb0, 0x34, 0x73, 0xb6,
  2818. 0x7b, 0xc4, 0xf5, 0xc9, 0xb2, 0x36, 0xcf, 0x33, 0x52, 0x33, 0x57, 0x4f, 0x8b, 0x3c, 0x82, 0xb2,
  2819. 0x4a, 0x4c, 0x73, 0xbd, 0x9d, 0x34, 0xf3, 0x35, 0x71, 0x84, 0x92, 0x93, 0xc6, 0x41, 0xde, 0xa7,
  2820. 0xb3, 0x66, 0xee, 0x66, 0x1e, 0xa1, 0x00, 0xa9, 0x5a, 0x37, 0xf7, 0x9b, 0x58, 0x33, 0x7f, 0x93,
  2821. 0x8e, 0xfc, 0x0c, 0xaa, 0x71, 0x45, 0x93, 0xf3, 0x6d, 0xaa, 0x99, 0xb7, 0x4f, 0xd6, 0xee, 0xfe,
  2822. 0xf7, 0xef, 0x5b, 0xda, 0xef, 0x4e, 0xb7, 0xb4, 0x2f, 0x4e, 0xb7, 0xb4, 0x2f, 0x4f, 0xb7, 0xb4,
  2823. 0x3f, 0x9f, 0x6e, 0x69, 0x7f, 0x3b, 0xdd, 0xd2, 0xfe, 0xf8, 0x8f, 0x2d, 0xed, 0xa7, 0xdf, 0x5e,
  2824. 0xfa, 0xba, 0x9b, 0xbc, 0x4c, 0xf7, 0xca, 0x18, 0xb0, 0xbe, 0xfb, 0xbf, 0x00, 0x00, 0x00, 0xff,
  2825. 0xff, 0x83, 0x66, 0x2e, 0x0b, 0xae, 0x1e, 0x00, 0x00,
  2826. }
  2827. func (this *Request) Equal(that interface{}) bool {
  2828. if that == nil {
  2829. return this == nil
  2830. }
  2831. that1, ok := that.(*Request)
  2832. if !ok {
  2833. that2, ok := that.(Request)
  2834. if ok {
  2835. that1 = &that2
  2836. } else {
  2837. return false
  2838. }
  2839. }
  2840. if that1 == nil {
  2841. return this == nil
  2842. } else if this == nil {
  2843. return false
  2844. }
  2845. if that1.Value == nil {
  2846. if this.Value != nil {
  2847. return false
  2848. }
  2849. } else if this.Value == nil {
  2850. return false
  2851. } else if !this.Value.Equal(that1.Value) {
  2852. return false
  2853. }
  2854. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  2855. return false
  2856. }
  2857. return true
  2858. }
  2859. func (this *Request_Echo) Equal(that interface{}) bool {
  2860. if that == nil {
  2861. return this == nil
  2862. }
  2863. that1, ok := that.(*Request_Echo)
  2864. if !ok {
  2865. that2, ok := that.(Request_Echo)
  2866. if ok {
  2867. that1 = &that2
  2868. } else {
  2869. return false
  2870. }
  2871. }
  2872. if that1 == nil {
  2873. return this == nil
  2874. } else if this == nil {
  2875. return false
  2876. }
  2877. if !this.Echo.Equal(that1.Echo) {
  2878. return false
  2879. }
  2880. return true
  2881. }
  2882. func (this *Request_Flush) Equal(that interface{}) bool {
  2883. if that == nil {
  2884. return this == nil
  2885. }
  2886. that1, ok := that.(*Request_Flush)
  2887. if !ok {
  2888. that2, ok := that.(Request_Flush)
  2889. if ok {
  2890. that1 = &that2
  2891. } else {
  2892. return false
  2893. }
  2894. }
  2895. if that1 == nil {
  2896. return this == nil
  2897. } else if this == nil {
  2898. return false
  2899. }
  2900. if !this.Flush.Equal(that1.Flush) {
  2901. return false
  2902. }
  2903. return true
  2904. }
  2905. func (this *Request_Info) Equal(that interface{}) bool {
  2906. if that == nil {
  2907. return this == nil
  2908. }
  2909. that1, ok := that.(*Request_Info)
  2910. if !ok {
  2911. that2, ok := that.(Request_Info)
  2912. if ok {
  2913. that1 = &that2
  2914. } else {
  2915. return false
  2916. }
  2917. }
  2918. if that1 == nil {
  2919. return this == nil
  2920. } else if this == nil {
  2921. return false
  2922. }
  2923. if !this.Info.Equal(that1.Info) {
  2924. return false
  2925. }
  2926. return true
  2927. }
  2928. func (this *Request_SetOption) Equal(that interface{}) bool {
  2929. if that == nil {
  2930. return this == nil
  2931. }
  2932. that1, ok := that.(*Request_SetOption)
  2933. if !ok {
  2934. that2, ok := that.(Request_SetOption)
  2935. if ok {
  2936. that1 = &that2
  2937. } else {
  2938. return false
  2939. }
  2940. }
  2941. if that1 == nil {
  2942. return this == nil
  2943. } else if this == nil {
  2944. return false
  2945. }
  2946. if !this.SetOption.Equal(that1.SetOption) {
  2947. return false
  2948. }
  2949. return true
  2950. }
  2951. func (this *Request_InitChain) Equal(that interface{}) bool {
  2952. if that == nil {
  2953. return this == nil
  2954. }
  2955. that1, ok := that.(*Request_InitChain)
  2956. if !ok {
  2957. that2, ok := that.(Request_InitChain)
  2958. if ok {
  2959. that1 = &that2
  2960. } else {
  2961. return false
  2962. }
  2963. }
  2964. if that1 == nil {
  2965. return this == nil
  2966. } else if this == nil {
  2967. return false
  2968. }
  2969. if !this.InitChain.Equal(that1.InitChain) {
  2970. return false
  2971. }
  2972. return true
  2973. }
  2974. func (this *Request_Query) Equal(that interface{}) bool {
  2975. if that == nil {
  2976. return this == nil
  2977. }
  2978. that1, ok := that.(*Request_Query)
  2979. if !ok {
  2980. that2, ok := that.(Request_Query)
  2981. if ok {
  2982. that1 = &that2
  2983. } else {
  2984. return false
  2985. }
  2986. }
  2987. if that1 == nil {
  2988. return this == nil
  2989. } else if this == nil {
  2990. return false
  2991. }
  2992. if !this.Query.Equal(that1.Query) {
  2993. return false
  2994. }
  2995. return true
  2996. }
  2997. func (this *Request_BeginBlock) Equal(that interface{}) bool {
  2998. if that == nil {
  2999. return this == nil
  3000. }
  3001. that1, ok := that.(*Request_BeginBlock)
  3002. if !ok {
  3003. that2, ok := that.(Request_BeginBlock)
  3004. if ok {
  3005. that1 = &that2
  3006. } else {
  3007. return false
  3008. }
  3009. }
  3010. if that1 == nil {
  3011. return this == nil
  3012. } else if this == nil {
  3013. return false
  3014. }
  3015. if !this.BeginBlock.Equal(that1.BeginBlock) {
  3016. return false
  3017. }
  3018. return true
  3019. }
  3020. func (this *Request_CheckTx) Equal(that interface{}) bool {
  3021. if that == nil {
  3022. return this == nil
  3023. }
  3024. that1, ok := that.(*Request_CheckTx)
  3025. if !ok {
  3026. that2, ok := that.(Request_CheckTx)
  3027. if ok {
  3028. that1 = &that2
  3029. } else {
  3030. return false
  3031. }
  3032. }
  3033. if that1 == nil {
  3034. return this == nil
  3035. } else if this == nil {
  3036. return false
  3037. }
  3038. if !this.CheckTx.Equal(that1.CheckTx) {
  3039. return false
  3040. }
  3041. return true
  3042. }
  3043. func (this *Request_DeliverTx) Equal(that interface{}) bool {
  3044. if that == nil {
  3045. return this == nil
  3046. }
  3047. that1, ok := that.(*Request_DeliverTx)
  3048. if !ok {
  3049. that2, ok := that.(Request_DeliverTx)
  3050. if ok {
  3051. that1 = &that2
  3052. } else {
  3053. return false
  3054. }
  3055. }
  3056. if that1 == nil {
  3057. return this == nil
  3058. } else if this == nil {
  3059. return false
  3060. }
  3061. if !this.DeliverTx.Equal(that1.DeliverTx) {
  3062. return false
  3063. }
  3064. return true
  3065. }
  3066. func (this *Request_EndBlock) Equal(that interface{}) bool {
  3067. if that == nil {
  3068. return this == nil
  3069. }
  3070. that1, ok := that.(*Request_EndBlock)
  3071. if !ok {
  3072. that2, ok := that.(Request_EndBlock)
  3073. if ok {
  3074. that1 = &that2
  3075. } else {
  3076. return false
  3077. }
  3078. }
  3079. if that1 == nil {
  3080. return this == nil
  3081. } else if this == nil {
  3082. return false
  3083. }
  3084. if !this.EndBlock.Equal(that1.EndBlock) {
  3085. return false
  3086. }
  3087. return true
  3088. }
  3089. func (this *Request_Commit) Equal(that interface{}) bool {
  3090. if that == nil {
  3091. return this == nil
  3092. }
  3093. that1, ok := that.(*Request_Commit)
  3094. if !ok {
  3095. that2, ok := that.(Request_Commit)
  3096. if ok {
  3097. that1 = &that2
  3098. } else {
  3099. return false
  3100. }
  3101. }
  3102. if that1 == nil {
  3103. return this == nil
  3104. } else if this == nil {
  3105. return false
  3106. }
  3107. if !this.Commit.Equal(that1.Commit) {
  3108. return false
  3109. }
  3110. return true
  3111. }
  3112. func (this *RequestEcho) Equal(that interface{}) bool {
  3113. if that == nil {
  3114. return this == nil
  3115. }
  3116. that1, ok := that.(*RequestEcho)
  3117. if !ok {
  3118. that2, ok := that.(RequestEcho)
  3119. if ok {
  3120. that1 = &that2
  3121. } else {
  3122. return false
  3123. }
  3124. }
  3125. if that1 == nil {
  3126. return this == nil
  3127. } else if this == nil {
  3128. return false
  3129. }
  3130. if this.Message != that1.Message {
  3131. return false
  3132. }
  3133. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3134. return false
  3135. }
  3136. return true
  3137. }
  3138. func (this *RequestFlush) Equal(that interface{}) bool {
  3139. if that == nil {
  3140. return this == nil
  3141. }
  3142. that1, ok := that.(*RequestFlush)
  3143. if !ok {
  3144. that2, ok := that.(RequestFlush)
  3145. if ok {
  3146. that1 = &that2
  3147. } else {
  3148. return false
  3149. }
  3150. }
  3151. if that1 == nil {
  3152. return this == nil
  3153. } else if this == nil {
  3154. return false
  3155. }
  3156. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3157. return false
  3158. }
  3159. return true
  3160. }
  3161. func (this *RequestInfo) Equal(that interface{}) bool {
  3162. if that == nil {
  3163. return this == nil
  3164. }
  3165. that1, ok := that.(*RequestInfo)
  3166. if !ok {
  3167. that2, ok := that.(RequestInfo)
  3168. if ok {
  3169. that1 = &that2
  3170. } else {
  3171. return false
  3172. }
  3173. }
  3174. if that1 == nil {
  3175. return this == nil
  3176. } else if this == nil {
  3177. return false
  3178. }
  3179. if this.Version != that1.Version {
  3180. return false
  3181. }
  3182. if this.BlockVersion != that1.BlockVersion {
  3183. return false
  3184. }
  3185. if this.P2PVersion != that1.P2PVersion {
  3186. return false
  3187. }
  3188. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3189. return false
  3190. }
  3191. return true
  3192. }
  3193. func (this *RequestSetOption) Equal(that interface{}) bool {
  3194. if that == nil {
  3195. return this == nil
  3196. }
  3197. that1, ok := that.(*RequestSetOption)
  3198. if !ok {
  3199. that2, ok := that.(RequestSetOption)
  3200. if ok {
  3201. that1 = &that2
  3202. } else {
  3203. return false
  3204. }
  3205. }
  3206. if that1 == nil {
  3207. return this == nil
  3208. } else if this == nil {
  3209. return false
  3210. }
  3211. if this.Key != that1.Key {
  3212. return false
  3213. }
  3214. if this.Value != that1.Value {
  3215. return false
  3216. }
  3217. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3218. return false
  3219. }
  3220. return true
  3221. }
  3222. func (this *RequestInitChain) Equal(that interface{}) bool {
  3223. if that == nil {
  3224. return this == nil
  3225. }
  3226. that1, ok := that.(*RequestInitChain)
  3227. if !ok {
  3228. that2, ok := that.(RequestInitChain)
  3229. if ok {
  3230. that1 = &that2
  3231. } else {
  3232. return false
  3233. }
  3234. }
  3235. if that1 == nil {
  3236. return this == nil
  3237. } else if this == nil {
  3238. return false
  3239. }
  3240. if !this.Time.Equal(that1.Time) {
  3241. return false
  3242. }
  3243. if this.ChainId != that1.ChainId {
  3244. return false
  3245. }
  3246. if !this.ConsensusParams.Equal(that1.ConsensusParams) {
  3247. return false
  3248. }
  3249. if len(this.Validators) != len(that1.Validators) {
  3250. return false
  3251. }
  3252. for i := range this.Validators {
  3253. if !this.Validators[i].Equal(&that1.Validators[i]) {
  3254. return false
  3255. }
  3256. }
  3257. if !bytes.Equal(this.AppStateBytes, that1.AppStateBytes) {
  3258. return false
  3259. }
  3260. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3261. return false
  3262. }
  3263. return true
  3264. }
  3265. func (this *RequestQuery) Equal(that interface{}) bool {
  3266. if that == nil {
  3267. return this == nil
  3268. }
  3269. that1, ok := that.(*RequestQuery)
  3270. if !ok {
  3271. that2, ok := that.(RequestQuery)
  3272. if ok {
  3273. that1 = &that2
  3274. } else {
  3275. return false
  3276. }
  3277. }
  3278. if that1 == nil {
  3279. return this == nil
  3280. } else if this == nil {
  3281. return false
  3282. }
  3283. if !bytes.Equal(this.Data, that1.Data) {
  3284. return false
  3285. }
  3286. if this.Path != that1.Path {
  3287. return false
  3288. }
  3289. if this.Height != that1.Height {
  3290. return false
  3291. }
  3292. if this.Prove != that1.Prove {
  3293. return false
  3294. }
  3295. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3296. return false
  3297. }
  3298. return true
  3299. }
  3300. func (this *RequestBeginBlock) Equal(that interface{}) bool {
  3301. if that == nil {
  3302. return this == nil
  3303. }
  3304. that1, ok := that.(*RequestBeginBlock)
  3305. if !ok {
  3306. that2, ok := that.(RequestBeginBlock)
  3307. if ok {
  3308. that1 = &that2
  3309. } else {
  3310. return false
  3311. }
  3312. }
  3313. if that1 == nil {
  3314. return this == nil
  3315. } else if this == nil {
  3316. return false
  3317. }
  3318. if !bytes.Equal(this.Hash, that1.Hash) {
  3319. return false
  3320. }
  3321. if !this.Header.Equal(&that1.Header) {
  3322. return false
  3323. }
  3324. if !this.LastCommitInfo.Equal(&that1.LastCommitInfo) {
  3325. return false
  3326. }
  3327. if len(this.ByzantineValidators) != len(that1.ByzantineValidators) {
  3328. return false
  3329. }
  3330. for i := range this.ByzantineValidators {
  3331. if !this.ByzantineValidators[i].Equal(&that1.ByzantineValidators[i]) {
  3332. return false
  3333. }
  3334. }
  3335. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3336. return false
  3337. }
  3338. return true
  3339. }
  3340. func (this *RequestCheckTx) Equal(that interface{}) bool {
  3341. if that == nil {
  3342. return this == nil
  3343. }
  3344. that1, ok := that.(*RequestCheckTx)
  3345. if !ok {
  3346. that2, ok := that.(RequestCheckTx)
  3347. if ok {
  3348. that1 = &that2
  3349. } else {
  3350. return false
  3351. }
  3352. }
  3353. if that1 == nil {
  3354. return this == nil
  3355. } else if this == nil {
  3356. return false
  3357. }
  3358. if !bytes.Equal(this.Tx, that1.Tx) {
  3359. return false
  3360. }
  3361. if this.Type != that1.Type {
  3362. return false
  3363. }
  3364. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3365. return false
  3366. }
  3367. return true
  3368. }
  3369. func (this *RequestDeliverTx) Equal(that interface{}) bool {
  3370. if that == nil {
  3371. return this == nil
  3372. }
  3373. that1, ok := that.(*RequestDeliverTx)
  3374. if !ok {
  3375. that2, ok := that.(RequestDeliverTx)
  3376. if ok {
  3377. that1 = &that2
  3378. } else {
  3379. return false
  3380. }
  3381. }
  3382. if that1 == nil {
  3383. return this == nil
  3384. } else if this == nil {
  3385. return false
  3386. }
  3387. if !bytes.Equal(this.Tx, that1.Tx) {
  3388. return false
  3389. }
  3390. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3391. return false
  3392. }
  3393. return true
  3394. }
  3395. func (this *RequestEndBlock) Equal(that interface{}) bool {
  3396. if that == nil {
  3397. return this == nil
  3398. }
  3399. that1, ok := that.(*RequestEndBlock)
  3400. if !ok {
  3401. that2, ok := that.(RequestEndBlock)
  3402. if ok {
  3403. that1 = &that2
  3404. } else {
  3405. return false
  3406. }
  3407. }
  3408. if that1 == nil {
  3409. return this == nil
  3410. } else if this == nil {
  3411. return false
  3412. }
  3413. if this.Height != that1.Height {
  3414. return false
  3415. }
  3416. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3417. return false
  3418. }
  3419. return true
  3420. }
  3421. func (this *RequestCommit) Equal(that interface{}) bool {
  3422. if that == nil {
  3423. return this == nil
  3424. }
  3425. that1, ok := that.(*RequestCommit)
  3426. if !ok {
  3427. that2, ok := that.(RequestCommit)
  3428. if ok {
  3429. that1 = &that2
  3430. } else {
  3431. return false
  3432. }
  3433. }
  3434. if that1 == nil {
  3435. return this == nil
  3436. } else if this == nil {
  3437. return false
  3438. }
  3439. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3440. return false
  3441. }
  3442. return true
  3443. }
  3444. func (this *Response) Equal(that interface{}) bool {
  3445. if that == nil {
  3446. return this == nil
  3447. }
  3448. that1, ok := that.(*Response)
  3449. if !ok {
  3450. that2, ok := that.(Response)
  3451. if ok {
  3452. that1 = &that2
  3453. } else {
  3454. return false
  3455. }
  3456. }
  3457. if that1 == nil {
  3458. return this == nil
  3459. } else if this == nil {
  3460. return false
  3461. }
  3462. if that1.Value == nil {
  3463. if this.Value != nil {
  3464. return false
  3465. }
  3466. } else if this.Value == nil {
  3467. return false
  3468. } else if !this.Value.Equal(that1.Value) {
  3469. return false
  3470. }
  3471. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3472. return false
  3473. }
  3474. return true
  3475. }
  3476. func (this *Response_Exception) Equal(that interface{}) bool {
  3477. if that == nil {
  3478. return this == nil
  3479. }
  3480. that1, ok := that.(*Response_Exception)
  3481. if !ok {
  3482. that2, ok := that.(Response_Exception)
  3483. if ok {
  3484. that1 = &that2
  3485. } else {
  3486. return false
  3487. }
  3488. }
  3489. if that1 == nil {
  3490. return this == nil
  3491. } else if this == nil {
  3492. return false
  3493. }
  3494. if !this.Exception.Equal(that1.Exception) {
  3495. return false
  3496. }
  3497. return true
  3498. }
  3499. func (this *Response_Echo) Equal(that interface{}) bool {
  3500. if that == nil {
  3501. return this == nil
  3502. }
  3503. that1, ok := that.(*Response_Echo)
  3504. if !ok {
  3505. that2, ok := that.(Response_Echo)
  3506. if ok {
  3507. that1 = &that2
  3508. } else {
  3509. return false
  3510. }
  3511. }
  3512. if that1 == nil {
  3513. return this == nil
  3514. } else if this == nil {
  3515. return false
  3516. }
  3517. if !this.Echo.Equal(that1.Echo) {
  3518. return false
  3519. }
  3520. return true
  3521. }
  3522. func (this *Response_Flush) Equal(that interface{}) bool {
  3523. if that == nil {
  3524. return this == nil
  3525. }
  3526. that1, ok := that.(*Response_Flush)
  3527. if !ok {
  3528. that2, ok := that.(Response_Flush)
  3529. if ok {
  3530. that1 = &that2
  3531. } else {
  3532. return false
  3533. }
  3534. }
  3535. if that1 == nil {
  3536. return this == nil
  3537. } else if this == nil {
  3538. return false
  3539. }
  3540. if !this.Flush.Equal(that1.Flush) {
  3541. return false
  3542. }
  3543. return true
  3544. }
  3545. func (this *Response_Info) Equal(that interface{}) bool {
  3546. if that == nil {
  3547. return this == nil
  3548. }
  3549. that1, ok := that.(*Response_Info)
  3550. if !ok {
  3551. that2, ok := that.(Response_Info)
  3552. if ok {
  3553. that1 = &that2
  3554. } else {
  3555. return false
  3556. }
  3557. }
  3558. if that1 == nil {
  3559. return this == nil
  3560. } else if this == nil {
  3561. return false
  3562. }
  3563. if !this.Info.Equal(that1.Info) {
  3564. return false
  3565. }
  3566. return true
  3567. }
  3568. func (this *Response_SetOption) Equal(that interface{}) bool {
  3569. if that == nil {
  3570. return this == nil
  3571. }
  3572. that1, ok := that.(*Response_SetOption)
  3573. if !ok {
  3574. that2, ok := that.(Response_SetOption)
  3575. if ok {
  3576. that1 = &that2
  3577. } else {
  3578. return false
  3579. }
  3580. }
  3581. if that1 == nil {
  3582. return this == nil
  3583. } else if this == nil {
  3584. return false
  3585. }
  3586. if !this.SetOption.Equal(that1.SetOption) {
  3587. return false
  3588. }
  3589. return true
  3590. }
  3591. func (this *Response_InitChain) Equal(that interface{}) bool {
  3592. if that == nil {
  3593. return this == nil
  3594. }
  3595. that1, ok := that.(*Response_InitChain)
  3596. if !ok {
  3597. that2, ok := that.(Response_InitChain)
  3598. if ok {
  3599. that1 = &that2
  3600. } else {
  3601. return false
  3602. }
  3603. }
  3604. if that1 == nil {
  3605. return this == nil
  3606. } else if this == nil {
  3607. return false
  3608. }
  3609. if !this.InitChain.Equal(that1.InitChain) {
  3610. return false
  3611. }
  3612. return true
  3613. }
  3614. func (this *Response_Query) Equal(that interface{}) bool {
  3615. if that == nil {
  3616. return this == nil
  3617. }
  3618. that1, ok := that.(*Response_Query)
  3619. if !ok {
  3620. that2, ok := that.(Response_Query)
  3621. if ok {
  3622. that1 = &that2
  3623. } else {
  3624. return false
  3625. }
  3626. }
  3627. if that1 == nil {
  3628. return this == nil
  3629. } else if this == nil {
  3630. return false
  3631. }
  3632. if !this.Query.Equal(that1.Query) {
  3633. return false
  3634. }
  3635. return true
  3636. }
  3637. func (this *Response_BeginBlock) Equal(that interface{}) bool {
  3638. if that == nil {
  3639. return this == nil
  3640. }
  3641. that1, ok := that.(*Response_BeginBlock)
  3642. if !ok {
  3643. that2, ok := that.(Response_BeginBlock)
  3644. if ok {
  3645. that1 = &that2
  3646. } else {
  3647. return false
  3648. }
  3649. }
  3650. if that1 == nil {
  3651. return this == nil
  3652. } else if this == nil {
  3653. return false
  3654. }
  3655. if !this.BeginBlock.Equal(that1.BeginBlock) {
  3656. return false
  3657. }
  3658. return true
  3659. }
  3660. func (this *Response_CheckTx) Equal(that interface{}) bool {
  3661. if that == nil {
  3662. return this == nil
  3663. }
  3664. that1, ok := that.(*Response_CheckTx)
  3665. if !ok {
  3666. that2, ok := that.(Response_CheckTx)
  3667. if ok {
  3668. that1 = &that2
  3669. } else {
  3670. return false
  3671. }
  3672. }
  3673. if that1 == nil {
  3674. return this == nil
  3675. } else if this == nil {
  3676. return false
  3677. }
  3678. if !this.CheckTx.Equal(that1.CheckTx) {
  3679. return false
  3680. }
  3681. return true
  3682. }
  3683. func (this *Response_DeliverTx) Equal(that interface{}) bool {
  3684. if that == nil {
  3685. return this == nil
  3686. }
  3687. that1, ok := that.(*Response_DeliverTx)
  3688. if !ok {
  3689. that2, ok := that.(Response_DeliverTx)
  3690. if ok {
  3691. that1 = &that2
  3692. } else {
  3693. return false
  3694. }
  3695. }
  3696. if that1 == nil {
  3697. return this == nil
  3698. } else if this == nil {
  3699. return false
  3700. }
  3701. if !this.DeliverTx.Equal(that1.DeliverTx) {
  3702. return false
  3703. }
  3704. return true
  3705. }
  3706. func (this *Response_EndBlock) Equal(that interface{}) bool {
  3707. if that == nil {
  3708. return this == nil
  3709. }
  3710. that1, ok := that.(*Response_EndBlock)
  3711. if !ok {
  3712. that2, ok := that.(Response_EndBlock)
  3713. if ok {
  3714. that1 = &that2
  3715. } else {
  3716. return false
  3717. }
  3718. }
  3719. if that1 == nil {
  3720. return this == nil
  3721. } else if this == nil {
  3722. return false
  3723. }
  3724. if !this.EndBlock.Equal(that1.EndBlock) {
  3725. return false
  3726. }
  3727. return true
  3728. }
  3729. func (this *Response_Commit) Equal(that interface{}) bool {
  3730. if that == nil {
  3731. return this == nil
  3732. }
  3733. that1, ok := that.(*Response_Commit)
  3734. if !ok {
  3735. that2, ok := that.(Response_Commit)
  3736. if ok {
  3737. that1 = &that2
  3738. } else {
  3739. return false
  3740. }
  3741. }
  3742. if that1 == nil {
  3743. return this == nil
  3744. } else if this == nil {
  3745. return false
  3746. }
  3747. if !this.Commit.Equal(that1.Commit) {
  3748. return false
  3749. }
  3750. return true
  3751. }
  3752. func (this *ResponseException) Equal(that interface{}) bool {
  3753. if that == nil {
  3754. return this == nil
  3755. }
  3756. that1, ok := that.(*ResponseException)
  3757. if !ok {
  3758. that2, ok := that.(ResponseException)
  3759. if ok {
  3760. that1 = &that2
  3761. } else {
  3762. return false
  3763. }
  3764. }
  3765. if that1 == nil {
  3766. return this == nil
  3767. } else if this == nil {
  3768. return false
  3769. }
  3770. if this.Error != that1.Error {
  3771. return false
  3772. }
  3773. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3774. return false
  3775. }
  3776. return true
  3777. }
  3778. func (this *ResponseEcho) Equal(that interface{}) bool {
  3779. if that == nil {
  3780. return this == nil
  3781. }
  3782. that1, ok := that.(*ResponseEcho)
  3783. if !ok {
  3784. that2, ok := that.(ResponseEcho)
  3785. if ok {
  3786. that1 = &that2
  3787. } else {
  3788. return false
  3789. }
  3790. }
  3791. if that1 == nil {
  3792. return this == nil
  3793. } else if this == nil {
  3794. return false
  3795. }
  3796. if this.Message != that1.Message {
  3797. return false
  3798. }
  3799. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3800. return false
  3801. }
  3802. return true
  3803. }
  3804. func (this *ResponseFlush) Equal(that interface{}) bool {
  3805. if that == nil {
  3806. return this == nil
  3807. }
  3808. that1, ok := that.(*ResponseFlush)
  3809. if !ok {
  3810. that2, ok := that.(ResponseFlush)
  3811. if ok {
  3812. that1 = &that2
  3813. } else {
  3814. return false
  3815. }
  3816. }
  3817. if that1 == nil {
  3818. return this == nil
  3819. } else if this == nil {
  3820. return false
  3821. }
  3822. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3823. return false
  3824. }
  3825. return true
  3826. }
  3827. func (this *ResponseInfo) Equal(that interface{}) bool {
  3828. if that == nil {
  3829. return this == nil
  3830. }
  3831. that1, ok := that.(*ResponseInfo)
  3832. if !ok {
  3833. that2, ok := that.(ResponseInfo)
  3834. if ok {
  3835. that1 = &that2
  3836. } else {
  3837. return false
  3838. }
  3839. }
  3840. if that1 == nil {
  3841. return this == nil
  3842. } else if this == nil {
  3843. return false
  3844. }
  3845. if this.Data != that1.Data {
  3846. return false
  3847. }
  3848. if this.Version != that1.Version {
  3849. return false
  3850. }
  3851. if this.AppVersion != that1.AppVersion {
  3852. return false
  3853. }
  3854. if this.LastBlockHeight != that1.LastBlockHeight {
  3855. return false
  3856. }
  3857. if !bytes.Equal(this.LastBlockAppHash, that1.LastBlockAppHash) {
  3858. return false
  3859. }
  3860. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3861. return false
  3862. }
  3863. return true
  3864. }
  3865. func (this *ResponseSetOption) Equal(that interface{}) bool {
  3866. if that == nil {
  3867. return this == nil
  3868. }
  3869. that1, ok := that.(*ResponseSetOption)
  3870. if !ok {
  3871. that2, ok := that.(ResponseSetOption)
  3872. if ok {
  3873. that1 = &that2
  3874. } else {
  3875. return false
  3876. }
  3877. }
  3878. if that1 == nil {
  3879. return this == nil
  3880. } else if this == nil {
  3881. return false
  3882. }
  3883. if this.Code != that1.Code {
  3884. return false
  3885. }
  3886. if this.Log != that1.Log {
  3887. return false
  3888. }
  3889. if this.Info != that1.Info {
  3890. return false
  3891. }
  3892. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3893. return false
  3894. }
  3895. return true
  3896. }
  3897. func (this *ResponseInitChain) Equal(that interface{}) bool {
  3898. if that == nil {
  3899. return this == nil
  3900. }
  3901. that1, ok := that.(*ResponseInitChain)
  3902. if !ok {
  3903. that2, ok := that.(ResponseInitChain)
  3904. if ok {
  3905. that1 = &that2
  3906. } else {
  3907. return false
  3908. }
  3909. }
  3910. if that1 == nil {
  3911. return this == nil
  3912. } else if this == nil {
  3913. return false
  3914. }
  3915. if !this.ConsensusParams.Equal(that1.ConsensusParams) {
  3916. return false
  3917. }
  3918. if len(this.Validators) != len(that1.Validators) {
  3919. return false
  3920. }
  3921. for i := range this.Validators {
  3922. if !this.Validators[i].Equal(&that1.Validators[i]) {
  3923. return false
  3924. }
  3925. }
  3926. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3927. return false
  3928. }
  3929. return true
  3930. }
  3931. func (this *ResponseQuery) Equal(that interface{}) bool {
  3932. if that == nil {
  3933. return this == nil
  3934. }
  3935. that1, ok := that.(*ResponseQuery)
  3936. if !ok {
  3937. that2, ok := that.(ResponseQuery)
  3938. if ok {
  3939. that1 = &that2
  3940. } else {
  3941. return false
  3942. }
  3943. }
  3944. if that1 == nil {
  3945. return this == nil
  3946. } else if this == nil {
  3947. return false
  3948. }
  3949. if this.Code != that1.Code {
  3950. return false
  3951. }
  3952. if this.Log != that1.Log {
  3953. return false
  3954. }
  3955. if this.Info != that1.Info {
  3956. return false
  3957. }
  3958. if this.Index != that1.Index {
  3959. return false
  3960. }
  3961. if !bytes.Equal(this.Key, that1.Key) {
  3962. return false
  3963. }
  3964. if !bytes.Equal(this.Value, that1.Value) {
  3965. return false
  3966. }
  3967. if !this.Proof.Equal(that1.Proof) {
  3968. return false
  3969. }
  3970. if this.Height != that1.Height {
  3971. return false
  3972. }
  3973. if this.Codespace != that1.Codespace {
  3974. return false
  3975. }
  3976. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3977. return false
  3978. }
  3979. return true
  3980. }
  3981. func (this *ResponseBeginBlock) Equal(that interface{}) bool {
  3982. if that == nil {
  3983. return this == nil
  3984. }
  3985. that1, ok := that.(*ResponseBeginBlock)
  3986. if !ok {
  3987. that2, ok := that.(ResponseBeginBlock)
  3988. if ok {
  3989. that1 = &that2
  3990. } else {
  3991. return false
  3992. }
  3993. }
  3994. if that1 == nil {
  3995. return this == nil
  3996. } else if this == nil {
  3997. return false
  3998. }
  3999. if len(this.Events) != len(that1.Events) {
  4000. return false
  4001. }
  4002. for i := range this.Events {
  4003. if !this.Events[i].Equal(&that1.Events[i]) {
  4004. return false
  4005. }
  4006. }
  4007. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4008. return false
  4009. }
  4010. return true
  4011. }
  4012. func (this *ResponseCheckTx) Equal(that interface{}) bool {
  4013. if that == nil {
  4014. return this == nil
  4015. }
  4016. that1, ok := that.(*ResponseCheckTx)
  4017. if !ok {
  4018. that2, ok := that.(ResponseCheckTx)
  4019. if ok {
  4020. that1 = &that2
  4021. } else {
  4022. return false
  4023. }
  4024. }
  4025. if that1 == nil {
  4026. return this == nil
  4027. } else if this == nil {
  4028. return false
  4029. }
  4030. if this.Code != that1.Code {
  4031. return false
  4032. }
  4033. if !bytes.Equal(this.Data, that1.Data) {
  4034. return false
  4035. }
  4036. if this.Log != that1.Log {
  4037. return false
  4038. }
  4039. if this.Info != that1.Info {
  4040. return false
  4041. }
  4042. if this.GasWanted != that1.GasWanted {
  4043. return false
  4044. }
  4045. if this.GasUsed != that1.GasUsed {
  4046. return false
  4047. }
  4048. if len(this.Events) != len(that1.Events) {
  4049. return false
  4050. }
  4051. for i := range this.Events {
  4052. if !this.Events[i].Equal(&that1.Events[i]) {
  4053. return false
  4054. }
  4055. }
  4056. if this.Codespace != that1.Codespace {
  4057. return false
  4058. }
  4059. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4060. return false
  4061. }
  4062. return true
  4063. }
  4064. func (this *ResponseDeliverTx) Equal(that interface{}) bool {
  4065. if that == nil {
  4066. return this == nil
  4067. }
  4068. that1, ok := that.(*ResponseDeliverTx)
  4069. if !ok {
  4070. that2, ok := that.(ResponseDeliverTx)
  4071. if ok {
  4072. that1 = &that2
  4073. } else {
  4074. return false
  4075. }
  4076. }
  4077. if that1 == nil {
  4078. return this == nil
  4079. } else if this == nil {
  4080. return false
  4081. }
  4082. if this.Code != that1.Code {
  4083. return false
  4084. }
  4085. if !bytes.Equal(this.Data, that1.Data) {
  4086. return false
  4087. }
  4088. if this.Log != that1.Log {
  4089. return false
  4090. }
  4091. if this.Info != that1.Info {
  4092. return false
  4093. }
  4094. if this.GasWanted != that1.GasWanted {
  4095. return false
  4096. }
  4097. if this.GasUsed != that1.GasUsed {
  4098. return false
  4099. }
  4100. if len(this.Events) != len(that1.Events) {
  4101. return false
  4102. }
  4103. for i := range this.Events {
  4104. if !this.Events[i].Equal(&that1.Events[i]) {
  4105. return false
  4106. }
  4107. }
  4108. if this.Codespace != that1.Codespace {
  4109. return false
  4110. }
  4111. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4112. return false
  4113. }
  4114. return true
  4115. }
  4116. func (this *ResponseEndBlock) Equal(that interface{}) bool {
  4117. if that == nil {
  4118. return this == nil
  4119. }
  4120. that1, ok := that.(*ResponseEndBlock)
  4121. if !ok {
  4122. that2, ok := that.(ResponseEndBlock)
  4123. if ok {
  4124. that1 = &that2
  4125. } else {
  4126. return false
  4127. }
  4128. }
  4129. if that1 == nil {
  4130. return this == nil
  4131. } else if this == nil {
  4132. return false
  4133. }
  4134. if len(this.ValidatorUpdates) != len(that1.ValidatorUpdates) {
  4135. return false
  4136. }
  4137. for i := range this.ValidatorUpdates {
  4138. if !this.ValidatorUpdates[i].Equal(&that1.ValidatorUpdates[i]) {
  4139. return false
  4140. }
  4141. }
  4142. if !this.ConsensusParamUpdates.Equal(that1.ConsensusParamUpdates) {
  4143. return false
  4144. }
  4145. if len(this.Events) != len(that1.Events) {
  4146. return false
  4147. }
  4148. for i := range this.Events {
  4149. if !this.Events[i].Equal(&that1.Events[i]) {
  4150. return false
  4151. }
  4152. }
  4153. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4154. return false
  4155. }
  4156. return true
  4157. }
  4158. func (this *ResponseCommit) Equal(that interface{}) bool {
  4159. if that == nil {
  4160. return this == nil
  4161. }
  4162. that1, ok := that.(*ResponseCommit)
  4163. if !ok {
  4164. that2, ok := that.(ResponseCommit)
  4165. if ok {
  4166. that1 = &that2
  4167. } else {
  4168. return false
  4169. }
  4170. }
  4171. if that1 == nil {
  4172. return this == nil
  4173. } else if this == nil {
  4174. return false
  4175. }
  4176. if !bytes.Equal(this.Data, that1.Data) {
  4177. return false
  4178. }
  4179. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4180. return false
  4181. }
  4182. return true
  4183. }
  4184. func (this *ConsensusParams) Equal(that interface{}) bool {
  4185. if that == nil {
  4186. return this == nil
  4187. }
  4188. that1, ok := that.(*ConsensusParams)
  4189. if !ok {
  4190. that2, ok := that.(ConsensusParams)
  4191. if ok {
  4192. that1 = &that2
  4193. } else {
  4194. return false
  4195. }
  4196. }
  4197. if that1 == nil {
  4198. return this == nil
  4199. } else if this == nil {
  4200. return false
  4201. }
  4202. if !this.Block.Equal(that1.Block) {
  4203. return false
  4204. }
  4205. if !this.Evidence.Equal(that1.Evidence) {
  4206. return false
  4207. }
  4208. if !this.Validator.Equal(that1.Validator) {
  4209. return false
  4210. }
  4211. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4212. return false
  4213. }
  4214. return true
  4215. }
  4216. func (this *BlockParams) Equal(that interface{}) bool {
  4217. if that == nil {
  4218. return this == nil
  4219. }
  4220. that1, ok := that.(*BlockParams)
  4221. if !ok {
  4222. that2, ok := that.(BlockParams)
  4223. if ok {
  4224. that1 = &that2
  4225. } else {
  4226. return false
  4227. }
  4228. }
  4229. if that1 == nil {
  4230. return this == nil
  4231. } else if this == nil {
  4232. return false
  4233. }
  4234. if this.MaxBytes != that1.MaxBytes {
  4235. return false
  4236. }
  4237. if this.MaxGas != that1.MaxGas {
  4238. return false
  4239. }
  4240. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4241. return false
  4242. }
  4243. return true
  4244. }
  4245. func (this *EvidenceParams) Equal(that interface{}) bool {
  4246. if that == nil {
  4247. return this == nil
  4248. }
  4249. that1, ok := that.(*EvidenceParams)
  4250. if !ok {
  4251. that2, ok := that.(EvidenceParams)
  4252. if ok {
  4253. that1 = &that2
  4254. } else {
  4255. return false
  4256. }
  4257. }
  4258. if that1 == nil {
  4259. return this == nil
  4260. } else if this == nil {
  4261. return false
  4262. }
  4263. if this.MaxAge != that1.MaxAge {
  4264. return false
  4265. }
  4266. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4267. return false
  4268. }
  4269. return true
  4270. }
  4271. func (this *ValidatorParams) Equal(that interface{}) bool {
  4272. if that == nil {
  4273. return this == nil
  4274. }
  4275. that1, ok := that.(*ValidatorParams)
  4276. if !ok {
  4277. that2, ok := that.(ValidatorParams)
  4278. if ok {
  4279. that1 = &that2
  4280. } else {
  4281. return false
  4282. }
  4283. }
  4284. if that1 == nil {
  4285. return this == nil
  4286. } else if this == nil {
  4287. return false
  4288. }
  4289. if len(this.PubKeyTypes) != len(that1.PubKeyTypes) {
  4290. return false
  4291. }
  4292. for i := range this.PubKeyTypes {
  4293. if this.PubKeyTypes[i] != that1.PubKeyTypes[i] {
  4294. return false
  4295. }
  4296. }
  4297. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4298. return false
  4299. }
  4300. return true
  4301. }
  4302. func (this *LastCommitInfo) Equal(that interface{}) bool {
  4303. if that == nil {
  4304. return this == nil
  4305. }
  4306. that1, ok := that.(*LastCommitInfo)
  4307. if !ok {
  4308. that2, ok := that.(LastCommitInfo)
  4309. if ok {
  4310. that1 = &that2
  4311. } else {
  4312. return false
  4313. }
  4314. }
  4315. if that1 == nil {
  4316. return this == nil
  4317. } else if this == nil {
  4318. return false
  4319. }
  4320. if this.Round != that1.Round {
  4321. return false
  4322. }
  4323. if len(this.Votes) != len(that1.Votes) {
  4324. return false
  4325. }
  4326. for i := range this.Votes {
  4327. if !this.Votes[i].Equal(&that1.Votes[i]) {
  4328. return false
  4329. }
  4330. }
  4331. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4332. return false
  4333. }
  4334. return true
  4335. }
  4336. func (this *Event) Equal(that interface{}) bool {
  4337. if that == nil {
  4338. return this == nil
  4339. }
  4340. that1, ok := that.(*Event)
  4341. if !ok {
  4342. that2, ok := that.(Event)
  4343. if ok {
  4344. that1 = &that2
  4345. } else {
  4346. return false
  4347. }
  4348. }
  4349. if that1 == nil {
  4350. return this == nil
  4351. } else if this == nil {
  4352. return false
  4353. }
  4354. if this.Type != that1.Type {
  4355. return false
  4356. }
  4357. if len(this.Attributes) != len(that1.Attributes) {
  4358. return false
  4359. }
  4360. for i := range this.Attributes {
  4361. if !this.Attributes[i].Equal(&that1.Attributes[i]) {
  4362. return false
  4363. }
  4364. }
  4365. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4366. return false
  4367. }
  4368. return true
  4369. }
  4370. func (this *Header) Equal(that interface{}) bool {
  4371. if that == nil {
  4372. return this == nil
  4373. }
  4374. that1, ok := that.(*Header)
  4375. if !ok {
  4376. that2, ok := that.(Header)
  4377. if ok {
  4378. that1 = &that2
  4379. } else {
  4380. return false
  4381. }
  4382. }
  4383. if that1 == nil {
  4384. return this == nil
  4385. } else if this == nil {
  4386. return false
  4387. }
  4388. if !this.Version.Equal(&that1.Version) {
  4389. return false
  4390. }
  4391. if this.ChainID != that1.ChainID {
  4392. return false
  4393. }
  4394. if this.Height != that1.Height {
  4395. return false
  4396. }
  4397. if !this.Time.Equal(that1.Time) {
  4398. return false
  4399. }
  4400. if !this.LastBlockId.Equal(&that1.LastBlockId) {
  4401. return false
  4402. }
  4403. if !bytes.Equal(this.LastCommitHash, that1.LastCommitHash) {
  4404. return false
  4405. }
  4406. if !bytes.Equal(this.DataHash, that1.DataHash) {
  4407. return false
  4408. }
  4409. if !bytes.Equal(this.ValidatorsHash, that1.ValidatorsHash) {
  4410. return false
  4411. }
  4412. if !bytes.Equal(this.NextValidatorsHash, that1.NextValidatorsHash) {
  4413. return false
  4414. }
  4415. if !bytes.Equal(this.ConsensusHash, that1.ConsensusHash) {
  4416. return false
  4417. }
  4418. if !bytes.Equal(this.AppHash, that1.AppHash) {
  4419. return false
  4420. }
  4421. if !bytes.Equal(this.LastResultsHash, that1.LastResultsHash) {
  4422. return false
  4423. }
  4424. if !bytes.Equal(this.EvidenceHash, that1.EvidenceHash) {
  4425. return false
  4426. }
  4427. if !bytes.Equal(this.ProposerAddress, that1.ProposerAddress) {
  4428. return false
  4429. }
  4430. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4431. return false
  4432. }
  4433. return true
  4434. }
  4435. func (this *Version) Equal(that interface{}) bool {
  4436. if that == nil {
  4437. return this == nil
  4438. }
  4439. that1, ok := that.(*Version)
  4440. if !ok {
  4441. that2, ok := that.(Version)
  4442. if ok {
  4443. that1 = &that2
  4444. } else {
  4445. return false
  4446. }
  4447. }
  4448. if that1 == nil {
  4449. return this == nil
  4450. } else if this == nil {
  4451. return false
  4452. }
  4453. if this.Block != that1.Block {
  4454. return false
  4455. }
  4456. if this.App != that1.App {
  4457. return false
  4458. }
  4459. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4460. return false
  4461. }
  4462. return true
  4463. }
  4464. func (this *BlockID) Equal(that interface{}) bool {
  4465. if that == nil {
  4466. return this == nil
  4467. }
  4468. that1, ok := that.(*BlockID)
  4469. if !ok {
  4470. that2, ok := that.(BlockID)
  4471. if ok {
  4472. that1 = &that2
  4473. } else {
  4474. return false
  4475. }
  4476. }
  4477. if that1 == nil {
  4478. return this == nil
  4479. } else if this == nil {
  4480. return false
  4481. }
  4482. if !bytes.Equal(this.Hash, that1.Hash) {
  4483. return false
  4484. }
  4485. if !this.PartsHeader.Equal(&that1.PartsHeader) {
  4486. return false
  4487. }
  4488. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4489. return false
  4490. }
  4491. return true
  4492. }
  4493. func (this *PartSetHeader) Equal(that interface{}) bool {
  4494. if that == nil {
  4495. return this == nil
  4496. }
  4497. that1, ok := that.(*PartSetHeader)
  4498. if !ok {
  4499. that2, ok := that.(PartSetHeader)
  4500. if ok {
  4501. that1 = &that2
  4502. } else {
  4503. return false
  4504. }
  4505. }
  4506. if that1 == nil {
  4507. return this == nil
  4508. } else if this == nil {
  4509. return false
  4510. }
  4511. if this.Total != that1.Total {
  4512. return false
  4513. }
  4514. if !bytes.Equal(this.Hash, that1.Hash) {
  4515. return false
  4516. }
  4517. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4518. return false
  4519. }
  4520. return true
  4521. }
  4522. func (this *Validator) Equal(that interface{}) bool {
  4523. if that == nil {
  4524. return this == nil
  4525. }
  4526. that1, ok := that.(*Validator)
  4527. if !ok {
  4528. that2, ok := that.(Validator)
  4529. if ok {
  4530. that1 = &that2
  4531. } else {
  4532. return false
  4533. }
  4534. }
  4535. if that1 == nil {
  4536. return this == nil
  4537. } else if this == nil {
  4538. return false
  4539. }
  4540. if !bytes.Equal(this.Address, that1.Address) {
  4541. return false
  4542. }
  4543. if this.Power != that1.Power {
  4544. return false
  4545. }
  4546. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4547. return false
  4548. }
  4549. return true
  4550. }
  4551. func (this *ValidatorUpdate) Equal(that interface{}) bool {
  4552. if that == nil {
  4553. return this == nil
  4554. }
  4555. that1, ok := that.(*ValidatorUpdate)
  4556. if !ok {
  4557. that2, ok := that.(ValidatorUpdate)
  4558. if ok {
  4559. that1 = &that2
  4560. } else {
  4561. return false
  4562. }
  4563. }
  4564. if that1 == nil {
  4565. return this == nil
  4566. } else if this == nil {
  4567. return false
  4568. }
  4569. if !this.PubKey.Equal(&that1.PubKey) {
  4570. return false
  4571. }
  4572. if this.Power != that1.Power {
  4573. return false
  4574. }
  4575. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4576. return false
  4577. }
  4578. return true
  4579. }
  4580. func (this *VoteInfo) Equal(that interface{}) bool {
  4581. if that == nil {
  4582. return this == nil
  4583. }
  4584. that1, ok := that.(*VoteInfo)
  4585. if !ok {
  4586. that2, ok := that.(VoteInfo)
  4587. if ok {
  4588. that1 = &that2
  4589. } else {
  4590. return false
  4591. }
  4592. }
  4593. if that1 == nil {
  4594. return this == nil
  4595. } else if this == nil {
  4596. return false
  4597. }
  4598. if !this.Validator.Equal(&that1.Validator) {
  4599. return false
  4600. }
  4601. if this.SignedLastBlock != that1.SignedLastBlock {
  4602. return false
  4603. }
  4604. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4605. return false
  4606. }
  4607. return true
  4608. }
  4609. func (this *PubKey) Equal(that interface{}) bool {
  4610. if that == nil {
  4611. return this == nil
  4612. }
  4613. that1, ok := that.(*PubKey)
  4614. if !ok {
  4615. that2, ok := that.(PubKey)
  4616. if ok {
  4617. that1 = &that2
  4618. } else {
  4619. return false
  4620. }
  4621. }
  4622. if that1 == nil {
  4623. return this == nil
  4624. } else if this == nil {
  4625. return false
  4626. }
  4627. if this.Type != that1.Type {
  4628. return false
  4629. }
  4630. if !bytes.Equal(this.Data, that1.Data) {
  4631. return false
  4632. }
  4633. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4634. return false
  4635. }
  4636. return true
  4637. }
  4638. func (this *Evidence) Equal(that interface{}) bool {
  4639. if that == nil {
  4640. return this == nil
  4641. }
  4642. that1, ok := that.(*Evidence)
  4643. if !ok {
  4644. that2, ok := that.(Evidence)
  4645. if ok {
  4646. that1 = &that2
  4647. } else {
  4648. return false
  4649. }
  4650. }
  4651. if that1 == nil {
  4652. return this == nil
  4653. } else if this == nil {
  4654. return false
  4655. }
  4656. if this.Type != that1.Type {
  4657. return false
  4658. }
  4659. if !this.Validator.Equal(&that1.Validator) {
  4660. return false
  4661. }
  4662. if this.Height != that1.Height {
  4663. return false
  4664. }
  4665. if !this.Time.Equal(that1.Time) {
  4666. return false
  4667. }
  4668. if this.TotalVotingPower != that1.TotalVotingPower {
  4669. return false
  4670. }
  4671. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4672. return false
  4673. }
  4674. return true
  4675. }
  4676. // Reference imports to suppress errors if they are not otherwise used.
  4677. var _ context.Context
  4678. var _ grpc.ClientConn
  4679. // This is a compile-time assertion to ensure that this generated file
  4680. // is compatible with the grpc package it is being compiled against.
  4681. const _ = grpc.SupportPackageIsVersion4
  4682. // ABCIApplicationClient is the client API for ABCIApplication service.
  4683. //
  4684. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
  4685. type ABCIApplicationClient interface {
  4686. Echo(ctx context.Context, in *RequestEcho, opts ...grpc.CallOption) (*ResponseEcho, error)
  4687. Flush(ctx context.Context, in *RequestFlush, opts ...grpc.CallOption) (*ResponseFlush, error)
  4688. Info(ctx context.Context, in *RequestInfo, opts ...grpc.CallOption) (*ResponseInfo, error)
  4689. SetOption(ctx context.Context, in *RequestSetOption, opts ...grpc.CallOption) (*ResponseSetOption, error)
  4690. DeliverTx(ctx context.Context, in *RequestDeliverTx, opts ...grpc.CallOption) (*ResponseDeliverTx, error)
  4691. CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error)
  4692. Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error)
  4693. Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error)
  4694. InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error)
  4695. BeginBlock(ctx context.Context, in *RequestBeginBlock, opts ...grpc.CallOption) (*ResponseBeginBlock, error)
  4696. EndBlock(ctx context.Context, in *RequestEndBlock, opts ...grpc.CallOption) (*ResponseEndBlock, error)
  4697. }
  4698. type aBCIApplicationClient struct {
  4699. cc *grpc.ClientConn
  4700. }
  4701. func NewABCIApplicationClient(cc *grpc.ClientConn) ABCIApplicationClient {
  4702. return &aBCIApplicationClient{cc}
  4703. }
  4704. func (c *aBCIApplicationClient) Echo(ctx context.Context, in *RequestEcho, opts ...grpc.CallOption) (*ResponseEcho, error) {
  4705. out := new(ResponseEcho)
  4706. err := c.cc.Invoke(ctx, "/tendermint.abci.types.ABCIApplication/Echo", in, out, opts...)
  4707. if err != nil {
  4708. return nil, err
  4709. }
  4710. return out, nil
  4711. }
  4712. func (c *aBCIApplicationClient) Flush(ctx context.Context, in *RequestFlush, opts ...grpc.CallOption) (*ResponseFlush, error) {
  4713. out := new(ResponseFlush)
  4714. err := c.cc.Invoke(ctx, "/tendermint.abci.types.ABCIApplication/Flush", in, out, opts...)
  4715. if err != nil {
  4716. return nil, err
  4717. }
  4718. return out, nil
  4719. }
  4720. func (c *aBCIApplicationClient) Info(ctx context.Context, in *RequestInfo, opts ...grpc.CallOption) (*ResponseInfo, error) {
  4721. out := new(ResponseInfo)
  4722. err := c.cc.Invoke(ctx, "/tendermint.abci.types.ABCIApplication/Info", in, out, opts...)
  4723. if err != nil {
  4724. return nil, err
  4725. }
  4726. return out, nil
  4727. }
  4728. func (c *aBCIApplicationClient) SetOption(ctx context.Context, in *RequestSetOption, opts ...grpc.CallOption) (*ResponseSetOption, error) {
  4729. out := new(ResponseSetOption)
  4730. err := c.cc.Invoke(ctx, "/tendermint.abci.types.ABCIApplication/SetOption", in, out, opts...)
  4731. if err != nil {
  4732. return nil, err
  4733. }
  4734. return out, nil
  4735. }
  4736. func (c *aBCIApplicationClient) DeliverTx(ctx context.Context, in *RequestDeliverTx, opts ...grpc.CallOption) (*ResponseDeliverTx, error) {
  4737. out := new(ResponseDeliverTx)
  4738. err := c.cc.Invoke(ctx, "/tendermint.abci.types.ABCIApplication/DeliverTx", in, out, opts...)
  4739. if err != nil {
  4740. return nil, err
  4741. }
  4742. return out, nil
  4743. }
  4744. func (c *aBCIApplicationClient) CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error) {
  4745. out := new(ResponseCheckTx)
  4746. err := c.cc.Invoke(ctx, "/tendermint.abci.types.ABCIApplication/CheckTx", in, out, opts...)
  4747. if err != nil {
  4748. return nil, err
  4749. }
  4750. return out, nil
  4751. }
  4752. func (c *aBCIApplicationClient) Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error) {
  4753. out := new(ResponseQuery)
  4754. err := c.cc.Invoke(ctx, "/tendermint.abci.types.ABCIApplication/Query", in, out, opts...)
  4755. if err != nil {
  4756. return nil, err
  4757. }
  4758. return out, nil
  4759. }
  4760. func (c *aBCIApplicationClient) Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error) {
  4761. out := new(ResponseCommit)
  4762. err := c.cc.Invoke(ctx, "/tendermint.abci.types.ABCIApplication/Commit", in, out, opts...)
  4763. if err != nil {
  4764. return nil, err
  4765. }
  4766. return out, nil
  4767. }
  4768. func (c *aBCIApplicationClient) InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error) {
  4769. out := new(ResponseInitChain)
  4770. err := c.cc.Invoke(ctx, "/tendermint.abci.types.ABCIApplication/InitChain", in, out, opts...)
  4771. if err != nil {
  4772. return nil, err
  4773. }
  4774. return out, nil
  4775. }
  4776. func (c *aBCIApplicationClient) BeginBlock(ctx context.Context, in *RequestBeginBlock, opts ...grpc.CallOption) (*ResponseBeginBlock, error) {
  4777. out := new(ResponseBeginBlock)
  4778. err := c.cc.Invoke(ctx, "/tendermint.abci.types.ABCIApplication/BeginBlock", in, out, opts...)
  4779. if err != nil {
  4780. return nil, err
  4781. }
  4782. return out, nil
  4783. }
  4784. func (c *aBCIApplicationClient) EndBlock(ctx context.Context, in *RequestEndBlock, opts ...grpc.CallOption) (*ResponseEndBlock, error) {
  4785. out := new(ResponseEndBlock)
  4786. err := c.cc.Invoke(ctx, "/tendermint.abci.types.ABCIApplication/EndBlock", in, out, opts...)
  4787. if err != nil {
  4788. return nil, err
  4789. }
  4790. return out, nil
  4791. }
  4792. // ABCIApplicationServer is the server API for ABCIApplication service.
  4793. type ABCIApplicationServer interface {
  4794. Echo(context.Context, *RequestEcho) (*ResponseEcho, error)
  4795. Flush(context.Context, *RequestFlush) (*ResponseFlush, error)
  4796. Info(context.Context, *RequestInfo) (*ResponseInfo, error)
  4797. SetOption(context.Context, *RequestSetOption) (*ResponseSetOption, error)
  4798. DeliverTx(context.Context, *RequestDeliverTx) (*ResponseDeliverTx, error)
  4799. CheckTx(context.Context, *RequestCheckTx) (*ResponseCheckTx, error)
  4800. Query(context.Context, *RequestQuery) (*ResponseQuery, error)
  4801. Commit(context.Context, *RequestCommit) (*ResponseCommit, error)
  4802. InitChain(context.Context, *RequestInitChain) (*ResponseInitChain, error)
  4803. BeginBlock(context.Context, *RequestBeginBlock) (*ResponseBeginBlock, error)
  4804. EndBlock(context.Context, *RequestEndBlock) (*ResponseEndBlock, error)
  4805. }
  4806. // UnimplementedABCIApplicationServer can be embedded to have forward compatible implementations.
  4807. type UnimplementedABCIApplicationServer struct {
  4808. }
  4809. func (*UnimplementedABCIApplicationServer) Echo(ctx context.Context, req *RequestEcho) (*ResponseEcho, error) {
  4810. return nil, status.Errorf(codes.Unimplemented, "method Echo not implemented")
  4811. }
  4812. func (*UnimplementedABCIApplicationServer) Flush(ctx context.Context, req *RequestFlush) (*ResponseFlush, error) {
  4813. return nil, status.Errorf(codes.Unimplemented, "method Flush not implemented")
  4814. }
  4815. func (*UnimplementedABCIApplicationServer) Info(ctx context.Context, req *RequestInfo) (*ResponseInfo, error) {
  4816. return nil, status.Errorf(codes.Unimplemented, "method Info not implemented")
  4817. }
  4818. func (*UnimplementedABCIApplicationServer) SetOption(ctx context.Context, req *RequestSetOption) (*ResponseSetOption, error) {
  4819. return nil, status.Errorf(codes.Unimplemented, "method SetOption not implemented")
  4820. }
  4821. func (*UnimplementedABCIApplicationServer) DeliverTx(ctx context.Context, req *RequestDeliverTx) (*ResponseDeliverTx, error) {
  4822. return nil, status.Errorf(codes.Unimplemented, "method DeliverTx not implemented")
  4823. }
  4824. func (*UnimplementedABCIApplicationServer) CheckTx(ctx context.Context, req *RequestCheckTx) (*ResponseCheckTx, error) {
  4825. return nil, status.Errorf(codes.Unimplemented, "method CheckTx not implemented")
  4826. }
  4827. func (*UnimplementedABCIApplicationServer) Query(ctx context.Context, req *RequestQuery) (*ResponseQuery, error) {
  4828. return nil, status.Errorf(codes.Unimplemented, "method Query not implemented")
  4829. }
  4830. func (*UnimplementedABCIApplicationServer) Commit(ctx context.Context, req *RequestCommit) (*ResponseCommit, error) {
  4831. return nil, status.Errorf(codes.Unimplemented, "method Commit not implemented")
  4832. }
  4833. func (*UnimplementedABCIApplicationServer) InitChain(ctx context.Context, req *RequestInitChain) (*ResponseInitChain, error) {
  4834. return nil, status.Errorf(codes.Unimplemented, "method InitChain not implemented")
  4835. }
  4836. func (*UnimplementedABCIApplicationServer) BeginBlock(ctx context.Context, req *RequestBeginBlock) (*ResponseBeginBlock, error) {
  4837. return nil, status.Errorf(codes.Unimplemented, "method BeginBlock not implemented")
  4838. }
  4839. func (*UnimplementedABCIApplicationServer) EndBlock(ctx context.Context, req *RequestEndBlock) (*ResponseEndBlock, error) {
  4840. return nil, status.Errorf(codes.Unimplemented, "method EndBlock not implemented")
  4841. }
  4842. func RegisterABCIApplicationServer(s *grpc.Server, srv ABCIApplicationServer) {
  4843. s.RegisterService(&_ABCIApplication_serviceDesc, srv)
  4844. }
  4845. func _ABCIApplication_Echo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4846. in := new(RequestEcho)
  4847. if err := dec(in); err != nil {
  4848. return nil, err
  4849. }
  4850. if interceptor == nil {
  4851. return srv.(ABCIApplicationServer).Echo(ctx, in)
  4852. }
  4853. info := &grpc.UnaryServerInfo{
  4854. Server: srv,
  4855. FullMethod: "/tendermint.abci.types.ABCIApplication/Echo",
  4856. }
  4857. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4858. return srv.(ABCIApplicationServer).Echo(ctx, req.(*RequestEcho))
  4859. }
  4860. return interceptor(ctx, in, info, handler)
  4861. }
  4862. func _ABCIApplication_Flush_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4863. in := new(RequestFlush)
  4864. if err := dec(in); err != nil {
  4865. return nil, err
  4866. }
  4867. if interceptor == nil {
  4868. return srv.(ABCIApplicationServer).Flush(ctx, in)
  4869. }
  4870. info := &grpc.UnaryServerInfo{
  4871. Server: srv,
  4872. FullMethod: "/tendermint.abci.types.ABCIApplication/Flush",
  4873. }
  4874. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4875. return srv.(ABCIApplicationServer).Flush(ctx, req.(*RequestFlush))
  4876. }
  4877. return interceptor(ctx, in, info, handler)
  4878. }
  4879. func _ABCIApplication_Info_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4880. in := new(RequestInfo)
  4881. if err := dec(in); err != nil {
  4882. return nil, err
  4883. }
  4884. if interceptor == nil {
  4885. return srv.(ABCIApplicationServer).Info(ctx, in)
  4886. }
  4887. info := &grpc.UnaryServerInfo{
  4888. Server: srv,
  4889. FullMethod: "/tendermint.abci.types.ABCIApplication/Info",
  4890. }
  4891. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4892. return srv.(ABCIApplicationServer).Info(ctx, req.(*RequestInfo))
  4893. }
  4894. return interceptor(ctx, in, info, handler)
  4895. }
  4896. func _ABCIApplication_SetOption_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4897. in := new(RequestSetOption)
  4898. if err := dec(in); err != nil {
  4899. return nil, err
  4900. }
  4901. if interceptor == nil {
  4902. return srv.(ABCIApplicationServer).SetOption(ctx, in)
  4903. }
  4904. info := &grpc.UnaryServerInfo{
  4905. Server: srv,
  4906. FullMethod: "/tendermint.abci.types.ABCIApplication/SetOption",
  4907. }
  4908. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4909. return srv.(ABCIApplicationServer).SetOption(ctx, req.(*RequestSetOption))
  4910. }
  4911. return interceptor(ctx, in, info, handler)
  4912. }
  4913. func _ABCIApplication_DeliverTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4914. in := new(RequestDeliverTx)
  4915. if err := dec(in); err != nil {
  4916. return nil, err
  4917. }
  4918. if interceptor == nil {
  4919. return srv.(ABCIApplicationServer).DeliverTx(ctx, in)
  4920. }
  4921. info := &grpc.UnaryServerInfo{
  4922. Server: srv,
  4923. FullMethod: "/tendermint.abci.types.ABCIApplication/DeliverTx",
  4924. }
  4925. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4926. return srv.(ABCIApplicationServer).DeliverTx(ctx, req.(*RequestDeliverTx))
  4927. }
  4928. return interceptor(ctx, in, info, handler)
  4929. }
  4930. func _ABCIApplication_CheckTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4931. in := new(RequestCheckTx)
  4932. if err := dec(in); err != nil {
  4933. return nil, err
  4934. }
  4935. if interceptor == nil {
  4936. return srv.(ABCIApplicationServer).CheckTx(ctx, in)
  4937. }
  4938. info := &grpc.UnaryServerInfo{
  4939. Server: srv,
  4940. FullMethod: "/tendermint.abci.types.ABCIApplication/CheckTx",
  4941. }
  4942. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4943. return srv.(ABCIApplicationServer).CheckTx(ctx, req.(*RequestCheckTx))
  4944. }
  4945. return interceptor(ctx, in, info, handler)
  4946. }
  4947. func _ABCIApplication_Query_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4948. in := new(RequestQuery)
  4949. if err := dec(in); err != nil {
  4950. return nil, err
  4951. }
  4952. if interceptor == nil {
  4953. return srv.(ABCIApplicationServer).Query(ctx, in)
  4954. }
  4955. info := &grpc.UnaryServerInfo{
  4956. Server: srv,
  4957. FullMethod: "/tendermint.abci.types.ABCIApplication/Query",
  4958. }
  4959. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4960. return srv.(ABCIApplicationServer).Query(ctx, req.(*RequestQuery))
  4961. }
  4962. return interceptor(ctx, in, info, handler)
  4963. }
  4964. func _ABCIApplication_Commit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4965. in := new(RequestCommit)
  4966. if err := dec(in); err != nil {
  4967. return nil, err
  4968. }
  4969. if interceptor == nil {
  4970. return srv.(ABCIApplicationServer).Commit(ctx, in)
  4971. }
  4972. info := &grpc.UnaryServerInfo{
  4973. Server: srv,
  4974. FullMethod: "/tendermint.abci.types.ABCIApplication/Commit",
  4975. }
  4976. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4977. return srv.(ABCIApplicationServer).Commit(ctx, req.(*RequestCommit))
  4978. }
  4979. return interceptor(ctx, in, info, handler)
  4980. }
  4981. func _ABCIApplication_InitChain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4982. in := new(RequestInitChain)
  4983. if err := dec(in); err != nil {
  4984. return nil, err
  4985. }
  4986. if interceptor == nil {
  4987. return srv.(ABCIApplicationServer).InitChain(ctx, in)
  4988. }
  4989. info := &grpc.UnaryServerInfo{
  4990. Server: srv,
  4991. FullMethod: "/tendermint.abci.types.ABCIApplication/InitChain",
  4992. }
  4993. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  4994. return srv.(ABCIApplicationServer).InitChain(ctx, req.(*RequestInitChain))
  4995. }
  4996. return interceptor(ctx, in, info, handler)
  4997. }
  4998. func _ABCIApplication_BeginBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  4999. in := new(RequestBeginBlock)
  5000. if err := dec(in); err != nil {
  5001. return nil, err
  5002. }
  5003. if interceptor == nil {
  5004. return srv.(ABCIApplicationServer).BeginBlock(ctx, in)
  5005. }
  5006. info := &grpc.UnaryServerInfo{
  5007. Server: srv,
  5008. FullMethod: "/tendermint.abci.types.ABCIApplication/BeginBlock",
  5009. }
  5010. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5011. return srv.(ABCIApplicationServer).BeginBlock(ctx, req.(*RequestBeginBlock))
  5012. }
  5013. return interceptor(ctx, in, info, handler)
  5014. }
  5015. func _ABCIApplication_EndBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5016. in := new(RequestEndBlock)
  5017. if err := dec(in); err != nil {
  5018. return nil, err
  5019. }
  5020. if interceptor == nil {
  5021. return srv.(ABCIApplicationServer).EndBlock(ctx, in)
  5022. }
  5023. info := &grpc.UnaryServerInfo{
  5024. Server: srv,
  5025. FullMethod: "/tendermint.abci.types.ABCIApplication/EndBlock",
  5026. }
  5027. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5028. return srv.(ABCIApplicationServer).EndBlock(ctx, req.(*RequestEndBlock))
  5029. }
  5030. return interceptor(ctx, in, info, handler)
  5031. }
  5032. var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
  5033. ServiceName: "tendermint.abci.types.ABCIApplication",
  5034. HandlerType: (*ABCIApplicationServer)(nil),
  5035. Methods: []grpc.MethodDesc{
  5036. {
  5037. MethodName: "Echo",
  5038. Handler: _ABCIApplication_Echo_Handler,
  5039. },
  5040. {
  5041. MethodName: "Flush",
  5042. Handler: _ABCIApplication_Flush_Handler,
  5043. },
  5044. {
  5045. MethodName: "Info",
  5046. Handler: _ABCIApplication_Info_Handler,
  5047. },
  5048. {
  5049. MethodName: "SetOption",
  5050. Handler: _ABCIApplication_SetOption_Handler,
  5051. },
  5052. {
  5053. MethodName: "DeliverTx",
  5054. Handler: _ABCIApplication_DeliverTx_Handler,
  5055. },
  5056. {
  5057. MethodName: "CheckTx",
  5058. Handler: _ABCIApplication_CheckTx_Handler,
  5059. },
  5060. {
  5061. MethodName: "Query",
  5062. Handler: _ABCIApplication_Query_Handler,
  5063. },
  5064. {
  5065. MethodName: "Commit",
  5066. Handler: _ABCIApplication_Commit_Handler,
  5067. },
  5068. {
  5069. MethodName: "InitChain",
  5070. Handler: _ABCIApplication_InitChain_Handler,
  5071. },
  5072. {
  5073. MethodName: "BeginBlock",
  5074. Handler: _ABCIApplication_BeginBlock_Handler,
  5075. },
  5076. {
  5077. MethodName: "EndBlock",
  5078. Handler: _ABCIApplication_EndBlock_Handler,
  5079. },
  5080. },
  5081. Streams: []grpc.StreamDesc{},
  5082. Metadata: "abci/types/types.proto",
  5083. }
  5084. func (m *Request) Marshal() (dAtA []byte, err error) {
  5085. size := m.Size()
  5086. dAtA = make([]byte, size)
  5087. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5088. if err != nil {
  5089. return nil, err
  5090. }
  5091. return dAtA[:n], nil
  5092. }
  5093. func (m *Request) MarshalTo(dAtA []byte) (int, error) {
  5094. size := m.Size()
  5095. return m.MarshalToSizedBuffer(dAtA[:size])
  5096. }
  5097. func (m *Request) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5098. i := len(dAtA)
  5099. _ = i
  5100. var l int
  5101. _ = l
  5102. if m.XXX_unrecognized != nil {
  5103. i -= len(m.XXX_unrecognized)
  5104. copy(dAtA[i:], m.XXX_unrecognized)
  5105. }
  5106. if m.Value != nil {
  5107. {
  5108. size := m.Value.Size()
  5109. i -= size
  5110. if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil {
  5111. return 0, err
  5112. }
  5113. }
  5114. }
  5115. return len(dAtA) - i, nil
  5116. }
  5117. func (m *Request_Echo) MarshalTo(dAtA []byte) (int, error) {
  5118. size := m.Size()
  5119. return m.MarshalToSizedBuffer(dAtA[:size])
  5120. }
  5121. func (m *Request_Echo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5122. i := len(dAtA)
  5123. if m.Echo != nil {
  5124. {
  5125. size, err := m.Echo.MarshalToSizedBuffer(dAtA[:i])
  5126. if err != nil {
  5127. return 0, err
  5128. }
  5129. i -= size
  5130. i = encodeVarintTypes(dAtA, i, uint64(size))
  5131. }
  5132. i--
  5133. dAtA[i] = 0x12
  5134. }
  5135. return len(dAtA) - i, nil
  5136. }
  5137. func (m *Request_Flush) MarshalTo(dAtA []byte) (int, error) {
  5138. size := m.Size()
  5139. return m.MarshalToSizedBuffer(dAtA[:size])
  5140. }
  5141. func (m *Request_Flush) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5142. i := len(dAtA)
  5143. if m.Flush != nil {
  5144. {
  5145. size, err := m.Flush.MarshalToSizedBuffer(dAtA[:i])
  5146. if err != nil {
  5147. return 0, err
  5148. }
  5149. i -= size
  5150. i = encodeVarintTypes(dAtA, i, uint64(size))
  5151. }
  5152. i--
  5153. dAtA[i] = 0x1a
  5154. }
  5155. return len(dAtA) - i, nil
  5156. }
  5157. func (m *Request_Info) MarshalTo(dAtA []byte) (int, error) {
  5158. size := m.Size()
  5159. return m.MarshalToSizedBuffer(dAtA[:size])
  5160. }
  5161. func (m *Request_Info) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5162. i := len(dAtA)
  5163. if m.Info != nil {
  5164. {
  5165. size, err := m.Info.MarshalToSizedBuffer(dAtA[:i])
  5166. if err != nil {
  5167. return 0, err
  5168. }
  5169. i -= size
  5170. i = encodeVarintTypes(dAtA, i, uint64(size))
  5171. }
  5172. i--
  5173. dAtA[i] = 0x22
  5174. }
  5175. return len(dAtA) - i, nil
  5176. }
  5177. func (m *Request_SetOption) MarshalTo(dAtA []byte) (int, error) {
  5178. size := m.Size()
  5179. return m.MarshalToSizedBuffer(dAtA[:size])
  5180. }
  5181. func (m *Request_SetOption) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5182. i := len(dAtA)
  5183. if m.SetOption != nil {
  5184. {
  5185. size, err := m.SetOption.MarshalToSizedBuffer(dAtA[:i])
  5186. if err != nil {
  5187. return 0, err
  5188. }
  5189. i -= size
  5190. i = encodeVarintTypes(dAtA, i, uint64(size))
  5191. }
  5192. i--
  5193. dAtA[i] = 0x2a
  5194. }
  5195. return len(dAtA) - i, nil
  5196. }
  5197. func (m *Request_InitChain) MarshalTo(dAtA []byte) (int, error) {
  5198. size := m.Size()
  5199. return m.MarshalToSizedBuffer(dAtA[:size])
  5200. }
  5201. func (m *Request_InitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5202. i := len(dAtA)
  5203. if m.InitChain != nil {
  5204. {
  5205. size, err := m.InitChain.MarshalToSizedBuffer(dAtA[:i])
  5206. if err != nil {
  5207. return 0, err
  5208. }
  5209. i -= size
  5210. i = encodeVarintTypes(dAtA, i, uint64(size))
  5211. }
  5212. i--
  5213. dAtA[i] = 0x32
  5214. }
  5215. return len(dAtA) - i, nil
  5216. }
  5217. func (m *Request_Query) MarshalTo(dAtA []byte) (int, error) {
  5218. size := m.Size()
  5219. return m.MarshalToSizedBuffer(dAtA[:size])
  5220. }
  5221. func (m *Request_Query) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5222. i := len(dAtA)
  5223. if m.Query != nil {
  5224. {
  5225. size, err := m.Query.MarshalToSizedBuffer(dAtA[:i])
  5226. if err != nil {
  5227. return 0, err
  5228. }
  5229. i -= size
  5230. i = encodeVarintTypes(dAtA, i, uint64(size))
  5231. }
  5232. i--
  5233. dAtA[i] = 0x3a
  5234. }
  5235. return len(dAtA) - i, nil
  5236. }
  5237. func (m *Request_BeginBlock) MarshalTo(dAtA []byte) (int, error) {
  5238. size := m.Size()
  5239. return m.MarshalToSizedBuffer(dAtA[:size])
  5240. }
  5241. func (m *Request_BeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5242. i := len(dAtA)
  5243. if m.BeginBlock != nil {
  5244. {
  5245. size, err := m.BeginBlock.MarshalToSizedBuffer(dAtA[:i])
  5246. if err != nil {
  5247. return 0, err
  5248. }
  5249. i -= size
  5250. i = encodeVarintTypes(dAtA, i, uint64(size))
  5251. }
  5252. i--
  5253. dAtA[i] = 0x42
  5254. }
  5255. return len(dAtA) - i, nil
  5256. }
  5257. func (m *Request_CheckTx) MarshalTo(dAtA []byte) (int, error) {
  5258. size := m.Size()
  5259. return m.MarshalToSizedBuffer(dAtA[:size])
  5260. }
  5261. func (m *Request_CheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5262. i := len(dAtA)
  5263. if m.CheckTx != nil {
  5264. {
  5265. size, err := m.CheckTx.MarshalToSizedBuffer(dAtA[:i])
  5266. if err != nil {
  5267. return 0, err
  5268. }
  5269. i -= size
  5270. i = encodeVarintTypes(dAtA, i, uint64(size))
  5271. }
  5272. i--
  5273. dAtA[i] = 0x4a
  5274. }
  5275. return len(dAtA) - i, nil
  5276. }
  5277. func (m *Request_EndBlock) MarshalTo(dAtA []byte) (int, error) {
  5278. size := m.Size()
  5279. return m.MarshalToSizedBuffer(dAtA[:size])
  5280. }
  5281. func (m *Request_EndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5282. i := len(dAtA)
  5283. if m.EndBlock != nil {
  5284. {
  5285. size, err := m.EndBlock.MarshalToSizedBuffer(dAtA[:i])
  5286. if err != nil {
  5287. return 0, err
  5288. }
  5289. i -= size
  5290. i = encodeVarintTypes(dAtA, i, uint64(size))
  5291. }
  5292. i--
  5293. dAtA[i] = 0x5a
  5294. }
  5295. return len(dAtA) - i, nil
  5296. }
  5297. func (m *Request_Commit) MarshalTo(dAtA []byte) (int, error) {
  5298. size := m.Size()
  5299. return m.MarshalToSizedBuffer(dAtA[:size])
  5300. }
  5301. func (m *Request_Commit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5302. i := len(dAtA)
  5303. if m.Commit != nil {
  5304. {
  5305. size, err := m.Commit.MarshalToSizedBuffer(dAtA[:i])
  5306. if err != nil {
  5307. return 0, err
  5308. }
  5309. i -= size
  5310. i = encodeVarintTypes(dAtA, i, uint64(size))
  5311. }
  5312. i--
  5313. dAtA[i] = 0x62
  5314. }
  5315. return len(dAtA) - i, nil
  5316. }
  5317. func (m *Request_DeliverTx) MarshalTo(dAtA []byte) (int, error) {
  5318. size := m.Size()
  5319. return m.MarshalToSizedBuffer(dAtA[:size])
  5320. }
  5321. func (m *Request_DeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5322. i := len(dAtA)
  5323. if m.DeliverTx != nil {
  5324. {
  5325. size, err := m.DeliverTx.MarshalToSizedBuffer(dAtA[:i])
  5326. if err != nil {
  5327. return 0, err
  5328. }
  5329. i -= size
  5330. i = encodeVarintTypes(dAtA, i, uint64(size))
  5331. }
  5332. i--
  5333. dAtA[i] = 0x1
  5334. i--
  5335. dAtA[i] = 0x9a
  5336. }
  5337. return len(dAtA) - i, nil
  5338. }
  5339. func (m *RequestEcho) Marshal() (dAtA []byte, err error) {
  5340. size := m.Size()
  5341. dAtA = make([]byte, size)
  5342. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5343. if err != nil {
  5344. return nil, err
  5345. }
  5346. return dAtA[:n], nil
  5347. }
  5348. func (m *RequestEcho) MarshalTo(dAtA []byte) (int, error) {
  5349. size := m.Size()
  5350. return m.MarshalToSizedBuffer(dAtA[:size])
  5351. }
  5352. func (m *RequestEcho) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5353. i := len(dAtA)
  5354. _ = i
  5355. var l int
  5356. _ = l
  5357. if m.XXX_unrecognized != nil {
  5358. i -= len(m.XXX_unrecognized)
  5359. copy(dAtA[i:], m.XXX_unrecognized)
  5360. }
  5361. if len(m.Message) > 0 {
  5362. i -= len(m.Message)
  5363. copy(dAtA[i:], m.Message)
  5364. i = encodeVarintTypes(dAtA, i, uint64(len(m.Message)))
  5365. i--
  5366. dAtA[i] = 0xa
  5367. }
  5368. return len(dAtA) - i, nil
  5369. }
  5370. func (m *RequestFlush) Marshal() (dAtA []byte, err error) {
  5371. size := m.Size()
  5372. dAtA = make([]byte, size)
  5373. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5374. if err != nil {
  5375. return nil, err
  5376. }
  5377. return dAtA[:n], nil
  5378. }
  5379. func (m *RequestFlush) MarshalTo(dAtA []byte) (int, error) {
  5380. size := m.Size()
  5381. return m.MarshalToSizedBuffer(dAtA[:size])
  5382. }
  5383. func (m *RequestFlush) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5384. i := len(dAtA)
  5385. _ = i
  5386. var l int
  5387. _ = l
  5388. if m.XXX_unrecognized != nil {
  5389. i -= len(m.XXX_unrecognized)
  5390. copy(dAtA[i:], m.XXX_unrecognized)
  5391. }
  5392. return len(dAtA) - i, nil
  5393. }
  5394. func (m *RequestInfo) Marshal() (dAtA []byte, err error) {
  5395. size := m.Size()
  5396. dAtA = make([]byte, size)
  5397. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5398. if err != nil {
  5399. return nil, err
  5400. }
  5401. return dAtA[:n], nil
  5402. }
  5403. func (m *RequestInfo) MarshalTo(dAtA []byte) (int, error) {
  5404. size := m.Size()
  5405. return m.MarshalToSizedBuffer(dAtA[:size])
  5406. }
  5407. func (m *RequestInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5408. i := len(dAtA)
  5409. _ = i
  5410. var l int
  5411. _ = l
  5412. if m.XXX_unrecognized != nil {
  5413. i -= len(m.XXX_unrecognized)
  5414. copy(dAtA[i:], m.XXX_unrecognized)
  5415. }
  5416. if m.P2PVersion != 0 {
  5417. i = encodeVarintTypes(dAtA, i, uint64(m.P2PVersion))
  5418. i--
  5419. dAtA[i] = 0x18
  5420. }
  5421. if m.BlockVersion != 0 {
  5422. i = encodeVarintTypes(dAtA, i, uint64(m.BlockVersion))
  5423. i--
  5424. dAtA[i] = 0x10
  5425. }
  5426. if len(m.Version) > 0 {
  5427. i -= len(m.Version)
  5428. copy(dAtA[i:], m.Version)
  5429. i = encodeVarintTypes(dAtA, i, uint64(len(m.Version)))
  5430. i--
  5431. dAtA[i] = 0xa
  5432. }
  5433. return len(dAtA) - i, nil
  5434. }
  5435. func (m *RequestSetOption) Marshal() (dAtA []byte, err error) {
  5436. size := m.Size()
  5437. dAtA = make([]byte, size)
  5438. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5439. if err != nil {
  5440. return nil, err
  5441. }
  5442. return dAtA[:n], nil
  5443. }
  5444. func (m *RequestSetOption) MarshalTo(dAtA []byte) (int, error) {
  5445. size := m.Size()
  5446. return m.MarshalToSizedBuffer(dAtA[:size])
  5447. }
  5448. func (m *RequestSetOption) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5449. i := len(dAtA)
  5450. _ = i
  5451. var l int
  5452. _ = l
  5453. if m.XXX_unrecognized != nil {
  5454. i -= len(m.XXX_unrecognized)
  5455. copy(dAtA[i:], m.XXX_unrecognized)
  5456. }
  5457. if len(m.Value) > 0 {
  5458. i -= len(m.Value)
  5459. copy(dAtA[i:], m.Value)
  5460. i = encodeVarintTypes(dAtA, i, uint64(len(m.Value)))
  5461. i--
  5462. dAtA[i] = 0x12
  5463. }
  5464. if len(m.Key) > 0 {
  5465. i -= len(m.Key)
  5466. copy(dAtA[i:], m.Key)
  5467. i = encodeVarintTypes(dAtA, i, uint64(len(m.Key)))
  5468. i--
  5469. dAtA[i] = 0xa
  5470. }
  5471. return len(dAtA) - i, nil
  5472. }
  5473. func (m *RequestInitChain) Marshal() (dAtA []byte, err error) {
  5474. size := m.Size()
  5475. dAtA = make([]byte, size)
  5476. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5477. if err != nil {
  5478. return nil, err
  5479. }
  5480. return dAtA[:n], nil
  5481. }
  5482. func (m *RequestInitChain) MarshalTo(dAtA []byte) (int, error) {
  5483. size := m.Size()
  5484. return m.MarshalToSizedBuffer(dAtA[:size])
  5485. }
  5486. func (m *RequestInitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5487. i := len(dAtA)
  5488. _ = i
  5489. var l int
  5490. _ = l
  5491. if m.XXX_unrecognized != nil {
  5492. i -= len(m.XXX_unrecognized)
  5493. copy(dAtA[i:], m.XXX_unrecognized)
  5494. }
  5495. if len(m.AppStateBytes) > 0 {
  5496. i -= len(m.AppStateBytes)
  5497. copy(dAtA[i:], m.AppStateBytes)
  5498. i = encodeVarintTypes(dAtA, i, uint64(len(m.AppStateBytes)))
  5499. i--
  5500. dAtA[i] = 0x2a
  5501. }
  5502. if len(m.Validators) > 0 {
  5503. for iNdEx := len(m.Validators) - 1; iNdEx >= 0; iNdEx-- {
  5504. {
  5505. size, err := m.Validators[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  5506. if err != nil {
  5507. return 0, err
  5508. }
  5509. i -= size
  5510. i = encodeVarintTypes(dAtA, i, uint64(size))
  5511. }
  5512. i--
  5513. dAtA[i] = 0x22
  5514. }
  5515. }
  5516. if m.ConsensusParams != nil {
  5517. {
  5518. size, err := m.ConsensusParams.MarshalToSizedBuffer(dAtA[:i])
  5519. if err != nil {
  5520. return 0, err
  5521. }
  5522. i -= size
  5523. i = encodeVarintTypes(dAtA, i, uint64(size))
  5524. }
  5525. i--
  5526. dAtA[i] = 0x1a
  5527. }
  5528. if len(m.ChainId) > 0 {
  5529. i -= len(m.ChainId)
  5530. copy(dAtA[i:], m.ChainId)
  5531. i = encodeVarintTypes(dAtA, i, uint64(len(m.ChainId)))
  5532. i--
  5533. dAtA[i] = 0x12
  5534. }
  5535. n13, err13 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
  5536. if err13 != nil {
  5537. return 0, err13
  5538. }
  5539. i -= n13
  5540. i = encodeVarintTypes(dAtA, i, uint64(n13))
  5541. i--
  5542. dAtA[i] = 0xa
  5543. return len(dAtA) - i, nil
  5544. }
  5545. func (m *RequestQuery) Marshal() (dAtA []byte, err error) {
  5546. size := m.Size()
  5547. dAtA = make([]byte, size)
  5548. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5549. if err != nil {
  5550. return nil, err
  5551. }
  5552. return dAtA[:n], nil
  5553. }
  5554. func (m *RequestQuery) MarshalTo(dAtA []byte) (int, error) {
  5555. size := m.Size()
  5556. return m.MarshalToSizedBuffer(dAtA[:size])
  5557. }
  5558. func (m *RequestQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5559. i := len(dAtA)
  5560. _ = i
  5561. var l int
  5562. _ = l
  5563. if m.XXX_unrecognized != nil {
  5564. i -= len(m.XXX_unrecognized)
  5565. copy(dAtA[i:], m.XXX_unrecognized)
  5566. }
  5567. if m.Prove {
  5568. i--
  5569. if m.Prove {
  5570. dAtA[i] = 1
  5571. } else {
  5572. dAtA[i] = 0
  5573. }
  5574. i--
  5575. dAtA[i] = 0x20
  5576. }
  5577. if m.Height != 0 {
  5578. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  5579. i--
  5580. dAtA[i] = 0x18
  5581. }
  5582. if len(m.Path) > 0 {
  5583. i -= len(m.Path)
  5584. copy(dAtA[i:], m.Path)
  5585. i = encodeVarintTypes(dAtA, i, uint64(len(m.Path)))
  5586. i--
  5587. dAtA[i] = 0x12
  5588. }
  5589. if len(m.Data) > 0 {
  5590. i -= len(m.Data)
  5591. copy(dAtA[i:], m.Data)
  5592. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  5593. i--
  5594. dAtA[i] = 0xa
  5595. }
  5596. return len(dAtA) - i, nil
  5597. }
  5598. func (m *RequestBeginBlock) Marshal() (dAtA []byte, err error) {
  5599. size := m.Size()
  5600. dAtA = make([]byte, size)
  5601. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5602. if err != nil {
  5603. return nil, err
  5604. }
  5605. return dAtA[:n], nil
  5606. }
  5607. func (m *RequestBeginBlock) MarshalTo(dAtA []byte) (int, error) {
  5608. size := m.Size()
  5609. return m.MarshalToSizedBuffer(dAtA[:size])
  5610. }
  5611. func (m *RequestBeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5612. i := len(dAtA)
  5613. _ = i
  5614. var l int
  5615. _ = l
  5616. if m.XXX_unrecognized != nil {
  5617. i -= len(m.XXX_unrecognized)
  5618. copy(dAtA[i:], m.XXX_unrecognized)
  5619. }
  5620. if len(m.ByzantineValidators) > 0 {
  5621. for iNdEx := len(m.ByzantineValidators) - 1; iNdEx >= 0; iNdEx-- {
  5622. {
  5623. size, err := m.ByzantineValidators[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  5624. if err != nil {
  5625. return 0, err
  5626. }
  5627. i -= size
  5628. i = encodeVarintTypes(dAtA, i, uint64(size))
  5629. }
  5630. i--
  5631. dAtA[i] = 0x22
  5632. }
  5633. }
  5634. {
  5635. size, err := m.LastCommitInfo.MarshalToSizedBuffer(dAtA[:i])
  5636. if err != nil {
  5637. return 0, err
  5638. }
  5639. i -= size
  5640. i = encodeVarintTypes(dAtA, i, uint64(size))
  5641. }
  5642. i--
  5643. dAtA[i] = 0x1a
  5644. {
  5645. size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
  5646. if err != nil {
  5647. return 0, err
  5648. }
  5649. i -= size
  5650. i = encodeVarintTypes(dAtA, i, uint64(size))
  5651. }
  5652. i--
  5653. dAtA[i] = 0x12
  5654. if len(m.Hash) > 0 {
  5655. i -= len(m.Hash)
  5656. copy(dAtA[i:], m.Hash)
  5657. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  5658. i--
  5659. dAtA[i] = 0xa
  5660. }
  5661. return len(dAtA) - i, nil
  5662. }
  5663. func (m *RequestCheckTx) Marshal() (dAtA []byte, err error) {
  5664. size := m.Size()
  5665. dAtA = make([]byte, size)
  5666. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5667. if err != nil {
  5668. return nil, err
  5669. }
  5670. return dAtA[:n], nil
  5671. }
  5672. func (m *RequestCheckTx) MarshalTo(dAtA []byte) (int, error) {
  5673. size := m.Size()
  5674. return m.MarshalToSizedBuffer(dAtA[:size])
  5675. }
  5676. func (m *RequestCheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5677. i := len(dAtA)
  5678. _ = i
  5679. var l int
  5680. _ = l
  5681. if m.XXX_unrecognized != nil {
  5682. i -= len(m.XXX_unrecognized)
  5683. copy(dAtA[i:], m.XXX_unrecognized)
  5684. }
  5685. if m.Type != 0 {
  5686. i = encodeVarintTypes(dAtA, i, uint64(m.Type))
  5687. i--
  5688. dAtA[i] = 0x10
  5689. }
  5690. if len(m.Tx) > 0 {
  5691. i -= len(m.Tx)
  5692. copy(dAtA[i:], m.Tx)
  5693. i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx)))
  5694. i--
  5695. dAtA[i] = 0xa
  5696. }
  5697. return len(dAtA) - i, nil
  5698. }
  5699. func (m *RequestDeliverTx) Marshal() (dAtA []byte, err error) {
  5700. size := m.Size()
  5701. dAtA = make([]byte, size)
  5702. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5703. if err != nil {
  5704. return nil, err
  5705. }
  5706. return dAtA[:n], nil
  5707. }
  5708. func (m *RequestDeliverTx) MarshalTo(dAtA []byte) (int, error) {
  5709. size := m.Size()
  5710. return m.MarshalToSizedBuffer(dAtA[:size])
  5711. }
  5712. func (m *RequestDeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5713. i := len(dAtA)
  5714. _ = i
  5715. var l int
  5716. _ = l
  5717. if m.XXX_unrecognized != nil {
  5718. i -= len(m.XXX_unrecognized)
  5719. copy(dAtA[i:], m.XXX_unrecognized)
  5720. }
  5721. if len(m.Tx) > 0 {
  5722. i -= len(m.Tx)
  5723. copy(dAtA[i:], m.Tx)
  5724. i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx)))
  5725. i--
  5726. dAtA[i] = 0xa
  5727. }
  5728. return len(dAtA) - i, nil
  5729. }
  5730. func (m *RequestEndBlock) Marshal() (dAtA []byte, err error) {
  5731. size := m.Size()
  5732. dAtA = make([]byte, size)
  5733. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5734. if err != nil {
  5735. return nil, err
  5736. }
  5737. return dAtA[:n], nil
  5738. }
  5739. func (m *RequestEndBlock) MarshalTo(dAtA []byte) (int, error) {
  5740. size := m.Size()
  5741. return m.MarshalToSizedBuffer(dAtA[:size])
  5742. }
  5743. func (m *RequestEndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5744. i := len(dAtA)
  5745. _ = i
  5746. var l int
  5747. _ = l
  5748. if m.XXX_unrecognized != nil {
  5749. i -= len(m.XXX_unrecognized)
  5750. copy(dAtA[i:], m.XXX_unrecognized)
  5751. }
  5752. if m.Height != 0 {
  5753. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  5754. i--
  5755. dAtA[i] = 0x8
  5756. }
  5757. return len(dAtA) - i, nil
  5758. }
  5759. func (m *RequestCommit) Marshal() (dAtA []byte, err error) {
  5760. size := m.Size()
  5761. dAtA = make([]byte, size)
  5762. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5763. if err != nil {
  5764. return nil, err
  5765. }
  5766. return dAtA[:n], nil
  5767. }
  5768. func (m *RequestCommit) MarshalTo(dAtA []byte) (int, error) {
  5769. size := m.Size()
  5770. return m.MarshalToSizedBuffer(dAtA[:size])
  5771. }
  5772. func (m *RequestCommit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5773. i := len(dAtA)
  5774. _ = i
  5775. var l int
  5776. _ = l
  5777. if m.XXX_unrecognized != nil {
  5778. i -= len(m.XXX_unrecognized)
  5779. copy(dAtA[i:], m.XXX_unrecognized)
  5780. }
  5781. return len(dAtA) - i, nil
  5782. }
  5783. func (m *Response) Marshal() (dAtA []byte, err error) {
  5784. size := m.Size()
  5785. dAtA = make([]byte, size)
  5786. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  5787. if err != nil {
  5788. return nil, err
  5789. }
  5790. return dAtA[:n], nil
  5791. }
  5792. func (m *Response) MarshalTo(dAtA []byte) (int, error) {
  5793. size := m.Size()
  5794. return m.MarshalToSizedBuffer(dAtA[:size])
  5795. }
  5796. func (m *Response) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5797. i := len(dAtA)
  5798. _ = i
  5799. var l int
  5800. _ = l
  5801. if m.XXX_unrecognized != nil {
  5802. i -= len(m.XXX_unrecognized)
  5803. copy(dAtA[i:], m.XXX_unrecognized)
  5804. }
  5805. if m.Value != nil {
  5806. {
  5807. size := m.Value.Size()
  5808. i -= size
  5809. if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil {
  5810. return 0, err
  5811. }
  5812. }
  5813. }
  5814. return len(dAtA) - i, nil
  5815. }
  5816. func (m *Response_Exception) MarshalTo(dAtA []byte) (int, error) {
  5817. size := m.Size()
  5818. return m.MarshalToSizedBuffer(dAtA[:size])
  5819. }
  5820. func (m *Response_Exception) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5821. i := len(dAtA)
  5822. if m.Exception != nil {
  5823. {
  5824. size, err := m.Exception.MarshalToSizedBuffer(dAtA[:i])
  5825. if err != nil {
  5826. return 0, err
  5827. }
  5828. i -= size
  5829. i = encodeVarintTypes(dAtA, i, uint64(size))
  5830. }
  5831. i--
  5832. dAtA[i] = 0xa
  5833. }
  5834. return len(dAtA) - i, nil
  5835. }
  5836. func (m *Response_Echo) MarshalTo(dAtA []byte) (int, error) {
  5837. size := m.Size()
  5838. return m.MarshalToSizedBuffer(dAtA[:size])
  5839. }
  5840. func (m *Response_Echo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5841. i := len(dAtA)
  5842. if m.Echo != nil {
  5843. {
  5844. size, err := m.Echo.MarshalToSizedBuffer(dAtA[:i])
  5845. if err != nil {
  5846. return 0, err
  5847. }
  5848. i -= size
  5849. i = encodeVarintTypes(dAtA, i, uint64(size))
  5850. }
  5851. i--
  5852. dAtA[i] = 0x12
  5853. }
  5854. return len(dAtA) - i, nil
  5855. }
  5856. func (m *Response_Flush) MarshalTo(dAtA []byte) (int, error) {
  5857. size := m.Size()
  5858. return m.MarshalToSizedBuffer(dAtA[:size])
  5859. }
  5860. func (m *Response_Flush) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5861. i := len(dAtA)
  5862. if m.Flush != nil {
  5863. {
  5864. size, err := m.Flush.MarshalToSizedBuffer(dAtA[:i])
  5865. if err != nil {
  5866. return 0, err
  5867. }
  5868. i -= size
  5869. i = encodeVarintTypes(dAtA, i, uint64(size))
  5870. }
  5871. i--
  5872. dAtA[i] = 0x1a
  5873. }
  5874. return len(dAtA) - i, nil
  5875. }
  5876. func (m *Response_Info) MarshalTo(dAtA []byte) (int, error) {
  5877. size := m.Size()
  5878. return m.MarshalToSizedBuffer(dAtA[:size])
  5879. }
  5880. func (m *Response_Info) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5881. i := len(dAtA)
  5882. if m.Info != nil {
  5883. {
  5884. size, err := m.Info.MarshalToSizedBuffer(dAtA[:i])
  5885. if err != nil {
  5886. return 0, err
  5887. }
  5888. i -= size
  5889. i = encodeVarintTypes(dAtA, i, uint64(size))
  5890. }
  5891. i--
  5892. dAtA[i] = 0x22
  5893. }
  5894. return len(dAtA) - i, nil
  5895. }
  5896. func (m *Response_SetOption) MarshalTo(dAtA []byte) (int, error) {
  5897. size := m.Size()
  5898. return m.MarshalToSizedBuffer(dAtA[:size])
  5899. }
  5900. func (m *Response_SetOption) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5901. i := len(dAtA)
  5902. if m.SetOption != nil {
  5903. {
  5904. size, err := m.SetOption.MarshalToSizedBuffer(dAtA[:i])
  5905. if err != nil {
  5906. return 0, err
  5907. }
  5908. i -= size
  5909. i = encodeVarintTypes(dAtA, i, uint64(size))
  5910. }
  5911. i--
  5912. dAtA[i] = 0x2a
  5913. }
  5914. return len(dAtA) - i, nil
  5915. }
  5916. func (m *Response_InitChain) MarshalTo(dAtA []byte) (int, error) {
  5917. size := m.Size()
  5918. return m.MarshalToSizedBuffer(dAtA[:size])
  5919. }
  5920. func (m *Response_InitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5921. i := len(dAtA)
  5922. if m.InitChain != nil {
  5923. {
  5924. size, err := m.InitChain.MarshalToSizedBuffer(dAtA[:i])
  5925. if err != nil {
  5926. return 0, err
  5927. }
  5928. i -= size
  5929. i = encodeVarintTypes(dAtA, i, uint64(size))
  5930. }
  5931. i--
  5932. dAtA[i] = 0x32
  5933. }
  5934. return len(dAtA) - i, nil
  5935. }
  5936. func (m *Response_Query) MarshalTo(dAtA []byte) (int, error) {
  5937. size := m.Size()
  5938. return m.MarshalToSizedBuffer(dAtA[: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. size := m.Size()
  5958. return m.MarshalToSizedBuffer(dAtA[:size])
  5959. }
  5960. func (m *Response_BeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5961. i := len(dAtA)
  5962. if m.BeginBlock != nil {
  5963. {
  5964. size, err := m.BeginBlock.MarshalToSizedBuffer(dAtA[:i])
  5965. if err != nil {
  5966. return 0, err
  5967. }
  5968. i -= size
  5969. i = encodeVarintTypes(dAtA, i, uint64(size))
  5970. }
  5971. i--
  5972. dAtA[i] = 0x42
  5973. }
  5974. return len(dAtA) - i, nil
  5975. }
  5976. func (m *Response_CheckTx) MarshalTo(dAtA []byte) (int, error) {
  5977. size := m.Size()
  5978. return m.MarshalToSizedBuffer(dAtA[:size])
  5979. }
  5980. func (m *Response_CheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  5981. i := len(dAtA)
  5982. if m.CheckTx != nil {
  5983. {
  5984. size, err := m.CheckTx.MarshalToSizedBuffer(dAtA[:i])
  5985. if err != nil {
  5986. return 0, err
  5987. }
  5988. i -= size
  5989. i = encodeVarintTypes(dAtA, i, uint64(size))
  5990. }
  5991. i--
  5992. dAtA[i] = 0x4a
  5993. }
  5994. return len(dAtA) - i, nil
  5995. }
  5996. func (m *Response_DeliverTx) MarshalTo(dAtA []byte) (int, error) {
  5997. size := m.Size()
  5998. return m.MarshalToSizedBuffer(dAtA[:size])
  5999. }
  6000. func (m *Response_DeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6001. i := len(dAtA)
  6002. if m.DeliverTx != nil {
  6003. {
  6004. size, err := m.DeliverTx.MarshalToSizedBuffer(dAtA[:i])
  6005. if err != nil {
  6006. return 0, err
  6007. }
  6008. i -= size
  6009. i = encodeVarintTypes(dAtA, i, uint64(size))
  6010. }
  6011. i--
  6012. dAtA[i] = 0x52
  6013. }
  6014. return len(dAtA) - i, nil
  6015. }
  6016. func (m *Response_EndBlock) MarshalTo(dAtA []byte) (int, error) {
  6017. size := m.Size()
  6018. return m.MarshalToSizedBuffer(dAtA[:size])
  6019. }
  6020. func (m *Response_EndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6021. i := len(dAtA)
  6022. if m.EndBlock != nil {
  6023. {
  6024. size, err := m.EndBlock.MarshalToSizedBuffer(dAtA[:i])
  6025. if err != nil {
  6026. return 0, err
  6027. }
  6028. i -= size
  6029. i = encodeVarintTypes(dAtA, i, uint64(size))
  6030. }
  6031. i--
  6032. dAtA[i] = 0x5a
  6033. }
  6034. return len(dAtA) - i, nil
  6035. }
  6036. func (m *Response_Commit) MarshalTo(dAtA []byte) (int, error) {
  6037. size := m.Size()
  6038. return m.MarshalToSizedBuffer(dAtA[:size])
  6039. }
  6040. func (m *Response_Commit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6041. i := len(dAtA)
  6042. if m.Commit != nil {
  6043. {
  6044. size, err := m.Commit.MarshalToSizedBuffer(dAtA[:i])
  6045. if err != nil {
  6046. return 0, err
  6047. }
  6048. i -= size
  6049. i = encodeVarintTypes(dAtA, i, uint64(size))
  6050. }
  6051. i--
  6052. dAtA[i] = 0x62
  6053. }
  6054. return len(dAtA) - i, nil
  6055. }
  6056. func (m *ResponseException) Marshal() (dAtA []byte, err error) {
  6057. size := m.Size()
  6058. dAtA = make([]byte, size)
  6059. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6060. if err != nil {
  6061. return nil, err
  6062. }
  6063. return dAtA[:n], nil
  6064. }
  6065. func (m *ResponseException) MarshalTo(dAtA []byte) (int, error) {
  6066. size := m.Size()
  6067. return m.MarshalToSizedBuffer(dAtA[:size])
  6068. }
  6069. func (m *ResponseException) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6070. i := len(dAtA)
  6071. _ = i
  6072. var l int
  6073. _ = l
  6074. if m.XXX_unrecognized != nil {
  6075. i -= len(m.XXX_unrecognized)
  6076. copy(dAtA[i:], m.XXX_unrecognized)
  6077. }
  6078. if len(m.Error) > 0 {
  6079. i -= len(m.Error)
  6080. copy(dAtA[i:], m.Error)
  6081. i = encodeVarintTypes(dAtA, i, uint64(len(m.Error)))
  6082. i--
  6083. dAtA[i] = 0xa
  6084. }
  6085. return len(dAtA) - i, nil
  6086. }
  6087. func (m *ResponseEcho) Marshal() (dAtA []byte, err error) {
  6088. size := m.Size()
  6089. dAtA = make([]byte, size)
  6090. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6091. if err != nil {
  6092. return nil, err
  6093. }
  6094. return dAtA[:n], nil
  6095. }
  6096. func (m *ResponseEcho) MarshalTo(dAtA []byte) (int, error) {
  6097. size := m.Size()
  6098. return m.MarshalToSizedBuffer(dAtA[:size])
  6099. }
  6100. func (m *ResponseEcho) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6101. i := len(dAtA)
  6102. _ = i
  6103. var l int
  6104. _ = l
  6105. if m.XXX_unrecognized != nil {
  6106. i -= len(m.XXX_unrecognized)
  6107. copy(dAtA[i:], m.XXX_unrecognized)
  6108. }
  6109. if len(m.Message) > 0 {
  6110. i -= len(m.Message)
  6111. copy(dAtA[i:], m.Message)
  6112. i = encodeVarintTypes(dAtA, i, uint64(len(m.Message)))
  6113. i--
  6114. dAtA[i] = 0xa
  6115. }
  6116. return len(dAtA) - i, nil
  6117. }
  6118. func (m *ResponseFlush) Marshal() (dAtA []byte, err error) {
  6119. size := m.Size()
  6120. dAtA = make([]byte, size)
  6121. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6122. if err != nil {
  6123. return nil, err
  6124. }
  6125. return dAtA[:n], nil
  6126. }
  6127. func (m *ResponseFlush) MarshalTo(dAtA []byte) (int, error) {
  6128. size := m.Size()
  6129. return m.MarshalToSizedBuffer(dAtA[:size])
  6130. }
  6131. func (m *ResponseFlush) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6132. i := len(dAtA)
  6133. _ = i
  6134. var l int
  6135. _ = l
  6136. if m.XXX_unrecognized != nil {
  6137. i -= len(m.XXX_unrecognized)
  6138. copy(dAtA[i:], m.XXX_unrecognized)
  6139. }
  6140. return len(dAtA) - i, nil
  6141. }
  6142. func (m *ResponseInfo) Marshal() (dAtA []byte, err error) {
  6143. size := m.Size()
  6144. dAtA = make([]byte, size)
  6145. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6146. if err != nil {
  6147. return nil, err
  6148. }
  6149. return dAtA[:n], nil
  6150. }
  6151. func (m *ResponseInfo) MarshalTo(dAtA []byte) (int, error) {
  6152. size := m.Size()
  6153. return m.MarshalToSizedBuffer(dAtA[:size])
  6154. }
  6155. func (m *ResponseInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6156. i := len(dAtA)
  6157. _ = i
  6158. var l int
  6159. _ = l
  6160. if m.XXX_unrecognized != nil {
  6161. i -= len(m.XXX_unrecognized)
  6162. copy(dAtA[i:], m.XXX_unrecognized)
  6163. }
  6164. if len(m.LastBlockAppHash) > 0 {
  6165. i -= len(m.LastBlockAppHash)
  6166. copy(dAtA[i:], m.LastBlockAppHash)
  6167. i = encodeVarintTypes(dAtA, i, uint64(len(m.LastBlockAppHash)))
  6168. i--
  6169. dAtA[i] = 0x2a
  6170. }
  6171. if m.LastBlockHeight != 0 {
  6172. i = encodeVarintTypes(dAtA, i, uint64(m.LastBlockHeight))
  6173. i--
  6174. dAtA[i] = 0x20
  6175. }
  6176. if m.AppVersion != 0 {
  6177. i = encodeVarintTypes(dAtA, i, uint64(m.AppVersion))
  6178. i--
  6179. dAtA[i] = 0x18
  6180. }
  6181. if len(m.Version) > 0 {
  6182. i -= len(m.Version)
  6183. copy(dAtA[i:], m.Version)
  6184. i = encodeVarintTypes(dAtA, i, uint64(len(m.Version)))
  6185. i--
  6186. dAtA[i] = 0x12
  6187. }
  6188. if len(m.Data) > 0 {
  6189. i -= len(m.Data)
  6190. copy(dAtA[i:], m.Data)
  6191. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6192. i--
  6193. dAtA[i] = 0xa
  6194. }
  6195. return len(dAtA) - i, nil
  6196. }
  6197. func (m *ResponseSetOption) Marshal() (dAtA []byte, err error) {
  6198. size := m.Size()
  6199. dAtA = make([]byte, size)
  6200. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6201. if err != nil {
  6202. return nil, err
  6203. }
  6204. return dAtA[:n], nil
  6205. }
  6206. func (m *ResponseSetOption) MarshalTo(dAtA []byte) (int, error) {
  6207. size := m.Size()
  6208. return m.MarshalToSizedBuffer(dAtA[:size])
  6209. }
  6210. func (m *ResponseSetOption) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6211. i := len(dAtA)
  6212. _ = i
  6213. var l int
  6214. _ = l
  6215. if m.XXX_unrecognized != nil {
  6216. i -= len(m.XXX_unrecognized)
  6217. copy(dAtA[i:], m.XXX_unrecognized)
  6218. }
  6219. if len(m.Info) > 0 {
  6220. i -= len(m.Info)
  6221. copy(dAtA[i:], m.Info)
  6222. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6223. i--
  6224. dAtA[i] = 0x22
  6225. }
  6226. if len(m.Log) > 0 {
  6227. i -= len(m.Log)
  6228. copy(dAtA[i:], m.Log)
  6229. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6230. i--
  6231. dAtA[i] = 0x1a
  6232. }
  6233. if m.Code != 0 {
  6234. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6235. i--
  6236. dAtA[i] = 0x8
  6237. }
  6238. return len(dAtA) - i, nil
  6239. }
  6240. func (m *ResponseInitChain) Marshal() (dAtA []byte, err error) {
  6241. size := m.Size()
  6242. dAtA = make([]byte, size)
  6243. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6244. if err != nil {
  6245. return nil, err
  6246. }
  6247. return dAtA[:n], nil
  6248. }
  6249. func (m *ResponseInitChain) MarshalTo(dAtA []byte) (int, error) {
  6250. size := m.Size()
  6251. return m.MarshalToSizedBuffer(dAtA[:size])
  6252. }
  6253. func (m *ResponseInitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6254. i := len(dAtA)
  6255. _ = i
  6256. var l int
  6257. _ = l
  6258. if m.XXX_unrecognized != nil {
  6259. i -= len(m.XXX_unrecognized)
  6260. copy(dAtA[i:], m.XXX_unrecognized)
  6261. }
  6262. if len(m.Validators) > 0 {
  6263. for iNdEx := len(m.Validators) - 1; iNdEx >= 0; iNdEx-- {
  6264. {
  6265. size, err := m.Validators[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6266. if err != nil {
  6267. return 0, err
  6268. }
  6269. i -= size
  6270. i = encodeVarintTypes(dAtA, i, uint64(size))
  6271. }
  6272. i--
  6273. dAtA[i] = 0x12
  6274. }
  6275. }
  6276. if m.ConsensusParams != nil {
  6277. {
  6278. size, err := m.ConsensusParams.MarshalToSizedBuffer(dAtA[:i])
  6279. if err != nil {
  6280. return 0, err
  6281. }
  6282. i -= size
  6283. i = encodeVarintTypes(dAtA, i, uint64(size))
  6284. }
  6285. i--
  6286. dAtA[i] = 0xa
  6287. }
  6288. return len(dAtA) - i, nil
  6289. }
  6290. func (m *ResponseQuery) Marshal() (dAtA []byte, err error) {
  6291. size := m.Size()
  6292. dAtA = make([]byte, size)
  6293. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6294. if err != nil {
  6295. return nil, err
  6296. }
  6297. return dAtA[:n], nil
  6298. }
  6299. func (m *ResponseQuery) MarshalTo(dAtA []byte) (int, error) {
  6300. size := m.Size()
  6301. return m.MarshalToSizedBuffer(dAtA[:size])
  6302. }
  6303. func (m *ResponseQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6304. i := len(dAtA)
  6305. _ = i
  6306. var l int
  6307. _ = l
  6308. if m.XXX_unrecognized != nil {
  6309. i -= len(m.XXX_unrecognized)
  6310. copy(dAtA[i:], m.XXX_unrecognized)
  6311. }
  6312. if len(m.Codespace) > 0 {
  6313. i -= len(m.Codespace)
  6314. copy(dAtA[i:], m.Codespace)
  6315. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6316. i--
  6317. dAtA[i] = 0x52
  6318. }
  6319. if m.Height != 0 {
  6320. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  6321. i--
  6322. dAtA[i] = 0x48
  6323. }
  6324. if m.Proof != nil {
  6325. {
  6326. size, err := m.Proof.MarshalToSizedBuffer(dAtA[:i])
  6327. if err != nil {
  6328. return 0, err
  6329. }
  6330. i -= size
  6331. i = encodeVarintTypes(dAtA, i, uint64(size))
  6332. }
  6333. i--
  6334. dAtA[i] = 0x42
  6335. }
  6336. if len(m.Value) > 0 {
  6337. i -= len(m.Value)
  6338. copy(dAtA[i:], m.Value)
  6339. i = encodeVarintTypes(dAtA, i, uint64(len(m.Value)))
  6340. i--
  6341. dAtA[i] = 0x3a
  6342. }
  6343. if len(m.Key) > 0 {
  6344. i -= len(m.Key)
  6345. copy(dAtA[i:], m.Key)
  6346. i = encodeVarintTypes(dAtA, i, uint64(len(m.Key)))
  6347. i--
  6348. dAtA[i] = 0x32
  6349. }
  6350. if m.Index != 0 {
  6351. i = encodeVarintTypes(dAtA, i, uint64(m.Index))
  6352. i--
  6353. dAtA[i] = 0x28
  6354. }
  6355. if len(m.Info) > 0 {
  6356. i -= len(m.Info)
  6357. copy(dAtA[i:], m.Info)
  6358. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6359. i--
  6360. dAtA[i] = 0x22
  6361. }
  6362. if len(m.Log) > 0 {
  6363. i -= len(m.Log)
  6364. copy(dAtA[i:], m.Log)
  6365. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6366. i--
  6367. dAtA[i] = 0x1a
  6368. }
  6369. if m.Code != 0 {
  6370. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6371. i--
  6372. dAtA[i] = 0x8
  6373. }
  6374. return len(dAtA) - i, nil
  6375. }
  6376. func (m *ResponseBeginBlock) Marshal() (dAtA []byte, err error) {
  6377. size := m.Size()
  6378. dAtA = make([]byte, size)
  6379. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6380. if err != nil {
  6381. return nil, err
  6382. }
  6383. return dAtA[:n], nil
  6384. }
  6385. func (m *ResponseBeginBlock) MarshalTo(dAtA []byte) (int, error) {
  6386. size := m.Size()
  6387. return m.MarshalToSizedBuffer(dAtA[:size])
  6388. }
  6389. func (m *ResponseBeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6390. i := len(dAtA)
  6391. _ = i
  6392. var l int
  6393. _ = l
  6394. if m.XXX_unrecognized != nil {
  6395. i -= len(m.XXX_unrecognized)
  6396. copy(dAtA[i:], m.XXX_unrecognized)
  6397. }
  6398. if len(m.Events) > 0 {
  6399. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6400. {
  6401. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6402. if err != nil {
  6403. return 0, err
  6404. }
  6405. i -= size
  6406. i = encodeVarintTypes(dAtA, i, uint64(size))
  6407. }
  6408. i--
  6409. dAtA[i] = 0xa
  6410. }
  6411. }
  6412. return len(dAtA) - i, nil
  6413. }
  6414. func (m *ResponseCheckTx) Marshal() (dAtA []byte, err error) {
  6415. size := m.Size()
  6416. dAtA = make([]byte, size)
  6417. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6418. if err != nil {
  6419. return nil, err
  6420. }
  6421. return dAtA[:n], nil
  6422. }
  6423. func (m *ResponseCheckTx) MarshalTo(dAtA []byte) (int, error) {
  6424. size := m.Size()
  6425. return m.MarshalToSizedBuffer(dAtA[:size])
  6426. }
  6427. func (m *ResponseCheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6428. i := len(dAtA)
  6429. _ = i
  6430. var l int
  6431. _ = l
  6432. if m.XXX_unrecognized != nil {
  6433. i -= len(m.XXX_unrecognized)
  6434. copy(dAtA[i:], m.XXX_unrecognized)
  6435. }
  6436. if len(m.Codespace) > 0 {
  6437. i -= len(m.Codespace)
  6438. copy(dAtA[i:], m.Codespace)
  6439. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6440. i--
  6441. dAtA[i] = 0x42
  6442. }
  6443. if len(m.Events) > 0 {
  6444. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6445. {
  6446. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6447. if err != nil {
  6448. return 0, err
  6449. }
  6450. i -= size
  6451. i = encodeVarintTypes(dAtA, i, uint64(size))
  6452. }
  6453. i--
  6454. dAtA[i] = 0x3a
  6455. }
  6456. }
  6457. if m.GasUsed != 0 {
  6458. i = encodeVarintTypes(dAtA, i, uint64(m.GasUsed))
  6459. i--
  6460. dAtA[i] = 0x30
  6461. }
  6462. if m.GasWanted != 0 {
  6463. i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted))
  6464. i--
  6465. dAtA[i] = 0x28
  6466. }
  6467. if len(m.Info) > 0 {
  6468. i -= len(m.Info)
  6469. copy(dAtA[i:], m.Info)
  6470. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6471. i--
  6472. dAtA[i] = 0x22
  6473. }
  6474. if len(m.Log) > 0 {
  6475. i -= len(m.Log)
  6476. copy(dAtA[i:], m.Log)
  6477. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6478. i--
  6479. dAtA[i] = 0x1a
  6480. }
  6481. if len(m.Data) > 0 {
  6482. i -= len(m.Data)
  6483. copy(dAtA[i:], m.Data)
  6484. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6485. i--
  6486. dAtA[i] = 0x12
  6487. }
  6488. if m.Code != 0 {
  6489. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6490. i--
  6491. dAtA[i] = 0x8
  6492. }
  6493. return len(dAtA) - i, nil
  6494. }
  6495. func (m *ResponseDeliverTx) Marshal() (dAtA []byte, err error) {
  6496. size := m.Size()
  6497. dAtA = make([]byte, size)
  6498. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6499. if err != nil {
  6500. return nil, err
  6501. }
  6502. return dAtA[:n], nil
  6503. }
  6504. func (m *ResponseDeliverTx) MarshalTo(dAtA []byte) (int, error) {
  6505. size := m.Size()
  6506. return m.MarshalToSizedBuffer(dAtA[:size])
  6507. }
  6508. func (m *ResponseDeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6509. i := len(dAtA)
  6510. _ = i
  6511. var l int
  6512. _ = l
  6513. if m.XXX_unrecognized != nil {
  6514. i -= len(m.XXX_unrecognized)
  6515. copy(dAtA[i:], m.XXX_unrecognized)
  6516. }
  6517. if len(m.Codespace) > 0 {
  6518. i -= len(m.Codespace)
  6519. copy(dAtA[i:], m.Codespace)
  6520. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6521. i--
  6522. dAtA[i] = 0x42
  6523. }
  6524. if len(m.Events) > 0 {
  6525. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6526. {
  6527. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6528. if err != nil {
  6529. return 0, err
  6530. }
  6531. i -= size
  6532. i = encodeVarintTypes(dAtA, i, uint64(size))
  6533. }
  6534. i--
  6535. dAtA[i] = 0x3a
  6536. }
  6537. }
  6538. if m.GasUsed != 0 {
  6539. i = encodeVarintTypes(dAtA, i, uint64(m.GasUsed))
  6540. i--
  6541. dAtA[i] = 0x30
  6542. }
  6543. if m.GasWanted != 0 {
  6544. i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted))
  6545. i--
  6546. dAtA[i] = 0x28
  6547. }
  6548. if len(m.Info) > 0 {
  6549. i -= len(m.Info)
  6550. copy(dAtA[i:], m.Info)
  6551. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6552. i--
  6553. dAtA[i] = 0x22
  6554. }
  6555. if len(m.Log) > 0 {
  6556. i -= len(m.Log)
  6557. copy(dAtA[i:], m.Log)
  6558. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6559. i--
  6560. dAtA[i] = 0x1a
  6561. }
  6562. if len(m.Data) > 0 {
  6563. i -= len(m.Data)
  6564. copy(dAtA[i:], m.Data)
  6565. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6566. i--
  6567. dAtA[i] = 0x12
  6568. }
  6569. if m.Code != 0 {
  6570. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6571. i--
  6572. dAtA[i] = 0x8
  6573. }
  6574. return len(dAtA) - i, nil
  6575. }
  6576. func (m *ResponseEndBlock) Marshal() (dAtA []byte, err error) {
  6577. size := m.Size()
  6578. dAtA = make([]byte, size)
  6579. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6580. if err != nil {
  6581. return nil, err
  6582. }
  6583. return dAtA[:n], nil
  6584. }
  6585. func (m *ResponseEndBlock) MarshalTo(dAtA []byte) (int, error) {
  6586. size := m.Size()
  6587. return m.MarshalToSizedBuffer(dAtA[:size])
  6588. }
  6589. func (m *ResponseEndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6590. i := len(dAtA)
  6591. _ = i
  6592. var l int
  6593. _ = l
  6594. if m.XXX_unrecognized != nil {
  6595. i -= len(m.XXX_unrecognized)
  6596. copy(dAtA[i:], m.XXX_unrecognized)
  6597. }
  6598. if len(m.Events) > 0 {
  6599. for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- {
  6600. {
  6601. size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6602. if err != nil {
  6603. return 0, err
  6604. }
  6605. i -= size
  6606. i = encodeVarintTypes(dAtA, i, uint64(size))
  6607. }
  6608. i--
  6609. dAtA[i] = 0x1a
  6610. }
  6611. }
  6612. if m.ConsensusParamUpdates != nil {
  6613. {
  6614. size, err := m.ConsensusParamUpdates.MarshalToSizedBuffer(dAtA[:i])
  6615. if err != nil {
  6616. return 0, err
  6617. }
  6618. i -= size
  6619. i = encodeVarintTypes(dAtA, i, uint64(size))
  6620. }
  6621. i--
  6622. dAtA[i] = 0x12
  6623. }
  6624. if len(m.ValidatorUpdates) > 0 {
  6625. for iNdEx := len(m.ValidatorUpdates) - 1; iNdEx >= 0; iNdEx-- {
  6626. {
  6627. size, err := m.ValidatorUpdates[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6628. if err != nil {
  6629. return 0, err
  6630. }
  6631. i -= size
  6632. i = encodeVarintTypes(dAtA, i, uint64(size))
  6633. }
  6634. i--
  6635. dAtA[i] = 0xa
  6636. }
  6637. }
  6638. return len(dAtA) - i, nil
  6639. }
  6640. func (m *ResponseCommit) Marshal() (dAtA []byte, err error) {
  6641. size := m.Size()
  6642. dAtA = make([]byte, size)
  6643. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6644. if err != nil {
  6645. return nil, err
  6646. }
  6647. return dAtA[:n], nil
  6648. }
  6649. func (m *ResponseCommit) MarshalTo(dAtA []byte) (int, error) {
  6650. size := m.Size()
  6651. return m.MarshalToSizedBuffer(dAtA[:size])
  6652. }
  6653. func (m *ResponseCommit) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6654. i := len(dAtA)
  6655. _ = i
  6656. var l int
  6657. _ = l
  6658. if m.XXX_unrecognized != nil {
  6659. i -= len(m.XXX_unrecognized)
  6660. copy(dAtA[i:], m.XXX_unrecognized)
  6661. }
  6662. if len(m.Data) > 0 {
  6663. i -= len(m.Data)
  6664. copy(dAtA[i:], m.Data)
  6665. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6666. i--
  6667. dAtA[i] = 0x12
  6668. }
  6669. return len(dAtA) - i, nil
  6670. }
  6671. func (m *ConsensusParams) Marshal() (dAtA []byte, err error) {
  6672. size := m.Size()
  6673. dAtA = make([]byte, size)
  6674. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6675. if err != nil {
  6676. return nil, err
  6677. }
  6678. return dAtA[:n], nil
  6679. }
  6680. func (m *ConsensusParams) MarshalTo(dAtA []byte) (int, error) {
  6681. size := m.Size()
  6682. return m.MarshalToSizedBuffer(dAtA[:size])
  6683. }
  6684. func (m *ConsensusParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6685. i := len(dAtA)
  6686. _ = i
  6687. var l int
  6688. _ = l
  6689. if m.XXX_unrecognized != nil {
  6690. i -= len(m.XXX_unrecognized)
  6691. copy(dAtA[i:], m.XXX_unrecognized)
  6692. }
  6693. if m.Validator != nil {
  6694. {
  6695. size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i])
  6696. if err != nil {
  6697. return 0, err
  6698. }
  6699. i -= size
  6700. i = encodeVarintTypes(dAtA, i, uint64(size))
  6701. }
  6702. i--
  6703. dAtA[i] = 0x1a
  6704. }
  6705. if m.Evidence != nil {
  6706. {
  6707. size, err := m.Evidence.MarshalToSizedBuffer(dAtA[:i])
  6708. if err != nil {
  6709. return 0, err
  6710. }
  6711. i -= size
  6712. i = encodeVarintTypes(dAtA, i, uint64(size))
  6713. }
  6714. i--
  6715. dAtA[i] = 0x12
  6716. }
  6717. if m.Block != nil {
  6718. {
  6719. size, err := m.Block.MarshalToSizedBuffer(dAtA[:i])
  6720. if err != nil {
  6721. return 0, err
  6722. }
  6723. i -= size
  6724. i = encodeVarintTypes(dAtA, i, uint64(size))
  6725. }
  6726. i--
  6727. dAtA[i] = 0xa
  6728. }
  6729. return len(dAtA) - i, nil
  6730. }
  6731. func (m *BlockParams) Marshal() (dAtA []byte, err error) {
  6732. size := m.Size()
  6733. dAtA = make([]byte, size)
  6734. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6735. if err != nil {
  6736. return nil, err
  6737. }
  6738. return dAtA[:n], nil
  6739. }
  6740. func (m *BlockParams) MarshalTo(dAtA []byte) (int, error) {
  6741. size := m.Size()
  6742. return m.MarshalToSizedBuffer(dAtA[:size])
  6743. }
  6744. func (m *BlockParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6745. i := len(dAtA)
  6746. _ = i
  6747. var l int
  6748. _ = l
  6749. if m.XXX_unrecognized != nil {
  6750. i -= len(m.XXX_unrecognized)
  6751. copy(dAtA[i:], m.XXX_unrecognized)
  6752. }
  6753. if m.MaxGas != 0 {
  6754. i = encodeVarintTypes(dAtA, i, uint64(m.MaxGas))
  6755. i--
  6756. dAtA[i] = 0x10
  6757. }
  6758. if m.MaxBytes != 0 {
  6759. i = encodeVarintTypes(dAtA, i, uint64(m.MaxBytes))
  6760. i--
  6761. dAtA[i] = 0x8
  6762. }
  6763. return len(dAtA) - i, nil
  6764. }
  6765. func (m *EvidenceParams) Marshal() (dAtA []byte, err error) {
  6766. size := m.Size()
  6767. dAtA = make([]byte, size)
  6768. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6769. if err != nil {
  6770. return nil, err
  6771. }
  6772. return dAtA[:n], nil
  6773. }
  6774. func (m *EvidenceParams) MarshalTo(dAtA []byte) (int, error) {
  6775. size := m.Size()
  6776. return m.MarshalToSizedBuffer(dAtA[:size])
  6777. }
  6778. func (m *EvidenceParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6779. i := len(dAtA)
  6780. _ = i
  6781. var l int
  6782. _ = l
  6783. if m.XXX_unrecognized != nil {
  6784. i -= len(m.XXX_unrecognized)
  6785. copy(dAtA[i:], m.XXX_unrecognized)
  6786. }
  6787. if m.MaxAge != 0 {
  6788. i = encodeVarintTypes(dAtA, i, uint64(m.MaxAge))
  6789. i--
  6790. dAtA[i] = 0x8
  6791. }
  6792. return len(dAtA) - i, nil
  6793. }
  6794. func (m *ValidatorParams) Marshal() (dAtA []byte, err error) {
  6795. size := m.Size()
  6796. dAtA = make([]byte, size)
  6797. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6798. if err != nil {
  6799. return nil, err
  6800. }
  6801. return dAtA[:n], nil
  6802. }
  6803. func (m *ValidatorParams) MarshalTo(dAtA []byte) (int, error) {
  6804. size := m.Size()
  6805. return m.MarshalToSizedBuffer(dAtA[:size])
  6806. }
  6807. func (m *ValidatorParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6808. i := len(dAtA)
  6809. _ = i
  6810. var l int
  6811. _ = l
  6812. if m.XXX_unrecognized != nil {
  6813. i -= len(m.XXX_unrecognized)
  6814. copy(dAtA[i:], m.XXX_unrecognized)
  6815. }
  6816. if len(m.PubKeyTypes) > 0 {
  6817. for iNdEx := len(m.PubKeyTypes) - 1; iNdEx >= 0; iNdEx-- {
  6818. i -= len(m.PubKeyTypes[iNdEx])
  6819. copy(dAtA[i:], m.PubKeyTypes[iNdEx])
  6820. i = encodeVarintTypes(dAtA, i, uint64(len(m.PubKeyTypes[iNdEx])))
  6821. i--
  6822. dAtA[i] = 0xa
  6823. }
  6824. }
  6825. return len(dAtA) - i, nil
  6826. }
  6827. func (m *LastCommitInfo) Marshal() (dAtA []byte, err error) {
  6828. size := m.Size()
  6829. dAtA = make([]byte, size)
  6830. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6831. if err != nil {
  6832. return nil, err
  6833. }
  6834. return dAtA[:n], nil
  6835. }
  6836. func (m *LastCommitInfo) MarshalTo(dAtA []byte) (int, error) {
  6837. size := m.Size()
  6838. return m.MarshalToSizedBuffer(dAtA[:size])
  6839. }
  6840. func (m *LastCommitInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6841. i := len(dAtA)
  6842. _ = i
  6843. var l int
  6844. _ = l
  6845. if m.XXX_unrecognized != nil {
  6846. i -= len(m.XXX_unrecognized)
  6847. copy(dAtA[i:], m.XXX_unrecognized)
  6848. }
  6849. if len(m.Votes) > 0 {
  6850. for iNdEx := len(m.Votes) - 1; iNdEx >= 0; iNdEx-- {
  6851. {
  6852. size, err := m.Votes[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6853. if err != nil {
  6854. return 0, err
  6855. }
  6856. i -= size
  6857. i = encodeVarintTypes(dAtA, i, uint64(size))
  6858. }
  6859. i--
  6860. dAtA[i] = 0x12
  6861. }
  6862. }
  6863. if m.Round != 0 {
  6864. i = encodeVarintTypes(dAtA, i, uint64(m.Round))
  6865. i--
  6866. dAtA[i] = 0x8
  6867. }
  6868. return len(dAtA) - i, nil
  6869. }
  6870. func (m *Event) Marshal() (dAtA []byte, err error) {
  6871. size := m.Size()
  6872. dAtA = make([]byte, size)
  6873. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6874. if err != nil {
  6875. return nil, err
  6876. }
  6877. return dAtA[:n], nil
  6878. }
  6879. func (m *Event) MarshalTo(dAtA []byte) (int, error) {
  6880. size := m.Size()
  6881. return m.MarshalToSizedBuffer(dAtA[:size])
  6882. }
  6883. func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6884. i := len(dAtA)
  6885. _ = i
  6886. var l int
  6887. _ = l
  6888. if m.XXX_unrecognized != nil {
  6889. i -= len(m.XXX_unrecognized)
  6890. copy(dAtA[i:], m.XXX_unrecognized)
  6891. }
  6892. if len(m.Attributes) > 0 {
  6893. for iNdEx := len(m.Attributes) - 1; iNdEx >= 0; iNdEx-- {
  6894. {
  6895. size, err := m.Attributes[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  6896. if err != nil {
  6897. return 0, err
  6898. }
  6899. i -= size
  6900. i = encodeVarintTypes(dAtA, i, uint64(size))
  6901. }
  6902. i--
  6903. dAtA[i] = 0x12
  6904. }
  6905. }
  6906. if len(m.Type) > 0 {
  6907. i -= len(m.Type)
  6908. copy(dAtA[i:], m.Type)
  6909. i = encodeVarintTypes(dAtA, i, uint64(len(m.Type)))
  6910. i--
  6911. dAtA[i] = 0xa
  6912. }
  6913. return len(dAtA) - i, nil
  6914. }
  6915. func (m *Header) Marshal() (dAtA []byte, err error) {
  6916. size := m.Size()
  6917. dAtA = make([]byte, size)
  6918. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  6919. if err != nil {
  6920. return nil, err
  6921. }
  6922. return dAtA[:n], nil
  6923. }
  6924. func (m *Header) MarshalTo(dAtA []byte) (int, error) {
  6925. size := m.Size()
  6926. return m.MarshalToSizedBuffer(dAtA[:size])
  6927. }
  6928. func (m *Header) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  6929. i := len(dAtA)
  6930. _ = i
  6931. var l int
  6932. _ = l
  6933. if m.XXX_unrecognized != nil {
  6934. i -= len(m.XXX_unrecognized)
  6935. copy(dAtA[i:], m.XXX_unrecognized)
  6936. }
  6937. if len(m.ProposerAddress) > 0 {
  6938. i -= len(m.ProposerAddress)
  6939. copy(dAtA[i:], m.ProposerAddress)
  6940. i = encodeVarintTypes(dAtA, i, uint64(len(m.ProposerAddress)))
  6941. i--
  6942. dAtA[i] = 0x72
  6943. }
  6944. if len(m.EvidenceHash) > 0 {
  6945. i -= len(m.EvidenceHash)
  6946. copy(dAtA[i:], m.EvidenceHash)
  6947. i = encodeVarintTypes(dAtA, i, uint64(len(m.EvidenceHash)))
  6948. i--
  6949. dAtA[i] = 0x6a
  6950. }
  6951. if len(m.LastResultsHash) > 0 {
  6952. i -= len(m.LastResultsHash)
  6953. copy(dAtA[i:], m.LastResultsHash)
  6954. i = encodeVarintTypes(dAtA, i, uint64(len(m.LastResultsHash)))
  6955. i--
  6956. dAtA[i] = 0x62
  6957. }
  6958. if len(m.AppHash) > 0 {
  6959. i -= len(m.AppHash)
  6960. copy(dAtA[i:], m.AppHash)
  6961. i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash)))
  6962. i--
  6963. dAtA[i] = 0x5a
  6964. }
  6965. if len(m.ConsensusHash) > 0 {
  6966. i -= len(m.ConsensusHash)
  6967. copy(dAtA[i:], m.ConsensusHash)
  6968. i = encodeVarintTypes(dAtA, i, uint64(len(m.ConsensusHash)))
  6969. i--
  6970. dAtA[i] = 0x52
  6971. }
  6972. if len(m.NextValidatorsHash) > 0 {
  6973. i -= len(m.NextValidatorsHash)
  6974. copy(dAtA[i:], m.NextValidatorsHash)
  6975. i = encodeVarintTypes(dAtA, i, uint64(len(m.NextValidatorsHash)))
  6976. i--
  6977. dAtA[i] = 0x4a
  6978. }
  6979. if len(m.ValidatorsHash) > 0 {
  6980. i -= len(m.ValidatorsHash)
  6981. copy(dAtA[i:], m.ValidatorsHash)
  6982. i = encodeVarintTypes(dAtA, i, uint64(len(m.ValidatorsHash)))
  6983. i--
  6984. dAtA[i] = 0x42
  6985. }
  6986. if len(m.DataHash) > 0 {
  6987. i -= len(m.DataHash)
  6988. copy(dAtA[i:], m.DataHash)
  6989. i = encodeVarintTypes(dAtA, i, uint64(len(m.DataHash)))
  6990. i--
  6991. dAtA[i] = 0x3a
  6992. }
  6993. if len(m.LastCommitHash) > 0 {
  6994. i -= len(m.LastCommitHash)
  6995. copy(dAtA[i:], m.LastCommitHash)
  6996. i = encodeVarintTypes(dAtA, i, uint64(len(m.LastCommitHash)))
  6997. i--
  6998. dAtA[i] = 0x32
  6999. }
  7000. {
  7001. size, err := m.LastBlockId.MarshalToSizedBuffer(dAtA[:i])
  7002. if err != nil {
  7003. return 0, err
  7004. }
  7005. i -= size
  7006. i = encodeVarintTypes(dAtA, i, uint64(size))
  7007. }
  7008. i--
  7009. dAtA[i] = 0x2a
  7010. n35, err35 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
  7011. if err35 != nil {
  7012. return 0, err35
  7013. }
  7014. i -= n35
  7015. i = encodeVarintTypes(dAtA, i, uint64(n35))
  7016. i--
  7017. dAtA[i] = 0x22
  7018. if m.Height != 0 {
  7019. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  7020. i--
  7021. dAtA[i] = 0x18
  7022. }
  7023. if len(m.ChainID) > 0 {
  7024. i -= len(m.ChainID)
  7025. copy(dAtA[i:], m.ChainID)
  7026. i = encodeVarintTypes(dAtA, i, uint64(len(m.ChainID)))
  7027. i--
  7028. dAtA[i] = 0x12
  7029. }
  7030. {
  7031. size, err := m.Version.MarshalToSizedBuffer(dAtA[:i])
  7032. if err != nil {
  7033. return 0, err
  7034. }
  7035. i -= size
  7036. i = encodeVarintTypes(dAtA, i, uint64(size))
  7037. }
  7038. i--
  7039. dAtA[i] = 0xa
  7040. return len(dAtA) - i, nil
  7041. }
  7042. func (m *Version) Marshal() (dAtA []byte, err error) {
  7043. size := m.Size()
  7044. dAtA = make([]byte, size)
  7045. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7046. if err != nil {
  7047. return nil, err
  7048. }
  7049. return dAtA[:n], nil
  7050. }
  7051. func (m *Version) MarshalTo(dAtA []byte) (int, error) {
  7052. size := m.Size()
  7053. return m.MarshalToSizedBuffer(dAtA[:size])
  7054. }
  7055. func (m *Version) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7056. i := len(dAtA)
  7057. _ = i
  7058. var l int
  7059. _ = l
  7060. if m.XXX_unrecognized != nil {
  7061. i -= len(m.XXX_unrecognized)
  7062. copy(dAtA[i:], m.XXX_unrecognized)
  7063. }
  7064. if m.App != 0 {
  7065. i = encodeVarintTypes(dAtA, i, uint64(m.App))
  7066. i--
  7067. dAtA[i] = 0x10
  7068. }
  7069. if m.Block != 0 {
  7070. i = encodeVarintTypes(dAtA, i, uint64(m.Block))
  7071. i--
  7072. dAtA[i] = 0x8
  7073. }
  7074. return len(dAtA) - i, nil
  7075. }
  7076. func (m *BlockID) Marshal() (dAtA []byte, err error) {
  7077. size := m.Size()
  7078. dAtA = make([]byte, size)
  7079. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7080. if err != nil {
  7081. return nil, err
  7082. }
  7083. return dAtA[:n], nil
  7084. }
  7085. func (m *BlockID) MarshalTo(dAtA []byte) (int, error) {
  7086. size := m.Size()
  7087. return m.MarshalToSizedBuffer(dAtA[:size])
  7088. }
  7089. func (m *BlockID) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7090. i := len(dAtA)
  7091. _ = i
  7092. var l int
  7093. _ = l
  7094. if m.XXX_unrecognized != nil {
  7095. i -= len(m.XXX_unrecognized)
  7096. copy(dAtA[i:], m.XXX_unrecognized)
  7097. }
  7098. {
  7099. size, err := m.PartsHeader.MarshalToSizedBuffer(dAtA[:i])
  7100. if err != nil {
  7101. return 0, err
  7102. }
  7103. i -= size
  7104. i = encodeVarintTypes(dAtA, i, uint64(size))
  7105. }
  7106. i--
  7107. dAtA[i] = 0x12
  7108. if len(m.Hash) > 0 {
  7109. i -= len(m.Hash)
  7110. copy(dAtA[i:], m.Hash)
  7111. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  7112. i--
  7113. dAtA[i] = 0xa
  7114. }
  7115. return len(dAtA) - i, nil
  7116. }
  7117. func (m *PartSetHeader) Marshal() (dAtA []byte, err error) {
  7118. size := m.Size()
  7119. dAtA = make([]byte, size)
  7120. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7121. if err != nil {
  7122. return nil, err
  7123. }
  7124. return dAtA[:n], nil
  7125. }
  7126. func (m *PartSetHeader) MarshalTo(dAtA []byte) (int, error) {
  7127. size := m.Size()
  7128. return m.MarshalToSizedBuffer(dAtA[:size])
  7129. }
  7130. func (m *PartSetHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7131. i := len(dAtA)
  7132. _ = i
  7133. var l int
  7134. _ = l
  7135. if m.XXX_unrecognized != nil {
  7136. i -= len(m.XXX_unrecognized)
  7137. copy(dAtA[i:], m.XXX_unrecognized)
  7138. }
  7139. if len(m.Hash) > 0 {
  7140. i -= len(m.Hash)
  7141. copy(dAtA[i:], m.Hash)
  7142. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  7143. i--
  7144. dAtA[i] = 0x12
  7145. }
  7146. if m.Total != 0 {
  7147. i = encodeVarintTypes(dAtA, i, uint64(m.Total))
  7148. i--
  7149. dAtA[i] = 0x8
  7150. }
  7151. return len(dAtA) - i, nil
  7152. }
  7153. func (m *Validator) Marshal() (dAtA []byte, err error) {
  7154. size := m.Size()
  7155. dAtA = make([]byte, size)
  7156. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7157. if err != nil {
  7158. return nil, err
  7159. }
  7160. return dAtA[:n], nil
  7161. }
  7162. func (m *Validator) MarshalTo(dAtA []byte) (int, error) {
  7163. size := m.Size()
  7164. return m.MarshalToSizedBuffer(dAtA[:size])
  7165. }
  7166. func (m *Validator) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7167. i := len(dAtA)
  7168. _ = i
  7169. var l int
  7170. _ = l
  7171. if m.XXX_unrecognized != nil {
  7172. i -= len(m.XXX_unrecognized)
  7173. copy(dAtA[i:], m.XXX_unrecognized)
  7174. }
  7175. if m.Power != 0 {
  7176. i = encodeVarintTypes(dAtA, i, uint64(m.Power))
  7177. i--
  7178. dAtA[i] = 0x18
  7179. }
  7180. if len(m.Address) > 0 {
  7181. i -= len(m.Address)
  7182. copy(dAtA[i:], m.Address)
  7183. i = encodeVarintTypes(dAtA, i, uint64(len(m.Address)))
  7184. i--
  7185. dAtA[i] = 0xa
  7186. }
  7187. return len(dAtA) - i, nil
  7188. }
  7189. func (m *ValidatorUpdate) Marshal() (dAtA []byte, err error) {
  7190. size := m.Size()
  7191. dAtA = make([]byte, size)
  7192. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7193. if err != nil {
  7194. return nil, err
  7195. }
  7196. return dAtA[:n], nil
  7197. }
  7198. func (m *ValidatorUpdate) MarshalTo(dAtA []byte) (int, error) {
  7199. size := m.Size()
  7200. return m.MarshalToSizedBuffer(dAtA[:size])
  7201. }
  7202. func (m *ValidatorUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7203. i := len(dAtA)
  7204. _ = i
  7205. var l int
  7206. _ = l
  7207. if m.XXX_unrecognized != nil {
  7208. i -= len(m.XXX_unrecognized)
  7209. copy(dAtA[i:], m.XXX_unrecognized)
  7210. }
  7211. if m.Power != 0 {
  7212. i = encodeVarintTypes(dAtA, i, uint64(m.Power))
  7213. i--
  7214. dAtA[i] = 0x10
  7215. }
  7216. {
  7217. size, err := m.PubKey.MarshalToSizedBuffer(dAtA[:i])
  7218. if err != nil {
  7219. return 0, err
  7220. }
  7221. i -= size
  7222. i = encodeVarintTypes(dAtA, i, uint64(size))
  7223. }
  7224. i--
  7225. dAtA[i] = 0xa
  7226. return len(dAtA) - i, nil
  7227. }
  7228. func (m *VoteInfo) Marshal() (dAtA []byte, err error) {
  7229. size := m.Size()
  7230. dAtA = make([]byte, size)
  7231. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7232. if err != nil {
  7233. return nil, err
  7234. }
  7235. return dAtA[:n], nil
  7236. }
  7237. func (m *VoteInfo) MarshalTo(dAtA []byte) (int, error) {
  7238. size := m.Size()
  7239. return m.MarshalToSizedBuffer(dAtA[:size])
  7240. }
  7241. func (m *VoteInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7242. i := len(dAtA)
  7243. _ = i
  7244. var l int
  7245. _ = l
  7246. if m.XXX_unrecognized != nil {
  7247. i -= len(m.XXX_unrecognized)
  7248. copy(dAtA[i:], m.XXX_unrecognized)
  7249. }
  7250. if m.SignedLastBlock {
  7251. i--
  7252. if m.SignedLastBlock {
  7253. dAtA[i] = 1
  7254. } else {
  7255. dAtA[i] = 0
  7256. }
  7257. i--
  7258. dAtA[i] = 0x10
  7259. }
  7260. {
  7261. size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i])
  7262. if err != nil {
  7263. return 0, err
  7264. }
  7265. i -= size
  7266. i = encodeVarintTypes(dAtA, i, uint64(size))
  7267. }
  7268. i--
  7269. dAtA[i] = 0xa
  7270. return len(dAtA) - i, nil
  7271. }
  7272. func (m *PubKey) Marshal() (dAtA []byte, err error) {
  7273. size := m.Size()
  7274. dAtA = make([]byte, size)
  7275. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7276. if err != nil {
  7277. return nil, err
  7278. }
  7279. return dAtA[:n], nil
  7280. }
  7281. func (m *PubKey) MarshalTo(dAtA []byte) (int, error) {
  7282. size := m.Size()
  7283. return m.MarshalToSizedBuffer(dAtA[:size])
  7284. }
  7285. func (m *PubKey) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7286. i := len(dAtA)
  7287. _ = i
  7288. var l int
  7289. _ = l
  7290. if m.XXX_unrecognized != nil {
  7291. i -= len(m.XXX_unrecognized)
  7292. copy(dAtA[i:], m.XXX_unrecognized)
  7293. }
  7294. if len(m.Data) > 0 {
  7295. i -= len(m.Data)
  7296. copy(dAtA[i:], m.Data)
  7297. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  7298. i--
  7299. dAtA[i] = 0x12
  7300. }
  7301. if len(m.Type) > 0 {
  7302. i -= len(m.Type)
  7303. copy(dAtA[i:], m.Type)
  7304. i = encodeVarintTypes(dAtA, i, uint64(len(m.Type)))
  7305. i--
  7306. dAtA[i] = 0xa
  7307. }
  7308. return len(dAtA) - i, nil
  7309. }
  7310. func (m *Evidence) Marshal() (dAtA []byte, err error) {
  7311. size := m.Size()
  7312. dAtA = make([]byte, size)
  7313. n, err := m.MarshalToSizedBuffer(dAtA[:size])
  7314. if err != nil {
  7315. return nil, err
  7316. }
  7317. return dAtA[:n], nil
  7318. }
  7319. func (m *Evidence) MarshalTo(dAtA []byte) (int, error) {
  7320. size := m.Size()
  7321. return m.MarshalToSizedBuffer(dAtA[:size])
  7322. }
  7323. func (m *Evidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  7324. i := len(dAtA)
  7325. _ = i
  7326. var l int
  7327. _ = l
  7328. if m.XXX_unrecognized != nil {
  7329. i -= len(m.XXX_unrecognized)
  7330. copy(dAtA[i:], m.XXX_unrecognized)
  7331. }
  7332. if m.TotalVotingPower != 0 {
  7333. i = encodeVarintTypes(dAtA, i, uint64(m.TotalVotingPower))
  7334. i--
  7335. dAtA[i] = 0x28
  7336. }
  7337. n40, err40 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
  7338. if err40 != nil {
  7339. return 0, err40
  7340. }
  7341. i -= n40
  7342. i = encodeVarintTypes(dAtA, i, uint64(n40))
  7343. i--
  7344. dAtA[i] = 0x22
  7345. if m.Height != 0 {
  7346. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  7347. i--
  7348. dAtA[i] = 0x18
  7349. }
  7350. {
  7351. size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i])
  7352. if err != nil {
  7353. return 0, err
  7354. }
  7355. i -= size
  7356. i = encodeVarintTypes(dAtA, i, uint64(size))
  7357. }
  7358. i--
  7359. dAtA[i] = 0x12
  7360. if len(m.Type) > 0 {
  7361. i -= len(m.Type)
  7362. copy(dAtA[i:], m.Type)
  7363. i = encodeVarintTypes(dAtA, i, uint64(len(m.Type)))
  7364. i--
  7365. dAtA[i] = 0xa
  7366. }
  7367. return len(dAtA) - i, nil
  7368. }
  7369. func encodeVarintTypes(dAtA []byte, offset int, v uint64) int {
  7370. offset -= sovTypes(v)
  7371. base := offset
  7372. for v >= 1<<7 {
  7373. dAtA[offset] = uint8(v&0x7f | 0x80)
  7374. v >>= 7
  7375. offset++
  7376. }
  7377. dAtA[offset] = uint8(v)
  7378. return base
  7379. }
  7380. func NewPopulatedRequest(r randyTypes, easy bool) *Request {
  7381. this := &Request{}
  7382. oneofNumber_Value := []int32{2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 19}[r.Intn(11)]
  7383. switch oneofNumber_Value {
  7384. case 2:
  7385. this.Value = NewPopulatedRequest_Echo(r, easy)
  7386. case 3:
  7387. this.Value = NewPopulatedRequest_Flush(r, easy)
  7388. case 4:
  7389. this.Value = NewPopulatedRequest_Info(r, easy)
  7390. case 5:
  7391. this.Value = NewPopulatedRequest_SetOption(r, easy)
  7392. case 6:
  7393. this.Value = NewPopulatedRequest_InitChain(r, easy)
  7394. case 7:
  7395. this.Value = NewPopulatedRequest_Query(r, easy)
  7396. case 8:
  7397. this.Value = NewPopulatedRequest_BeginBlock(r, easy)
  7398. case 9:
  7399. this.Value = NewPopulatedRequest_CheckTx(r, easy)
  7400. case 11:
  7401. this.Value = NewPopulatedRequest_EndBlock(r, easy)
  7402. case 12:
  7403. this.Value = NewPopulatedRequest_Commit(r, easy)
  7404. case 19:
  7405. this.Value = NewPopulatedRequest_DeliverTx(r, easy)
  7406. }
  7407. if !easy && r.Intn(10) != 0 {
  7408. this.XXX_unrecognized = randUnrecognizedTypes(r, 20)
  7409. }
  7410. return this
  7411. }
  7412. func NewPopulatedRequest_Echo(r randyTypes, easy bool) *Request_Echo {
  7413. this := &Request_Echo{}
  7414. this.Echo = NewPopulatedRequestEcho(r, easy)
  7415. return this
  7416. }
  7417. func NewPopulatedRequest_Flush(r randyTypes, easy bool) *Request_Flush {
  7418. this := &Request_Flush{}
  7419. this.Flush = NewPopulatedRequestFlush(r, easy)
  7420. return this
  7421. }
  7422. func NewPopulatedRequest_Info(r randyTypes, easy bool) *Request_Info {
  7423. this := &Request_Info{}
  7424. this.Info = NewPopulatedRequestInfo(r, easy)
  7425. return this
  7426. }
  7427. func NewPopulatedRequest_SetOption(r randyTypes, easy bool) *Request_SetOption {
  7428. this := &Request_SetOption{}
  7429. this.SetOption = NewPopulatedRequestSetOption(r, easy)
  7430. return this
  7431. }
  7432. func NewPopulatedRequest_InitChain(r randyTypes, easy bool) *Request_InitChain {
  7433. this := &Request_InitChain{}
  7434. this.InitChain = NewPopulatedRequestInitChain(r, easy)
  7435. return this
  7436. }
  7437. func NewPopulatedRequest_Query(r randyTypes, easy bool) *Request_Query {
  7438. this := &Request_Query{}
  7439. this.Query = NewPopulatedRequestQuery(r, easy)
  7440. return this
  7441. }
  7442. func NewPopulatedRequest_BeginBlock(r randyTypes, easy bool) *Request_BeginBlock {
  7443. this := &Request_BeginBlock{}
  7444. this.BeginBlock = NewPopulatedRequestBeginBlock(r, easy)
  7445. return this
  7446. }
  7447. func NewPopulatedRequest_CheckTx(r randyTypes, easy bool) *Request_CheckTx {
  7448. this := &Request_CheckTx{}
  7449. this.CheckTx = NewPopulatedRequestCheckTx(r, easy)
  7450. return this
  7451. }
  7452. func NewPopulatedRequest_EndBlock(r randyTypes, easy bool) *Request_EndBlock {
  7453. this := &Request_EndBlock{}
  7454. this.EndBlock = NewPopulatedRequestEndBlock(r, easy)
  7455. return this
  7456. }
  7457. func NewPopulatedRequest_Commit(r randyTypes, easy bool) *Request_Commit {
  7458. this := &Request_Commit{}
  7459. this.Commit = NewPopulatedRequestCommit(r, easy)
  7460. return this
  7461. }
  7462. func NewPopulatedRequest_DeliverTx(r randyTypes, easy bool) *Request_DeliverTx {
  7463. this := &Request_DeliverTx{}
  7464. this.DeliverTx = NewPopulatedRequestDeliverTx(r, easy)
  7465. return this
  7466. }
  7467. func NewPopulatedRequestEcho(r randyTypes, easy bool) *RequestEcho {
  7468. this := &RequestEcho{}
  7469. this.Message = string(randStringTypes(r))
  7470. if !easy && r.Intn(10) != 0 {
  7471. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7472. }
  7473. return this
  7474. }
  7475. func NewPopulatedRequestFlush(r randyTypes, easy bool) *RequestFlush {
  7476. this := &RequestFlush{}
  7477. if !easy && r.Intn(10) != 0 {
  7478. this.XXX_unrecognized = randUnrecognizedTypes(r, 1)
  7479. }
  7480. return this
  7481. }
  7482. func NewPopulatedRequestInfo(r randyTypes, easy bool) *RequestInfo {
  7483. this := &RequestInfo{}
  7484. this.Version = string(randStringTypes(r))
  7485. this.BlockVersion = uint64(uint64(r.Uint32()))
  7486. this.P2PVersion = uint64(uint64(r.Uint32()))
  7487. if !easy && r.Intn(10) != 0 {
  7488. this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
  7489. }
  7490. return this
  7491. }
  7492. func NewPopulatedRequestSetOption(r randyTypes, easy bool) *RequestSetOption {
  7493. this := &RequestSetOption{}
  7494. this.Key = string(randStringTypes(r))
  7495. this.Value = string(randStringTypes(r))
  7496. if !easy && r.Intn(10) != 0 {
  7497. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7498. }
  7499. return this
  7500. }
  7501. func NewPopulatedRequestInitChain(r randyTypes, easy bool) *RequestInitChain {
  7502. this := &RequestInitChain{}
  7503. v1 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy)
  7504. this.Time = *v1
  7505. this.ChainId = string(randStringTypes(r))
  7506. if r.Intn(5) != 0 {
  7507. this.ConsensusParams = NewPopulatedConsensusParams(r, easy)
  7508. }
  7509. if r.Intn(5) != 0 {
  7510. v2 := r.Intn(5)
  7511. this.Validators = make([]ValidatorUpdate, v2)
  7512. for i := 0; i < v2; i++ {
  7513. v3 := NewPopulatedValidatorUpdate(r, easy)
  7514. this.Validators[i] = *v3
  7515. }
  7516. }
  7517. v4 := r.Intn(100)
  7518. this.AppStateBytes = make([]byte, v4)
  7519. for i := 0; i < v4; i++ {
  7520. this.AppStateBytes[i] = byte(r.Intn(256))
  7521. }
  7522. if !easy && r.Intn(10) != 0 {
  7523. this.XXX_unrecognized = randUnrecognizedTypes(r, 6)
  7524. }
  7525. return this
  7526. }
  7527. func NewPopulatedRequestQuery(r randyTypes, easy bool) *RequestQuery {
  7528. this := &RequestQuery{}
  7529. v5 := r.Intn(100)
  7530. this.Data = make([]byte, v5)
  7531. for i := 0; i < v5; i++ {
  7532. this.Data[i] = byte(r.Intn(256))
  7533. }
  7534. this.Path = string(randStringTypes(r))
  7535. this.Height = int64(r.Int63())
  7536. if r.Intn(2) == 0 {
  7537. this.Height *= -1
  7538. }
  7539. this.Prove = bool(bool(r.Intn(2) == 0))
  7540. if !easy && r.Intn(10) != 0 {
  7541. this.XXX_unrecognized = randUnrecognizedTypes(r, 5)
  7542. }
  7543. return this
  7544. }
  7545. func NewPopulatedRequestBeginBlock(r randyTypes, easy bool) *RequestBeginBlock {
  7546. this := &RequestBeginBlock{}
  7547. v6 := r.Intn(100)
  7548. this.Hash = make([]byte, v6)
  7549. for i := 0; i < v6; i++ {
  7550. this.Hash[i] = byte(r.Intn(256))
  7551. }
  7552. v7 := NewPopulatedHeader(r, easy)
  7553. this.Header = *v7
  7554. v8 := NewPopulatedLastCommitInfo(r, easy)
  7555. this.LastCommitInfo = *v8
  7556. if r.Intn(5) != 0 {
  7557. v9 := r.Intn(5)
  7558. this.ByzantineValidators = make([]Evidence, v9)
  7559. for i := 0; i < v9; i++ {
  7560. v10 := NewPopulatedEvidence(r, easy)
  7561. this.ByzantineValidators[i] = *v10
  7562. }
  7563. }
  7564. if !easy && r.Intn(10) != 0 {
  7565. this.XXX_unrecognized = randUnrecognizedTypes(r, 5)
  7566. }
  7567. return this
  7568. }
  7569. func NewPopulatedRequestCheckTx(r randyTypes, easy bool) *RequestCheckTx {
  7570. this := &RequestCheckTx{}
  7571. v11 := r.Intn(100)
  7572. this.Tx = make([]byte, v11)
  7573. for i := 0; i < v11; i++ {
  7574. this.Tx[i] = byte(r.Intn(256))
  7575. }
  7576. this.Type = CheckTxType([]int32{0, 1}[r.Intn(2)])
  7577. if !easy && r.Intn(10) != 0 {
  7578. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7579. }
  7580. return this
  7581. }
  7582. func NewPopulatedRequestDeliverTx(r randyTypes, easy bool) *RequestDeliverTx {
  7583. this := &RequestDeliverTx{}
  7584. v12 := r.Intn(100)
  7585. this.Tx = make([]byte, v12)
  7586. for i := 0; i < v12; i++ {
  7587. this.Tx[i] = byte(r.Intn(256))
  7588. }
  7589. if !easy && r.Intn(10) != 0 {
  7590. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7591. }
  7592. return this
  7593. }
  7594. func NewPopulatedRequestEndBlock(r randyTypes, easy bool) *RequestEndBlock {
  7595. this := &RequestEndBlock{}
  7596. this.Height = int64(r.Int63())
  7597. if r.Intn(2) == 0 {
  7598. this.Height *= -1
  7599. }
  7600. if !easy && r.Intn(10) != 0 {
  7601. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7602. }
  7603. return this
  7604. }
  7605. func NewPopulatedRequestCommit(r randyTypes, easy bool) *RequestCommit {
  7606. this := &RequestCommit{}
  7607. if !easy && r.Intn(10) != 0 {
  7608. this.XXX_unrecognized = randUnrecognizedTypes(r, 1)
  7609. }
  7610. return this
  7611. }
  7612. func NewPopulatedResponse(r randyTypes, easy bool) *Response {
  7613. this := &Response{}
  7614. oneofNumber_Value := []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}[r.Intn(12)]
  7615. switch oneofNumber_Value {
  7616. case 1:
  7617. this.Value = NewPopulatedResponse_Exception(r, easy)
  7618. case 2:
  7619. this.Value = NewPopulatedResponse_Echo(r, easy)
  7620. case 3:
  7621. this.Value = NewPopulatedResponse_Flush(r, easy)
  7622. case 4:
  7623. this.Value = NewPopulatedResponse_Info(r, easy)
  7624. case 5:
  7625. this.Value = NewPopulatedResponse_SetOption(r, easy)
  7626. case 6:
  7627. this.Value = NewPopulatedResponse_InitChain(r, easy)
  7628. case 7:
  7629. this.Value = NewPopulatedResponse_Query(r, easy)
  7630. case 8:
  7631. this.Value = NewPopulatedResponse_BeginBlock(r, easy)
  7632. case 9:
  7633. this.Value = NewPopulatedResponse_CheckTx(r, easy)
  7634. case 10:
  7635. this.Value = NewPopulatedResponse_DeliverTx(r, easy)
  7636. case 11:
  7637. this.Value = NewPopulatedResponse_EndBlock(r, easy)
  7638. case 12:
  7639. this.Value = NewPopulatedResponse_Commit(r, easy)
  7640. }
  7641. if !easy && r.Intn(10) != 0 {
  7642. this.XXX_unrecognized = randUnrecognizedTypes(r, 13)
  7643. }
  7644. return this
  7645. }
  7646. func NewPopulatedResponse_Exception(r randyTypes, easy bool) *Response_Exception {
  7647. this := &Response_Exception{}
  7648. this.Exception = NewPopulatedResponseException(r, easy)
  7649. return this
  7650. }
  7651. func NewPopulatedResponse_Echo(r randyTypes, easy bool) *Response_Echo {
  7652. this := &Response_Echo{}
  7653. this.Echo = NewPopulatedResponseEcho(r, easy)
  7654. return this
  7655. }
  7656. func NewPopulatedResponse_Flush(r randyTypes, easy bool) *Response_Flush {
  7657. this := &Response_Flush{}
  7658. this.Flush = NewPopulatedResponseFlush(r, easy)
  7659. return this
  7660. }
  7661. func NewPopulatedResponse_Info(r randyTypes, easy bool) *Response_Info {
  7662. this := &Response_Info{}
  7663. this.Info = NewPopulatedResponseInfo(r, easy)
  7664. return this
  7665. }
  7666. func NewPopulatedResponse_SetOption(r randyTypes, easy bool) *Response_SetOption {
  7667. this := &Response_SetOption{}
  7668. this.SetOption = NewPopulatedResponseSetOption(r, easy)
  7669. return this
  7670. }
  7671. func NewPopulatedResponse_InitChain(r randyTypes, easy bool) *Response_InitChain {
  7672. this := &Response_InitChain{}
  7673. this.InitChain = NewPopulatedResponseInitChain(r, easy)
  7674. return this
  7675. }
  7676. func NewPopulatedResponse_Query(r randyTypes, easy bool) *Response_Query {
  7677. this := &Response_Query{}
  7678. this.Query = NewPopulatedResponseQuery(r, easy)
  7679. return this
  7680. }
  7681. func NewPopulatedResponse_BeginBlock(r randyTypes, easy bool) *Response_BeginBlock {
  7682. this := &Response_BeginBlock{}
  7683. this.BeginBlock = NewPopulatedResponseBeginBlock(r, easy)
  7684. return this
  7685. }
  7686. func NewPopulatedResponse_CheckTx(r randyTypes, easy bool) *Response_CheckTx {
  7687. this := &Response_CheckTx{}
  7688. this.CheckTx = NewPopulatedResponseCheckTx(r, easy)
  7689. return this
  7690. }
  7691. func NewPopulatedResponse_DeliverTx(r randyTypes, easy bool) *Response_DeliverTx {
  7692. this := &Response_DeliverTx{}
  7693. this.DeliverTx = NewPopulatedResponseDeliverTx(r, easy)
  7694. return this
  7695. }
  7696. func NewPopulatedResponse_EndBlock(r randyTypes, easy bool) *Response_EndBlock {
  7697. this := &Response_EndBlock{}
  7698. this.EndBlock = NewPopulatedResponseEndBlock(r, easy)
  7699. return this
  7700. }
  7701. func NewPopulatedResponse_Commit(r randyTypes, easy bool) *Response_Commit {
  7702. this := &Response_Commit{}
  7703. this.Commit = NewPopulatedResponseCommit(r, easy)
  7704. return this
  7705. }
  7706. func NewPopulatedResponseException(r randyTypes, easy bool) *ResponseException {
  7707. this := &ResponseException{}
  7708. this.Error = string(randStringTypes(r))
  7709. if !easy && r.Intn(10) != 0 {
  7710. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7711. }
  7712. return this
  7713. }
  7714. func NewPopulatedResponseEcho(r randyTypes, easy bool) *ResponseEcho {
  7715. this := &ResponseEcho{}
  7716. this.Message = string(randStringTypes(r))
  7717. if !easy && r.Intn(10) != 0 {
  7718. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7719. }
  7720. return this
  7721. }
  7722. func NewPopulatedResponseFlush(r randyTypes, easy bool) *ResponseFlush {
  7723. this := &ResponseFlush{}
  7724. if !easy && r.Intn(10) != 0 {
  7725. this.XXX_unrecognized = randUnrecognizedTypes(r, 1)
  7726. }
  7727. return this
  7728. }
  7729. func NewPopulatedResponseInfo(r randyTypes, easy bool) *ResponseInfo {
  7730. this := &ResponseInfo{}
  7731. this.Data = string(randStringTypes(r))
  7732. this.Version = string(randStringTypes(r))
  7733. this.AppVersion = uint64(uint64(r.Uint32()))
  7734. this.LastBlockHeight = int64(r.Int63())
  7735. if r.Intn(2) == 0 {
  7736. this.LastBlockHeight *= -1
  7737. }
  7738. v13 := r.Intn(100)
  7739. this.LastBlockAppHash = make([]byte, v13)
  7740. for i := 0; i < v13; i++ {
  7741. this.LastBlockAppHash[i] = byte(r.Intn(256))
  7742. }
  7743. if !easy && r.Intn(10) != 0 {
  7744. this.XXX_unrecognized = randUnrecognizedTypes(r, 6)
  7745. }
  7746. return this
  7747. }
  7748. func NewPopulatedResponseSetOption(r randyTypes, easy bool) *ResponseSetOption {
  7749. this := &ResponseSetOption{}
  7750. this.Code = uint32(r.Uint32())
  7751. this.Log = string(randStringTypes(r))
  7752. this.Info = string(randStringTypes(r))
  7753. if !easy && r.Intn(10) != 0 {
  7754. this.XXX_unrecognized = randUnrecognizedTypes(r, 5)
  7755. }
  7756. return this
  7757. }
  7758. func NewPopulatedResponseInitChain(r randyTypes, easy bool) *ResponseInitChain {
  7759. this := &ResponseInitChain{}
  7760. if r.Intn(5) != 0 {
  7761. this.ConsensusParams = NewPopulatedConsensusParams(r, easy)
  7762. }
  7763. if r.Intn(5) != 0 {
  7764. v14 := r.Intn(5)
  7765. this.Validators = make([]ValidatorUpdate, v14)
  7766. for i := 0; i < v14; i++ {
  7767. v15 := NewPopulatedValidatorUpdate(r, easy)
  7768. this.Validators[i] = *v15
  7769. }
  7770. }
  7771. if !easy && r.Intn(10) != 0 {
  7772. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7773. }
  7774. return this
  7775. }
  7776. func NewPopulatedResponseQuery(r randyTypes, easy bool) *ResponseQuery {
  7777. this := &ResponseQuery{}
  7778. this.Code = uint32(r.Uint32())
  7779. this.Log = string(randStringTypes(r))
  7780. this.Info = string(randStringTypes(r))
  7781. this.Index = int64(r.Int63())
  7782. if r.Intn(2) == 0 {
  7783. this.Index *= -1
  7784. }
  7785. v16 := r.Intn(100)
  7786. this.Key = make([]byte, v16)
  7787. for i := 0; i < v16; i++ {
  7788. this.Key[i] = byte(r.Intn(256))
  7789. }
  7790. v17 := r.Intn(100)
  7791. this.Value = make([]byte, v17)
  7792. for i := 0; i < v17; i++ {
  7793. this.Value[i] = byte(r.Intn(256))
  7794. }
  7795. if r.Intn(5) != 0 {
  7796. this.Proof = merkle.NewPopulatedProof(r, easy)
  7797. }
  7798. this.Height = int64(r.Int63())
  7799. if r.Intn(2) == 0 {
  7800. this.Height *= -1
  7801. }
  7802. this.Codespace = string(randStringTypes(r))
  7803. if !easy && r.Intn(10) != 0 {
  7804. this.XXX_unrecognized = randUnrecognizedTypes(r, 11)
  7805. }
  7806. return this
  7807. }
  7808. func NewPopulatedResponseBeginBlock(r randyTypes, easy bool) *ResponseBeginBlock {
  7809. this := &ResponseBeginBlock{}
  7810. if r.Intn(5) != 0 {
  7811. v18 := r.Intn(5)
  7812. this.Events = make([]Event, v18)
  7813. for i := 0; i < v18; i++ {
  7814. v19 := NewPopulatedEvent(r, easy)
  7815. this.Events[i] = *v19
  7816. }
  7817. }
  7818. if !easy && r.Intn(10) != 0 {
  7819. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7820. }
  7821. return this
  7822. }
  7823. func NewPopulatedResponseCheckTx(r randyTypes, easy bool) *ResponseCheckTx {
  7824. this := &ResponseCheckTx{}
  7825. this.Code = uint32(r.Uint32())
  7826. v20 := r.Intn(100)
  7827. this.Data = make([]byte, v20)
  7828. for i := 0; i < v20; i++ {
  7829. this.Data[i] = byte(r.Intn(256))
  7830. }
  7831. this.Log = string(randStringTypes(r))
  7832. this.Info = string(randStringTypes(r))
  7833. this.GasWanted = int64(r.Int63())
  7834. if r.Intn(2) == 0 {
  7835. this.GasWanted *= -1
  7836. }
  7837. this.GasUsed = int64(r.Int63())
  7838. if r.Intn(2) == 0 {
  7839. this.GasUsed *= -1
  7840. }
  7841. if r.Intn(5) != 0 {
  7842. v21 := r.Intn(5)
  7843. this.Events = make([]Event, v21)
  7844. for i := 0; i < v21; i++ {
  7845. v22 := NewPopulatedEvent(r, easy)
  7846. this.Events[i] = *v22
  7847. }
  7848. }
  7849. this.Codespace = string(randStringTypes(r))
  7850. if !easy && r.Intn(10) != 0 {
  7851. this.XXX_unrecognized = randUnrecognizedTypes(r, 9)
  7852. }
  7853. return this
  7854. }
  7855. func NewPopulatedResponseDeliverTx(r randyTypes, easy bool) *ResponseDeliverTx {
  7856. this := &ResponseDeliverTx{}
  7857. this.Code = uint32(r.Uint32())
  7858. v23 := r.Intn(100)
  7859. this.Data = make([]byte, v23)
  7860. for i := 0; i < v23; i++ {
  7861. this.Data[i] = byte(r.Intn(256))
  7862. }
  7863. this.Log = string(randStringTypes(r))
  7864. this.Info = string(randStringTypes(r))
  7865. this.GasWanted = int64(r.Int63())
  7866. if r.Intn(2) == 0 {
  7867. this.GasWanted *= -1
  7868. }
  7869. this.GasUsed = int64(r.Int63())
  7870. if r.Intn(2) == 0 {
  7871. this.GasUsed *= -1
  7872. }
  7873. if r.Intn(5) != 0 {
  7874. v24 := r.Intn(5)
  7875. this.Events = make([]Event, v24)
  7876. for i := 0; i < v24; i++ {
  7877. v25 := NewPopulatedEvent(r, easy)
  7878. this.Events[i] = *v25
  7879. }
  7880. }
  7881. this.Codespace = string(randStringTypes(r))
  7882. if !easy && r.Intn(10) != 0 {
  7883. this.XXX_unrecognized = randUnrecognizedTypes(r, 9)
  7884. }
  7885. return this
  7886. }
  7887. func NewPopulatedResponseEndBlock(r randyTypes, easy bool) *ResponseEndBlock {
  7888. this := &ResponseEndBlock{}
  7889. if r.Intn(5) != 0 {
  7890. v26 := r.Intn(5)
  7891. this.ValidatorUpdates = make([]ValidatorUpdate, v26)
  7892. for i := 0; i < v26; i++ {
  7893. v27 := NewPopulatedValidatorUpdate(r, easy)
  7894. this.ValidatorUpdates[i] = *v27
  7895. }
  7896. }
  7897. if r.Intn(5) != 0 {
  7898. this.ConsensusParamUpdates = NewPopulatedConsensusParams(r, easy)
  7899. }
  7900. if r.Intn(5) != 0 {
  7901. v28 := r.Intn(5)
  7902. this.Events = make([]Event, v28)
  7903. for i := 0; i < v28; i++ {
  7904. v29 := NewPopulatedEvent(r, easy)
  7905. this.Events[i] = *v29
  7906. }
  7907. }
  7908. if !easy && r.Intn(10) != 0 {
  7909. this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
  7910. }
  7911. return this
  7912. }
  7913. func NewPopulatedResponseCommit(r randyTypes, easy bool) *ResponseCommit {
  7914. this := &ResponseCommit{}
  7915. v30 := r.Intn(100)
  7916. this.Data = make([]byte, v30)
  7917. for i := 0; i < v30; i++ {
  7918. this.Data[i] = byte(r.Intn(256))
  7919. }
  7920. if !easy && r.Intn(10) != 0 {
  7921. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7922. }
  7923. return this
  7924. }
  7925. func NewPopulatedConsensusParams(r randyTypes, easy bool) *ConsensusParams {
  7926. this := &ConsensusParams{}
  7927. if r.Intn(5) != 0 {
  7928. this.Block = NewPopulatedBlockParams(r, easy)
  7929. }
  7930. if r.Intn(5) != 0 {
  7931. this.Evidence = NewPopulatedEvidenceParams(r, easy)
  7932. }
  7933. if r.Intn(5) != 0 {
  7934. this.Validator = NewPopulatedValidatorParams(r, easy)
  7935. }
  7936. if !easy && r.Intn(10) != 0 {
  7937. this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
  7938. }
  7939. return this
  7940. }
  7941. func NewPopulatedBlockParams(r randyTypes, easy bool) *BlockParams {
  7942. this := &BlockParams{}
  7943. this.MaxBytes = int64(r.Int63())
  7944. if r.Intn(2) == 0 {
  7945. this.MaxBytes *= -1
  7946. }
  7947. this.MaxGas = int64(r.Int63())
  7948. if r.Intn(2) == 0 {
  7949. this.MaxGas *= -1
  7950. }
  7951. if !easy && r.Intn(10) != 0 {
  7952. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7953. }
  7954. return this
  7955. }
  7956. func NewPopulatedEvidenceParams(r randyTypes, easy bool) *EvidenceParams {
  7957. this := &EvidenceParams{}
  7958. this.MaxAge = int64(r.Int63())
  7959. if r.Intn(2) == 0 {
  7960. this.MaxAge *= -1
  7961. }
  7962. if !easy && r.Intn(10) != 0 {
  7963. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7964. }
  7965. return this
  7966. }
  7967. func NewPopulatedValidatorParams(r randyTypes, easy bool) *ValidatorParams {
  7968. this := &ValidatorParams{}
  7969. v31 := r.Intn(10)
  7970. this.PubKeyTypes = make([]string, v31)
  7971. for i := 0; i < v31; i++ {
  7972. this.PubKeyTypes[i] = string(randStringTypes(r))
  7973. }
  7974. if !easy && r.Intn(10) != 0 {
  7975. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7976. }
  7977. return this
  7978. }
  7979. func NewPopulatedLastCommitInfo(r randyTypes, easy bool) *LastCommitInfo {
  7980. this := &LastCommitInfo{}
  7981. this.Round = int32(r.Int31())
  7982. if r.Intn(2) == 0 {
  7983. this.Round *= -1
  7984. }
  7985. if r.Intn(5) != 0 {
  7986. v32 := r.Intn(5)
  7987. this.Votes = make([]VoteInfo, v32)
  7988. for i := 0; i < v32; i++ {
  7989. v33 := NewPopulatedVoteInfo(r, easy)
  7990. this.Votes[i] = *v33
  7991. }
  7992. }
  7993. if !easy && r.Intn(10) != 0 {
  7994. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7995. }
  7996. return this
  7997. }
  7998. func NewPopulatedEvent(r randyTypes, easy bool) *Event {
  7999. this := &Event{}
  8000. this.Type = string(randStringTypes(r))
  8001. if r.Intn(5) != 0 {
  8002. v34 := r.Intn(5)
  8003. this.Attributes = make([]kv.Pair, v34)
  8004. for i := 0; i < v34; i++ {
  8005. v35 := kv.NewPopulatedPair(r, easy)
  8006. this.Attributes[i] = *v35
  8007. }
  8008. }
  8009. if !easy && r.Intn(10) != 0 {
  8010. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8011. }
  8012. return this
  8013. }
  8014. func NewPopulatedHeader(r randyTypes, easy bool) *Header {
  8015. this := &Header{}
  8016. v36 := NewPopulatedVersion(r, easy)
  8017. this.Version = *v36
  8018. this.ChainID = string(randStringTypes(r))
  8019. this.Height = int64(r.Int63())
  8020. if r.Intn(2) == 0 {
  8021. this.Height *= -1
  8022. }
  8023. v37 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy)
  8024. this.Time = *v37
  8025. v38 := NewPopulatedBlockID(r, easy)
  8026. this.LastBlockId = *v38
  8027. v39 := r.Intn(100)
  8028. this.LastCommitHash = make([]byte, v39)
  8029. for i := 0; i < v39; i++ {
  8030. this.LastCommitHash[i] = byte(r.Intn(256))
  8031. }
  8032. v40 := r.Intn(100)
  8033. this.DataHash = make([]byte, v40)
  8034. for i := 0; i < v40; i++ {
  8035. this.DataHash[i] = byte(r.Intn(256))
  8036. }
  8037. v41 := r.Intn(100)
  8038. this.ValidatorsHash = make([]byte, v41)
  8039. for i := 0; i < v41; i++ {
  8040. this.ValidatorsHash[i] = byte(r.Intn(256))
  8041. }
  8042. v42 := r.Intn(100)
  8043. this.NextValidatorsHash = make([]byte, v42)
  8044. for i := 0; i < v42; i++ {
  8045. this.NextValidatorsHash[i] = byte(r.Intn(256))
  8046. }
  8047. v43 := r.Intn(100)
  8048. this.ConsensusHash = make([]byte, v43)
  8049. for i := 0; i < v43; i++ {
  8050. this.ConsensusHash[i] = byte(r.Intn(256))
  8051. }
  8052. v44 := r.Intn(100)
  8053. this.AppHash = make([]byte, v44)
  8054. for i := 0; i < v44; i++ {
  8055. this.AppHash[i] = byte(r.Intn(256))
  8056. }
  8057. v45 := r.Intn(100)
  8058. this.LastResultsHash = make([]byte, v45)
  8059. for i := 0; i < v45; i++ {
  8060. this.LastResultsHash[i] = byte(r.Intn(256))
  8061. }
  8062. v46 := r.Intn(100)
  8063. this.EvidenceHash = make([]byte, v46)
  8064. for i := 0; i < v46; i++ {
  8065. this.EvidenceHash[i] = byte(r.Intn(256))
  8066. }
  8067. v47 := r.Intn(100)
  8068. this.ProposerAddress = make([]byte, v47)
  8069. for i := 0; i < v47; i++ {
  8070. this.ProposerAddress[i] = byte(r.Intn(256))
  8071. }
  8072. if !easy && r.Intn(10) != 0 {
  8073. this.XXX_unrecognized = randUnrecognizedTypes(r, 15)
  8074. }
  8075. return this
  8076. }
  8077. func NewPopulatedVersion(r randyTypes, easy bool) *Version {
  8078. this := &Version{}
  8079. this.Block = uint64(uint64(r.Uint32()))
  8080. this.App = uint64(uint64(r.Uint32()))
  8081. if !easy && r.Intn(10) != 0 {
  8082. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8083. }
  8084. return this
  8085. }
  8086. func NewPopulatedBlockID(r randyTypes, easy bool) *BlockID {
  8087. this := &BlockID{}
  8088. v48 := r.Intn(100)
  8089. this.Hash = make([]byte, v48)
  8090. for i := 0; i < v48; i++ {
  8091. this.Hash[i] = byte(r.Intn(256))
  8092. }
  8093. v49 := NewPopulatedPartSetHeader(r, easy)
  8094. this.PartsHeader = *v49
  8095. if !easy && r.Intn(10) != 0 {
  8096. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8097. }
  8098. return this
  8099. }
  8100. func NewPopulatedPartSetHeader(r randyTypes, easy bool) *PartSetHeader {
  8101. this := &PartSetHeader{}
  8102. this.Total = int32(r.Int31())
  8103. if r.Intn(2) == 0 {
  8104. this.Total *= -1
  8105. }
  8106. v50 := r.Intn(100)
  8107. this.Hash = make([]byte, v50)
  8108. for i := 0; i < v50; i++ {
  8109. this.Hash[i] = byte(r.Intn(256))
  8110. }
  8111. if !easy && r.Intn(10) != 0 {
  8112. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8113. }
  8114. return this
  8115. }
  8116. func NewPopulatedValidator(r randyTypes, easy bool) *Validator {
  8117. this := &Validator{}
  8118. v51 := r.Intn(100)
  8119. this.Address = make([]byte, v51)
  8120. for i := 0; i < v51; i++ {
  8121. this.Address[i] = byte(r.Intn(256))
  8122. }
  8123. this.Power = int64(r.Int63())
  8124. if r.Intn(2) == 0 {
  8125. this.Power *= -1
  8126. }
  8127. if !easy && r.Intn(10) != 0 {
  8128. this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
  8129. }
  8130. return this
  8131. }
  8132. func NewPopulatedValidatorUpdate(r randyTypes, easy bool) *ValidatorUpdate {
  8133. this := &ValidatorUpdate{}
  8134. v52 := NewPopulatedPubKey(r, easy)
  8135. this.PubKey = *v52
  8136. this.Power = int64(r.Int63())
  8137. if r.Intn(2) == 0 {
  8138. this.Power *= -1
  8139. }
  8140. if !easy && r.Intn(10) != 0 {
  8141. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8142. }
  8143. return this
  8144. }
  8145. func NewPopulatedVoteInfo(r randyTypes, easy bool) *VoteInfo {
  8146. this := &VoteInfo{}
  8147. v53 := NewPopulatedValidator(r, easy)
  8148. this.Validator = *v53
  8149. this.SignedLastBlock = bool(bool(r.Intn(2) == 0))
  8150. if !easy && r.Intn(10) != 0 {
  8151. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8152. }
  8153. return this
  8154. }
  8155. func NewPopulatedPubKey(r randyTypes, easy bool) *PubKey {
  8156. this := &PubKey{}
  8157. this.Type = string(randStringTypes(r))
  8158. v54 := r.Intn(100)
  8159. this.Data = make([]byte, v54)
  8160. for i := 0; i < v54; i++ {
  8161. this.Data[i] = byte(r.Intn(256))
  8162. }
  8163. if !easy && r.Intn(10) != 0 {
  8164. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8165. }
  8166. return this
  8167. }
  8168. func NewPopulatedEvidence(r randyTypes, easy bool) *Evidence {
  8169. this := &Evidence{}
  8170. this.Type = string(randStringTypes(r))
  8171. v55 := NewPopulatedValidator(r, easy)
  8172. this.Validator = *v55
  8173. this.Height = int64(r.Int63())
  8174. if r.Intn(2) == 0 {
  8175. this.Height *= -1
  8176. }
  8177. v56 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy)
  8178. this.Time = *v56
  8179. this.TotalVotingPower = int64(r.Int63())
  8180. if r.Intn(2) == 0 {
  8181. this.TotalVotingPower *= -1
  8182. }
  8183. if !easy && r.Intn(10) != 0 {
  8184. this.XXX_unrecognized = randUnrecognizedTypes(r, 6)
  8185. }
  8186. return this
  8187. }
  8188. type randyTypes interface {
  8189. Float32() float32
  8190. Float64() float64
  8191. Int63() int64
  8192. Int31() int32
  8193. Uint32() uint32
  8194. Intn(n int) int
  8195. }
  8196. func randUTF8RuneTypes(r randyTypes) rune {
  8197. ru := r.Intn(62)
  8198. if ru < 10 {
  8199. return rune(ru + 48)
  8200. } else if ru < 36 {
  8201. return rune(ru + 55)
  8202. }
  8203. return rune(ru + 61)
  8204. }
  8205. func randStringTypes(r randyTypes) string {
  8206. v57 := r.Intn(100)
  8207. tmps := make([]rune, v57)
  8208. for i := 0; i < v57; i++ {
  8209. tmps[i] = randUTF8RuneTypes(r)
  8210. }
  8211. return string(tmps)
  8212. }
  8213. func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) {
  8214. l := r.Intn(5)
  8215. for i := 0; i < l; i++ {
  8216. wire := r.Intn(4)
  8217. if wire == 3 {
  8218. wire = 5
  8219. }
  8220. fieldNumber := maxFieldNumber + r.Intn(100)
  8221. dAtA = randFieldTypes(dAtA, r, fieldNumber, wire)
  8222. }
  8223. return dAtA
  8224. }
  8225. func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte {
  8226. key := uint32(fieldNumber)<<3 | uint32(wire)
  8227. switch wire {
  8228. case 0:
  8229. dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
  8230. v58 := r.Int63()
  8231. if r.Intn(2) == 0 {
  8232. v58 *= -1
  8233. }
  8234. dAtA = encodeVarintPopulateTypes(dAtA, uint64(v58))
  8235. case 1:
  8236. dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
  8237. 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)))
  8238. case 2:
  8239. dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
  8240. ll := r.Intn(100)
  8241. dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll))
  8242. for j := 0; j < ll; j++ {
  8243. dAtA = append(dAtA, byte(r.Intn(256)))
  8244. }
  8245. default:
  8246. dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
  8247. dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
  8248. }
  8249. return dAtA
  8250. }
  8251. func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte {
  8252. for v >= 1<<7 {
  8253. dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))
  8254. v >>= 7
  8255. }
  8256. dAtA = append(dAtA, uint8(v))
  8257. return dAtA
  8258. }
  8259. func (m *Request) Size() (n int) {
  8260. if m == nil {
  8261. return 0
  8262. }
  8263. var l int
  8264. _ = l
  8265. if m.Value != nil {
  8266. n += m.Value.Size()
  8267. }
  8268. if m.XXX_unrecognized != nil {
  8269. n += len(m.XXX_unrecognized)
  8270. }
  8271. return n
  8272. }
  8273. func (m *Request_Echo) Size() (n int) {
  8274. if m == nil {
  8275. return 0
  8276. }
  8277. var l int
  8278. _ = l
  8279. if m.Echo != nil {
  8280. l = m.Echo.Size()
  8281. n += 1 + l + sovTypes(uint64(l))
  8282. }
  8283. return n
  8284. }
  8285. func (m *Request_Flush) Size() (n int) {
  8286. if m == nil {
  8287. return 0
  8288. }
  8289. var l int
  8290. _ = l
  8291. if m.Flush != nil {
  8292. l = m.Flush.Size()
  8293. n += 1 + l + sovTypes(uint64(l))
  8294. }
  8295. return n
  8296. }
  8297. func (m *Request_Info) Size() (n int) {
  8298. if m == nil {
  8299. return 0
  8300. }
  8301. var l int
  8302. _ = l
  8303. if m.Info != nil {
  8304. l = m.Info.Size()
  8305. n += 1 + l + sovTypes(uint64(l))
  8306. }
  8307. return n
  8308. }
  8309. func (m *Request_SetOption) Size() (n int) {
  8310. if m == nil {
  8311. return 0
  8312. }
  8313. var l int
  8314. _ = l
  8315. if m.SetOption != nil {
  8316. l = m.SetOption.Size()
  8317. n += 1 + l + sovTypes(uint64(l))
  8318. }
  8319. return n
  8320. }
  8321. func (m *Request_InitChain) Size() (n int) {
  8322. if m == nil {
  8323. return 0
  8324. }
  8325. var l int
  8326. _ = l
  8327. if m.InitChain != nil {
  8328. l = m.InitChain.Size()
  8329. n += 1 + l + sovTypes(uint64(l))
  8330. }
  8331. return n
  8332. }
  8333. func (m *Request_Query) Size() (n int) {
  8334. if m == nil {
  8335. return 0
  8336. }
  8337. var l int
  8338. _ = l
  8339. if m.Query != nil {
  8340. l = m.Query.Size()
  8341. n += 1 + l + sovTypes(uint64(l))
  8342. }
  8343. return n
  8344. }
  8345. func (m *Request_BeginBlock) Size() (n int) {
  8346. if m == nil {
  8347. return 0
  8348. }
  8349. var l int
  8350. _ = l
  8351. if m.BeginBlock != nil {
  8352. l = m.BeginBlock.Size()
  8353. n += 1 + l + sovTypes(uint64(l))
  8354. }
  8355. return n
  8356. }
  8357. func (m *Request_CheckTx) Size() (n int) {
  8358. if m == nil {
  8359. return 0
  8360. }
  8361. var l int
  8362. _ = l
  8363. if m.CheckTx != nil {
  8364. l = m.CheckTx.Size()
  8365. n += 1 + l + sovTypes(uint64(l))
  8366. }
  8367. return n
  8368. }
  8369. func (m *Request_EndBlock) Size() (n int) {
  8370. if m == nil {
  8371. return 0
  8372. }
  8373. var l int
  8374. _ = l
  8375. if m.EndBlock != nil {
  8376. l = m.EndBlock.Size()
  8377. n += 1 + l + sovTypes(uint64(l))
  8378. }
  8379. return n
  8380. }
  8381. func (m *Request_Commit) Size() (n int) {
  8382. if m == nil {
  8383. return 0
  8384. }
  8385. var l int
  8386. _ = l
  8387. if m.Commit != nil {
  8388. l = m.Commit.Size()
  8389. n += 1 + l + sovTypes(uint64(l))
  8390. }
  8391. return n
  8392. }
  8393. func (m *Request_DeliverTx) Size() (n int) {
  8394. if m == nil {
  8395. return 0
  8396. }
  8397. var l int
  8398. _ = l
  8399. if m.DeliverTx != nil {
  8400. l = m.DeliverTx.Size()
  8401. n += 2 + l + sovTypes(uint64(l))
  8402. }
  8403. return n
  8404. }
  8405. func (m *RequestEcho) Size() (n int) {
  8406. if m == nil {
  8407. return 0
  8408. }
  8409. var l int
  8410. _ = l
  8411. l = len(m.Message)
  8412. if l > 0 {
  8413. n += 1 + l + sovTypes(uint64(l))
  8414. }
  8415. if m.XXX_unrecognized != nil {
  8416. n += len(m.XXX_unrecognized)
  8417. }
  8418. return n
  8419. }
  8420. func (m *RequestFlush) Size() (n int) {
  8421. if m == nil {
  8422. return 0
  8423. }
  8424. var l int
  8425. _ = l
  8426. if m.XXX_unrecognized != nil {
  8427. n += len(m.XXX_unrecognized)
  8428. }
  8429. return n
  8430. }
  8431. func (m *RequestInfo) Size() (n int) {
  8432. if m == nil {
  8433. return 0
  8434. }
  8435. var l int
  8436. _ = l
  8437. l = len(m.Version)
  8438. if l > 0 {
  8439. n += 1 + l + sovTypes(uint64(l))
  8440. }
  8441. if m.BlockVersion != 0 {
  8442. n += 1 + sovTypes(uint64(m.BlockVersion))
  8443. }
  8444. if m.P2PVersion != 0 {
  8445. n += 1 + sovTypes(uint64(m.P2PVersion))
  8446. }
  8447. if m.XXX_unrecognized != nil {
  8448. n += len(m.XXX_unrecognized)
  8449. }
  8450. return n
  8451. }
  8452. func (m *RequestSetOption) Size() (n int) {
  8453. if m == nil {
  8454. return 0
  8455. }
  8456. var l int
  8457. _ = l
  8458. l = len(m.Key)
  8459. if l > 0 {
  8460. n += 1 + l + sovTypes(uint64(l))
  8461. }
  8462. l = len(m.Value)
  8463. if l > 0 {
  8464. n += 1 + l + sovTypes(uint64(l))
  8465. }
  8466. if m.XXX_unrecognized != nil {
  8467. n += len(m.XXX_unrecognized)
  8468. }
  8469. return n
  8470. }
  8471. func (m *RequestInitChain) Size() (n int) {
  8472. if m == nil {
  8473. return 0
  8474. }
  8475. var l int
  8476. _ = l
  8477. l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)
  8478. n += 1 + l + sovTypes(uint64(l))
  8479. l = len(m.ChainId)
  8480. if l > 0 {
  8481. n += 1 + l + sovTypes(uint64(l))
  8482. }
  8483. if m.ConsensusParams != nil {
  8484. l = m.ConsensusParams.Size()
  8485. n += 1 + l + sovTypes(uint64(l))
  8486. }
  8487. if len(m.Validators) > 0 {
  8488. for _, e := range m.Validators {
  8489. l = e.Size()
  8490. n += 1 + l + sovTypes(uint64(l))
  8491. }
  8492. }
  8493. l = len(m.AppStateBytes)
  8494. if l > 0 {
  8495. n += 1 + l + sovTypes(uint64(l))
  8496. }
  8497. if m.XXX_unrecognized != nil {
  8498. n += len(m.XXX_unrecognized)
  8499. }
  8500. return n
  8501. }
  8502. func (m *RequestQuery) Size() (n int) {
  8503. if m == nil {
  8504. return 0
  8505. }
  8506. var l int
  8507. _ = l
  8508. l = len(m.Data)
  8509. if l > 0 {
  8510. n += 1 + l + sovTypes(uint64(l))
  8511. }
  8512. l = len(m.Path)
  8513. if l > 0 {
  8514. n += 1 + l + sovTypes(uint64(l))
  8515. }
  8516. if m.Height != 0 {
  8517. n += 1 + sovTypes(uint64(m.Height))
  8518. }
  8519. if m.Prove {
  8520. n += 2
  8521. }
  8522. if m.XXX_unrecognized != nil {
  8523. n += len(m.XXX_unrecognized)
  8524. }
  8525. return n
  8526. }
  8527. func (m *RequestBeginBlock) Size() (n int) {
  8528. if m == nil {
  8529. return 0
  8530. }
  8531. var l int
  8532. _ = l
  8533. l = len(m.Hash)
  8534. if l > 0 {
  8535. n += 1 + l + sovTypes(uint64(l))
  8536. }
  8537. l = m.Header.Size()
  8538. n += 1 + l + sovTypes(uint64(l))
  8539. l = m.LastCommitInfo.Size()
  8540. n += 1 + l + sovTypes(uint64(l))
  8541. if len(m.ByzantineValidators) > 0 {
  8542. for _, e := range m.ByzantineValidators {
  8543. l = e.Size()
  8544. n += 1 + l + sovTypes(uint64(l))
  8545. }
  8546. }
  8547. if m.XXX_unrecognized != nil {
  8548. n += len(m.XXX_unrecognized)
  8549. }
  8550. return n
  8551. }
  8552. func (m *RequestCheckTx) Size() (n int) {
  8553. if m == nil {
  8554. return 0
  8555. }
  8556. var l int
  8557. _ = l
  8558. l = len(m.Tx)
  8559. if l > 0 {
  8560. n += 1 + l + sovTypes(uint64(l))
  8561. }
  8562. if m.Type != 0 {
  8563. n += 1 + sovTypes(uint64(m.Type))
  8564. }
  8565. if m.XXX_unrecognized != nil {
  8566. n += len(m.XXX_unrecognized)
  8567. }
  8568. return n
  8569. }
  8570. func (m *RequestDeliverTx) Size() (n int) {
  8571. if m == nil {
  8572. return 0
  8573. }
  8574. var l int
  8575. _ = l
  8576. l = len(m.Tx)
  8577. if l > 0 {
  8578. n += 1 + l + sovTypes(uint64(l))
  8579. }
  8580. if m.XXX_unrecognized != nil {
  8581. n += len(m.XXX_unrecognized)
  8582. }
  8583. return n
  8584. }
  8585. func (m *RequestEndBlock) Size() (n int) {
  8586. if m == nil {
  8587. return 0
  8588. }
  8589. var l int
  8590. _ = l
  8591. if m.Height != 0 {
  8592. n += 1 + sovTypes(uint64(m.Height))
  8593. }
  8594. if m.XXX_unrecognized != nil {
  8595. n += len(m.XXX_unrecognized)
  8596. }
  8597. return n
  8598. }
  8599. func (m *RequestCommit) Size() (n int) {
  8600. if m == nil {
  8601. return 0
  8602. }
  8603. var l int
  8604. _ = l
  8605. if m.XXX_unrecognized != nil {
  8606. n += len(m.XXX_unrecognized)
  8607. }
  8608. return n
  8609. }
  8610. func (m *Response) Size() (n int) {
  8611. if m == nil {
  8612. return 0
  8613. }
  8614. var l int
  8615. _ = l
  8616. if m.Value != nil {
  8617. n += m.Value.Size()
  8618. }
  8619. if m.XXX_unrecognized != nil {
  8620. n += len(m.XXX_unrecognized)
  8621. }
  8622. return n
  8623. }
  8624. func (m *Response_Exception) Size() (n int) {
  8625. if m == nil {
  8626. return 0
  8627. }
  8628. var l int
  8629. _ = l
  8630. if m.Exception != nil {
  8631. l = m.Exception.Size()
  8632. n += 1 + l + sovTypes(uint64(l))
  8633. }
  8634. return n
  8635. }
  8636. func (m *Response_Echo) Size() (n int) {
  8637. if m == nil {
  8638. return 0
  8639. }
  8640. var l int
  8641. _ = l
  8642. if m.Echo != nil {
  8643. l = m.Echo.Size()
  8644. n += 1 + l + sovTypes(uint64(l))
  8645. }
  8646. return n
  8647. }
  8648. func (m *Response_Flush) Size() (n int) {
  8649. if m == nil {
  8650. return 0
  8651. }
  8652. var l int
  8653. _ = l
  8654. if m.Flush != nil {
  8655. l = m.Flush.Size()
  8656. n += 1 + l + sovTypes(uint64(l))
  8657. }
  8658. return n
  8659. }
  8660. func (m *Response_Info) Size() (n int) {
  8661. if m == nil {
  8662. return 0
  8663. }
  8664. var l int
  8665. _ = l
  8666. if m.Info != nil {
  8667. l = m.Info.Size()
  8668. n += 1 + l + sovTypes(uint64(l))
  8669. }
  8670. return n
  8671. }
  8672. func (m *Response_SetOption) Size() (n int) {
  8673. if m == nil {
  8674. return 0
  8675. }
  8676. var l int
  8677. _ = l
  8678. if m.SetOption != nil {
  8679. l = m.SetOption.Size()
  8680. n += 1 + l + sovTypes(uint64(l))
  8681. }
  8682. return n
  8683. }
  8684. func (m *Response_InitChain) Size() (n int) {
  8685. if m == nil {
  8686. return 0
  8687. }
  8688. var l int
  8689. _ = l
  8690. if m.InitChain != nil {
  8691. l = m.InitChain.Size()
  8692. n += 1 + l + sovTypes(uint64(l))
  8693. }
  8694. return n
  8695. }
  8696. func (m *Response_Query) Size() (n int) {
  8697. if m == nil {
  8698. return 0
  8699. }
  8700. var l int
  8701. _ = l
  8702. if m.Query != nil {
  8703. l = m.Query.Size()
  8704. n += 1 + l + sovTypes(uint64(l))
  8705. }
  8706. return n
  8707. }
  8708. func (m *Response_BeginBlock) Size() (n int) {
  8709. if m == nil {
  8710. return 0
  8711. }
  8712. var l int
  8713. _ = l
  8714. if m.BeginBlock != nil {
  8715. l = m.BeginBlock.Size()
  8716. n += 1 + l + sovTypes(uint64(l))
  8717. }
  8718. return n
  8719. }
  8720. func (m *Response_CheckTx) Size() (n int) {
  8721. if m == nil {
  8722. return 0
  8723. }
  8724. var l int
  8725. _ = l
  8726. if m.CheckTx != nil {
  8727. l = m.CheckTx.Size()
  8728. n += 1 + l + sovTypes(uint64(l))
  8729. }
  8730. return n
  8731. }
  8732. func (m *Response_DeliverTx) Size() (n int) {
  8733. if m == nil {
  8734. return 0
  8735. }
  8736. var l int
  8737. _ = l
  8738. if m.DeliverTx != nil {
  8739. l = m.DeliverTx.Size()
  8740. n += 1 + l + sovTypes(uint64(l))
  8741. }
  8742. return n
  8743. }
  8744. func (m *Response_EndBlock) Size() (n int) {
  8745. if m == nil {
  8746. return 0
  8747. }
  8748. var l int
  8749. _ = l
  8750. if m.EndBlock != nil {
  8751. l = m.EndBlock.Size()
  8752. n += 1 + l + sovTypes(uint64(l))
  8753. }
  8754. return n
  8755. }
  8756. func (m *Response_Commit) Size() (n int) {
  8757. if m == nil {
  8758. return 0
  8759. }
  8760. var l int
  8761. _ = l
  8762. if m.Commit != nil {
  8763. l = m.Commit.Size()
  8764. n += 1 + l + sovTypes(uint64(l))
  8765. }
  8766. return n
  8767. }
  8768. func (m *ResponseException) Size() (n int) {
  8769. if m == nil {
  8770. return 0
  8771. }
  8772. var l int
  8773. _ = l
  8774. l = len(m.Error)
  8775. if l > 0 {
  8776. n += 1 + l + sovTypes(uint64(l))
  8777. }
  8778. if m.XXX_unrecognized != nil {
  8779. n += len(m.XXX_unrecognized)
  8780. }
  8781. return n
  8782. }
  8783. func (m *ResponseEcho) Size() (n int) {
  8784. if m == nil {
  8785. return 0
  8786. }
  8787. var l int
  8788. _ = l
  8789. l = len(m.Message)
  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 *ResponseFlush) Size() (n int) {
  8799. if m == nil {
  8800. return 0
  8801. }
  8802. var l int
  8803. _ = l
  8804. if m.XXX_unrecognized != nil {
  8805. n += len(m.XXX_unrecognized)
  8806. }
  8807. return n
  8808. }
  8809. func (m *ResponseInfo) Size() (n int) {
  8810. if m == nil {
  8811. return 0
  8812. }
  8813. var l int
  8814. _ = l
  8815. l = len(m.Data)
  8816. if l > 0 {
  8817. n += 1 + l + sovTypes(uint64(l))
  8818. }
  8819. l = len(m.Version)
  8820. if l > 0 {
  8821. n += 1 + l + sovTypes(uint64(l))
  8822. }
  8823. if m.AppVersion != 0 {
  8824. n += 1 + sovTypes(uint64(m.AppVersion))
  8825. }
  8826. if m.LastBlockHeight != 0 {
  8827. n += 1 + sovTypes(uint64(m.LastBlockHeight))
  8828. }
  8829. l = len(m.LastBlockAppHash)
  8830. if l > 0 {
  8831. n += 1 + l + sovTypes(uint64(l))
  8832. }
  8833. if m.XXX_unrecognized != nil {
  8834. n += len(m.XXX_unrecognized)
  8835. }
  8836. return n
  8837. }
  8838. func (m *ResponseSetOption) Size() (n int) {
  8839. if m == nil {
  8840. return 0
  8841. }
  8842. var l int
  8843. _ = l
  8844. if m.Code != 0 {
  8845. n += 1 + sovTypes(uint64(m.Code))
  8846. }
  8847. l = len(m.Log)
  8848. if l > 0 {
  8849. n += 1 + l + sovTypes(uint64(l))
  8850. }
  8851. l = len(m.Info)
  8852. if l > 0 {
  8853. n += 1 + l + sovTypes(uint64(l))
  8854. }
  8855. if m.XXX_unrecognized != nil {
  8856. n += len(m.XXX_unrecognized)
  8857. }
  8858. return n
  8859. }
  8860. func (m *ResponseInitChain) Size() (n int) {
  8861. if m == nil {
  8862. return 0
  8863. }
  8864. var l int
  8865. _ = l
  8866. if m.ConsensusParams != nil {
  8867. l = m.ConsensusParams.Size()
  8868. n += 1 + l + sovTypes(uint64(l))
  8869. }
  8870. if len(m.Validators) > 0 {
  8871. for _, e := range m.Validators {
  8872. l = e.Size()
  8873. n += 1 + l + sovTypes(uint64(l))
  8874. }
  8875. }
  8876. if m.XXX_unrecognized != nil {
  8877. n += len(m.XXX_unrecognized)
  8878. }
  8879. return n
  8880. }
  8881. func (m *ResponseQuery) Size() (n int) {
  8882. if m == nil {
  8883. return 0
  8884. }
  8885. var l int
  8886. _ = l
  8887. if m.Code != 0 {
  8888. n += 1 + sovTypes(uint64(m.Code))
  8889. }
  8890. l = len(m.Log)
  8891. if l > 0 {
  8892. n += 1 + l + sovTypes(uint64(l))
  8893. }
  8894. l = len(m.Info)
  8895. if l > 0 {
  8896. n += 1 + l + sovTypes(uint64(l))
  8897. }
  8898. if m.Index != 0 {
  8899. n += 1 + sovTypes(uint64(m.Index))
  8900. }
  8901. l = len(m.Key)
  8902. if l > 0 {
  8903. n += 1 + l + sovTypes(uint64(l))
  8904. }
  8905. l = len(m.Value)
  8906. if l > 0 {
  8907. n += 1 + l + sovTypes(uint64(l))
  8908. }
  8909. if m.Proof != nil {
  8910. l = m.Proof.Size()
  8911. n += 1 + l + sovTypes(uint64(l))
  8912. }
  8913. if m.Height != 0 {
  8914. n += 1 + sovTypes(uint64(m.Height))
  8915. }
  8916. l = len(m.Codespace)
  8917. if l > 0 {
  8918. n += 1 + l + sovTypes(uint64(l))
  8919. }
  8920. if m.XXX_unrecognized != nil {
  8921. n += len(m.XXX_unrecognized)
  8922. }
  8923. return n
  8924. }
  8925. func (m *ResponseBeginBlock) Size() (n int) {
  8926. if m == nil {
  8927. return 0
  8928. }
  8929. var l int
  8930. _ = l
  8931. if len(m.Events) > 0 {
  8932. for _, e := range m.Events {
  8933. l = e.Size()
  8934. n += 1 + l + sovTypes(uint64(l))
  8935. }
  8936. }
  8937. if m.XXX_unrecognized != nil {
  8938. n += len(m.XXX_unrecognized)
  8939. }
  8940. return n
  8941. }
  8942. func (m *ResponseCheckTx) Size() (n int) {
  8943. if m == nil {
  8944. return 0
  8945. }
  8946. var l int
  8947. _ = l
  8948. if m.Code != 0 {
  8949. n += 1 + sovTypes(uint64(m.Code))
  8950. }
  8951. l = len(m.Data)
  8952. if l > 0 {
  8953. n += 1 + l + sovTypes(uint64(l))
  8954. }
  8955. l = len(m.Log)
  8956. if l > 0 {
  8957. n += 1 + l + sovTypes(uint64(l))
  8958. }
  8959. l = len(m.Info)
  8960. if l > 0 {
  8961. n += 1 + l + sovTypes(uint64(l))
  8962. }
  8963. if m.GasWanted != 0 {
  8964. n += 1 + sovTypes(uint64(m.GasWanted))
  8965. }
  8966. if m.GasUsed != 0 {
  8967. n += 1 + sovTypes(uint64(m.GasUsed))
  8968. }
  8969. if len(m.Events) > 0 {
  8970. for _, e := range m.Events {
  8971. l = e.Size()
  8972. n += 1 + l + sovTypes(uint64(l))
  8973. }
  8974. }
  8975. l = len(m.Codespace)
  8976. if l > 0 {
  8977. n += 1 + l + sovTypes(uint64(l))
  8978. }
  8979. if m.XXX_unrecognized != nil {
  8980. n += len(m.XXX_unrecognized)
  8981. }
  8982. return n
  8983. }
  8984. func (m *ResponseDeliverTx) Size() (n int) {
  8985. if m == nil {
  8986. return 0
  8987. }
  8988. var l int
  8989. _ = l
  8990. if m.Code != 0 {
  8991. n += 1 + sovTypes(uint64(m.Code))
  8992. }
  8993. l = len(m.Data)
  8994. if l > 0 {
  8995. n += 1 + l + sovTypes(uint64(l))
  8996. }
  8997. l = len(m.Log)
  8998. if l > 0 {
  8999. n += 1 + l + sovTypes(uint64(l))
  9000. }
  9001. l = len(m.Info)
  9002. if l > 0 {
  9003. n += 1 + l + sovTypes(uint64(l))
  9004. }
  9005. if m.GasWanted != 0 {
  9006. n += 1 + sovTypes(uint64(m.GasWanted))
  9007. }
  9008. if m.GasUsed != 0 {
  9009. n += 1 + sovTypes(uint64(m.GasUsed))
  9010. }
  9011. if len(m.Events) > 0 {
  9012. for _, e := range m.Events {
  9013. l = e.Size()
  9014. n += 1 + l + sovTypes(uint64(l))
  9015. }
  9016. }
  9017. l = len(m.Codespace)
  9018. if l > 0 {
  9019. n += 1 + l + sovTypes(uint64(l))
  9020. }
  9021. if m.XXX_unrecognized != nil {
  9022. n += len(m.XXX_unrecognized)
  9023. }
  9024. return n
  9025. }
  9026. func (m *ResponseEndBlock) Size() (n int) {
  9027. if m == nil {
  9028. return 0
  9029. }
  9030. var l int
  9031. _ = l
  9032. if len(m.ValidatorUpdates) > 0 {
  9033. for _, e := range m.ValidatorUpdates {
  9034. l = e.Size()
  9035. n += 1 + l + sovTypes(uint64(l))
  9036. }
  9037. }
  9038. if m.ConsensusParamUpdates != nil {
  9039. l = m.ConsensusParamUpdates.Size()
  9040. n += 1 + l + sovTypes(uint64(l))
  9041. }
  9042. if len(m.Events) > 0 {
  9043. for _, e := range m.Events {
  9044. l = e.Size()
  9045. n += 1 + l + sovTypes(uint64(l))
  9046. }
  9047. }
  9048. if m.XXX_unrecognized != nil {
  9049. n += len(m.XXX_unrecognized)
  9050. }
  9051. return n
  9052. }
  9053. func (m *ResponseCommit) Size() (n int) {
  9054. if m == nil {
  9055. return 0
  9056. }
  9057. var l int
  9058. _ = l
  9059. l = len(m.Data)
  9060. if l > 0 {
  9061. n += 1 + l + sovTypes(uint64(l))
  9062. }
  9063. if m.XXX_unrecognized != nil {
  9064. n += len(m.XXX_unrecognized)
  9065. }
  9066. return n
  9067. }
  9068. func (m *ConsensusParams) Size() (n int) {
  9069. if m == nil {
  9070. return 0
  9071. }
  9072. var l int
  9073. _ = l
  9074. if m.Block != nil {
  9075. l = m.Block.Size()
  9076. n += 1 + l + sovTypes(uint64(l))
  9077. }
  9078. if m.Evidence != nil {
  9079. l = m.Evidence.Size()
  9080. n += 1 + l + sovTypes(uint64(l))
  9081. }
  9082. if m.Validator != nil {
  9083. l = m.Validator.Size()
  9084. n += 1 + l + sovTypes(uint64(l))
  9085. }
  9086. if m.XXX_unrecognized != nil {
  9087. n += len(m.XXX_unrecognized)
  9088. }
  9089. return n
  9090. }
  9091. func (m *BlockParams) Size() (n int) {
  9092. if m == nil {
  9093. return 0
  9094. }
  9095. var l int
  9096. _ = l
  9097. if m.MaxBytes != 0 {
  9098. n += 1 + sovTypes(uint64(m.MaxBytes))
  9099. }
  9100. if m.MaxGas != 0 {
  9101. n += 1 + sovTypes(uint64(m.MaxGas))
  9102. }
  9103. if m.XXX_unrecognized != nil {
  9104. n += len(m.XXX_unrecognized)
  9105. }
  9106. return n
  9107. }
  9108. func (m *EvidenceParams) Size() (n int) {
  9109. if m == nil {
  9110. return 0
  9111. }
  9112. var l int
  9113. _ = l
  9114. if m.MaxAge != 0 {
  9115. n += 1 + sovTypes(uint64(m.MaxAge))
  9116. }
  9117. if m.XXX_unrecognized != nil {
  9118. n += len(m.XXX_unrecognized)
  9119. }
  9120. return n
  9121. }
  9122. func (m *ValidatorParams) Size() (n int) {
  9123. if m == nil {
  9124. return 0
  9125. }
  9126. var l int
  9127. _ = l
  9128. if len(m.PubKeyTypes) > 0 {
  9129. for _, s := range m.PubKeyTypes {
  9130. l = len(s)
  9131. n += 1 + l + sovTypes(uint64(l))
  9132. }
  9133. }
  9134. if m.XXX_unrecognized != nil {
  9135. n += len(m.XXX_unrecognized)
  9136. }
  9137. return n
  9138. }
  9139. func (m *LastCommitInfo) Size() (n int) {
  9140. if m == nil {
  9141. return 0
  9142. }
  9143. var l int
  9144. _ = l
  9145. if m.Round != 0 {
  9146. n += 1 + sovTypes(uint64(m.Round))
  9147. }
  9148. if len(m.Votes) > 0 {
  9149. for _, e := range m.Votes {
  9150. l = e.Size()
  9151. n += 1 + l + sovTypes(uint64(l))
  9152. }
  9153. }
  9154. if m.XXX_unrecognized != nil {
  9155. n += len(m.XXX_unrecognized)
  9156. }
  9157. return n
  9158. }
  9159. func (m *Event) Size() (n int) {
  9160. if m == nil {
  9161. return 0
  9162. }
  9163. var l int
  9164. _ = l
  9165. l = len(m.Type)
  9166. if l > 0 {
  9167. n += 1 + l + sovTypes(uint64(l))
  9168. }
  9169. if len(m.Attributes) > 0 {
  9170. for _, e := range m.Attributes {
  9171. l = e.Size()
  9172. n += 1 + l + sovTypes(uint64(l))
  9173. }
  9174. }
  9175. if m.XXX_unrecognized != nil {
  9176. n += len(m.XXX_unrecognized)
  9177. }
  9178. return n
  9179. }
  9180. func (m *Header) Size() (n int) {
  9181. if m == nil {
  9182. return 0
  9183. }
  9184. var l int
  9185. _ = l
  9186. l = m.Version.Size()
  9187. n += 1 + l + sovTypes(uint64(l))
  9188. l = len(m.ChainID)
  9189. if l > 0 {
  9190. n += 1 + l + sovTypes(uint64(l))
  9191. }
  9192. if m.Height != 0 {
  9193. n += 1 + sovTypes(uint64(m.Height))
  9194. }
  9195. l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)
  9196. n += 1 + l + sovTypes(uint64(l))
  9197. l = m.LastBlockId.Size()
  9198. n += 1 + l + sovTypes(uint64(l))
  9199. l = len(m.LastCommitHash)
  9200. if l > 0 {
  9201. n += 1 + l + sovTypes(uint64(l))
  9202. }
  9203. l = len(m.DataHash)
  9204. if l > 0 {
  9205. n += 1 + l + sovTypes(uint64(l))
  9206. }
  9207. l = len(m.ValidatorsHash)
  9208. if l > 0 {
  9209. n += 1 + l + sovTypes(uint64(l))
  9210. }
  9211. l = len(m.NextValidatorsHash)
  9212. if l > 0 {
  9213. n += 1 + l + sovTypes(uint64(l))
  9214. }
  9215. l = len(m.ConsensusHash)
  9216. if l > 0 {
  9217. n += 1 + l + sovTypes(uint64(l))
  9218. }
  9219. l = len(m.AppHash)
  9220. if l > 0 {
  9221. n += 1 + l + sovTypes(uint64(l))
  9222. }
  9223. l = len(m.LastResultsHash)
  9224. if l > 0 {
  9225. n += 1 + l + sovTypes(uint64(l))
  9226. }
  9227. l = len(m.EvidenceHash)
  9228. if l > 0 {
  9229. n += 1 + l + sovTypes(uint64(l))
  9230. }
  9231. l = len(m.ProposerAddress)
  9232. if l > 0 {
  9233. n += 1 + l + sovTypes(uint64(l))
  9234. }
  9235. if m.XXX_unrecognized != nil {
  9236. n += len(m.XXX_unrecognized)
  9237. }
  9238. return n
  9239. }
  9240. func (m *Version) Size() (n int) {
  9241. if m == nil {
  9242. return 0
  9243. }
  9244. var l int
  9245. _ = l
  9246. if m.Block != 0 {
  9247. n += 1 + sovTypes(uint64(m.Block))
  9248. }
  9249. if m.App != 0 {
  9250. n += 1 + sovTypes(uint64(m.App))
  9251. }
  9252. if m.XXX_unrecognized != nil {
  9253. n += len(m.XXX_unrecognized)
  9254. }
  9255. return n
  9256. }
  9257. func (m *BlockID) Size() (n int) {
  9258. if m == nil {
  9259. return 0
  9260. }
  9261. var l int
  9262. _ = l
  9263. l = len(m.Hash)
  9264. if l > 0 {
  9265. n += 1 + l + sovTypes(uint64(l))
  9266. }
  9267. l = m.PartsHeader.Size()
  9268. n += 1 + l + sovTypes(uint64(l))
  9269. if m.XXX_unrecognized != nil {
  9270. n += len(m.XXX_unrecognized)
  9271. }
  9272. return n
  9273. }
  9274. func (m *PartSetHeader) Size() (n int) {
  9275. if m == nil {
  9276. return 0
  9277. }
  9278. var l int
  9279. _ = l
  9280. if m.Total != 0 {
  9281. n += 1 + sovTypes(uint64(m.Total))
  9282. }
  9283. l = len(m.Hash)
  9284. if l > 0 {
  9285. n += 1 + l + sovTypes(uint64(l))
  9286. }
  9287. if m.XXX_unrecognized != nil {
  9288. n += len(m.XXX_unrecognized)
  9289. }
  9290. return n
  9291. }
  9292. func (m *Validator) Size() (n int) {
  9293. if m == nil {
  9294. return 0
  9295. }
  9296. var l int
  9297. _ = l
  9298. l = len(m.Address)
  9299. if l > 0 {
  9300. n += 1 + l + sovTypes(uint64(l))
  9301. }
  9302. if m.Power != 0 {
  9303. n += 1 + sovTypes(uint64(m.Power))
  9304. }
  9305. if m.XXX_unrecognized != nil {
  9306. n += len(m.XXX_unrecognized)
  9307. }
  9308. return n
  9309. }
  9310. func (m *ValidatorUpdate) Size() (n int) {
  9311. if m == nil {
  9312. return 0
  9313. }
  9314. var l int
  9315. _ = l
  9316. l = m.PubKey.Size()
  9317. n += 1 + l + sovTypes(uint64(l))
  9318. if m.Power != 0 {
  9319. n += 1 + sovTypes(uint64(m.Power))
  9320. }
  9321. if m.XXX_unrecognized != nil {
  9322. n += len(m.XXX_unrecognized)
  9323. }
  9324. return n
  9325. }
  9326. func (m *VoteInfo) Size() (n int) {
  9327. if m == nil {
  9328. return 0
  9329. }
  9330. var l int
  9331. _ = l
  9332. l = m.Validator.Size()
  9333. n += 1 + l + sovTypes(uint64(l))
  9334. if m.SignedLastBlock {
  9335. n += 2
  9336. }
  9337. if m.XXX_unrecognized != nil {
  9338. n += len(m.XXX_unrecognized)
  9339. }
  9340. return n
  9341. }
  9342. func (m *PubKey) Size() (n int) {
  9343. if m == nil {
  9344. return 0
  9345. }
  9346. var l int
  9347. _ = l
  9348. l = len(m.Type)
  9349. if l > 0 {
  9350. n += 1 + l + sovTypes(uint64(l))
  9351. }
  9352. l = len(m.Data)
  9353. if l > 0 {
  9354. n += 1 + l + sovTypes(uint64(l))
  9355. }
  9356. if m.XXX_unrecognized != nil {
  9357. n += len(m.XXX_unrecognized)
  9358. }
  9359. return n
  9360. }
  9361. func (m *Evidence) Size() (n int) {
  9362. if m == nil {
  9363. return 0
  9364. }
  9365. var l int
  9366. _ = l
  9367. l = len(m.Type)
  9368. if l > 0 {
  9369. n += 1 + l + sovTypes(uint64(l))
  9370. }
  9371. l = m.Validator.Size()
  9372. n += 1 + l + sovTypes(uint64(l))
  9373. if m.Height != 0 {
  9374. n += 1 + sovTypes(uint64(m.Height))
  9375. }
  9376. l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)
  9377. n += 1 + l + sovTypes(uint64(l))
  9378. if m.TotalVotingPower != 0 {
  9379. n += 1 + sovTypes(uint64(m.TotalVotingPower))
  9380. }
  9381. if m.XXX_unrecognized != nil {
  9382. n += len(m.XXX_unrecognized)
  9383. }
  9384. return n
  9385. }
  9386. func sovTypes(x uint64) (n int) {
  9387. return (math_bits.Len64(x|1) + 6) / 7
  9388. }
  9389. func sozTypes(x uint64) (n int) {
  9390. return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  9391. }
  9392. func (m *Request) Unmarshal(dAtA []byte) error {
  9393. l := len(dAtA)
  9394. iNdEx := 0
  9395. for iNdEx < l {
  9396. preIndex := iNdEx
  9397. var wire uint64
  9398. for shift := uint(0); ; shift += 7 {
  9399. if shift >= 64 {
  9400. return ErrIntOverflowTypes
  9401. }
  9402. if iNdEx >= l {
  9403. return io.ErrUnexpectedEOF
  9404. }
  9405. b := dAtA[iNdEx]
  9406. iNdEx++
  9407. wire |= uint64(b&0x7F) << shift
  9408. if b < 0x80 {
  9409. break
  9410. }
  9411. }
  9412. fieldNum := int32(wire >> 3)
  9413. wireType := int(wire & 0x7)
  9414. if wireType == 4 {
  9415. return fmt.Errorf("proto: Request: wiretype end group for non-group")
  9416. }
  9417. if fieldNum <= 0 {
  9418. return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
  9419. }
  9420. switch fieldNum {
  9421. case 2:
  9422. if wireType != 2 {
  9423. return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType)
  9424. }
  9425. var msglen int
  9426. for shift := uint(0); ; shift += 7 {
  9427. if shift >= 64 {
  9428. return ErrIntOverflowTypes
  9429. }
  9430. if iNdEx >= l {
  9431. return io.ErrUnexpectedEOF
  9432. }
  9433. b := dAtA[iNdEx]
  9434. iNdEx++
  9435. msglen |= int(b&0x7F) << shift
  9436. if b < 0x80 {
  9437. break
  9438. }
  9439. }
  9440. if msglen < 0 {
  9441. return ErrInvalidLengthTypes
  9442. }
  9443. postIndex := iNdEx + msglen
  9444. if postIndex < 0 {
  9445. return ErrInvalidLengthTypes
  9446. }
  9447. if postIndex > l {
  9448. return io.ErrUnexpectedEOF
  9449. }
  9450. v := &RequestEcho{}
  9451. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9452. return err
  9453. }
  9454. m.Value = &Request_Echo{v}
  9455. iNdEx = postIndex
  9456. case 3:
  9457. if wireType != 2 {
  9458. return fmt.Errorf("proto: wrong wireType = %d for field Flush", wireType)
  9459. }
  9460. var msglen int
  9461. for shift := uint(0); ; shift += 7 {
  9462. if shift >= 64 {
  9463. return ErrIntOverflowTypes
  9464. }
  9465. if iNdEx >= l {
  9466. return io.ErrUnexpectedEOF
  9467. }
  9468. b := dAtA[iNdEx]
  9469. iNdEx++
  9470. msglen |= int(b&0x7F) << shift
  9471. if b < 0x80 {
  9472. break
  9473. }
  9474. }
  9475. if msglen < 0 {
  9476. return ErrInvalidLengthTypes
  9477. }
  9478. postIndex := iNdEx + msglen
  9479. if postIndex < 0 {
  9480. return ErrInvalidLengthTypes
  9481. }
  9482. if postIndex > l {
  9483. return io.ErrUnexpectedEOF
  9484. }
  9485. v := &RequestFlush{}
  9486. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9487. return err
  9488. }
  9489. m.Value = &Request_Flush{v}
  9490. iNdEx = postIndex
  9491. case 4:
  9492. if wireType != 2 {
  9493. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  9494. }
  9495. var msglen int
  9496. for shift := uint(0); ; shift += 7 {
  9497. if shift >= 64 {
  9498. return ErrIntOverflowTypes
  9499. }
  9500. if iNdEx >= l {
  9501. return io.ErrUnexpectedEOF
  9502. }
  9503. b := dAtA[iNdEx]
  9504. iNdEx++
  9505. msglen |= int(b&0x7F) << shift
  9506. if b < 0x80 {
  9507. break
  9508. }
  9509. }
  9510. if msglen < 0 {
  9511. return ErrInvalidLengthTypes
  9512. }
  9513. postIndex := iNdEx + msglen
  9514. if postIndex < 0 {
  9515. return ErrInvalidLengthTypes
  9516. }
  9517. if postIndex > l {
  9518. return io.ErrUnexpectedEOF
  9519. }
  9520. v := &RequestInfo{}
  9521. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9522. return err
  9523. }
  9524. m.Value = &Request_Info{v}
  9525. iNdEx = postIndex
  9526. case 5:
  9527. if wireType != 2 {
  9528. return fmt.Errorf("proto: wrong wireType = %d for field SetOption", wireType)
  9529. }
  9530. var msglen int
  9531. for shift := uint(0); ; shift += 7 {
  9532. if shift >= 64 {
  9533. return ErrIntOverflowTypes
  9534. }
  9535. if iNdEx >= l {
  9536. return io.ErrUnexpectedEOF
  9537. }
  9538. b := dAtA[iNdEx]
  9539. iNdEx++
  9540. msglen |= int(b&0x7F) << shift
  9541. if b < 0x80 {
  9542. break
  9543. }
  9544. }
  9545. if msglen < 0 {
  9546. return ErrInvalidLengthTypes
  9547. }
  9548. postIndex := iNdEx + msglen
  9549. if postIndex < 0 {
  9550. return ErrInvalidLengthTypes
  9551. }
  9552. if postIndex > l {
  9553. return io.ErrUnexpectedEOF
  9554. }
  9555. v := &RequestSetOption{}
  9556. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9557. return err
  9558. }
  9559. m.Value = &Request_SetOption{v}
  9560. iNdEx = postIndex
  9561. case 6:
  9562. if wireType != 2 {
  9563. return fmt.Errorf("proto: wrong wireType = %d for field InitChain", wireType)
  9564. }
  9565. var msglen int
  9566. for shift := uint(0); ; shift += 7 {
  9567. if shift >= 64 {
  9568. return ErrIntOverflowTypes
  9569. }
  9570. if iNdEx >= l {
  9571. return io.ErrUnexpectedEOF
  9572. }
  9573. b := dAtA[iNdEx]
  9574. iNdEx++
  9575. msglen |= int(b&0x7F) << shift
  9576. if b < 0x80 {
  9577. break
  9578. }
  9579. }
  9580. if msglen < 0 {
  9581. return ErrInvalidLengthTypes
  9582. }
  9583. postIndex := iNdEx + msglen
  9584. if postIndex < 0 {
  9585. return ErrInvalidLengthTypes
  9586. }
  9587. if postIndex > l {
  9588. return io.ErrUnexpectedEOF
  9589. }
  9590. v := &RequestInitChain{}
  9591. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9592. return err
  9593. }
  9594. m.Value = &Request_InitChain{v}
  9595. iNdEx = postIndex
  9596. case 7:
  9597. if wireType != 2 {
  9598. return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType)
  9599. }
  9600. var msglen int
  9601. for shift := uint(0); ; shift += 7 {
  9602. if shift >= 64 {
  9603. return ErrIntOverflowTypes
  9604. }
  9605. if iNdEx >= l {
  9606. return io.ErrUnexpectedEOF
  9607. }
  9608. b := dAtA[iNdEx]
  9609. iNdEx++
  9610. msglen |= int(b&0x7F) << shift
  9611. if b < 0x80 {
  9612. break
  9613. }
  9614. }
  9615. if msglen < 0 {
  9616. return ErrInvalidLengthTypes
  9617. }
  9618. postIndex := iNdEx + msglen
  9619. if postIndex < 0 {
  9620. return ErrInvalidLengthTypes
  9621. }
  9622. if postIndex > l {
  9623. return io.ErrUnexpectedEOF
  9624. }
  9625. v := &RequestQuery{}
  9626. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9627. return err
  9628. }
  9629. m.Value = &Request_Query{v}
  9630. iNdEx = postIndex
  9631. case 8:
  9632. if wireType != 2 {
  9633. return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType)
  9634. }
  9635. var msglen int
  9636. for shift := uint(0); ; shift += 7 {
  9637. if shift >= 64 {
  9638. return ErrIntOverflowTypes
  9639. }
  9640. if iNdEx >= l {
  9641. return io.ErrUnexpectedEOF
  9642. }
  9643. b := dAtA[iNdEx]
  9644. iNdEx++
  9645. msglen |= int(b&0x7F) << shift
  9646. if b < 0x80 {
  9647. break
  9648. }
  9649. }
  9650. if msglen < 0 {
  9651. return ErrInvalidLengthTypes
  9652. }
  9653. postIndex := iNdEx + msglen
  9654. if postIndex < 0 {
  9655. return ErrInvalidLengthTypes
  9656. }
  9657. if postIndex > l {
  9658. return io.ErrUnexpectedEOF
  9659. }
  9660. v := &RequestBeginBlock{}
  9661. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9662. return err
  9663. }
  9664. m.Value = &Request_BeginBlock{v}
  9665. iNdEx = postIndex
  9666. case 9:
  9667. if wireType != 2 {
  9668. return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType)
  9669. }
  9670. var msglen int
  9671. for shift := uint(0); ; shift += 7 {
  9672. if shift >= 64 {
  9673. return ErrIntOverflowTypes
  9674. }
  9675. if iNdEx >= l {
  9676. return io.ErrUnexpectedEOF
  9677. }
  9678. b := dAtA[iNdEx]
  9679. iNdEx++
  9680. msglen |= int(b&0x7F) << shift
  9681. if b < 0x80 {
  9682. break
  9683. }
  9684. }
  9685. if msglen < 0 {
  9686. return ErrInvalidLengthTypes
  9687. }
  9688. postIndex := iNdEx + msglen
  9689. if postIndex < 0 {
  9690. return ErrInvalidLengthTypes
  9691. }
  9692. if postIndex > l {
  9693. return io.ErrUnexpectedEOF
  9694. }
  9695. v := &RequestCheckTx{}
  9696. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9697. return err
  9698. }
  9699. m.Value = &Request_CheckTx{v}
  9700. iNdEx = postIndex
  9701. case 11:
  9702. if wireType != 2 {
  9703. return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType)
  9704. }
  9705. var msglen int
  9706. for shift := uint(0); ; shift += 7 {
  9707. if shift >= 64 {
  9708. return ErrIntOverflowTypes
  9709. }
  9710. if iNdEx >= l {
  9711. return io.ErrUnexpectedEOF
  9712. }
  9713. b := dAtA[iNdEx]
  9714. iNdEx++
  9715. msglen |= int(b&0x7F) << shift
  9716. if b < 0x80 {
  9717. break
  9718. }
  9719. }
  9720. if msglen < 0 {
  9721. return ErrInvalidLengthTypes
  9722. }
  9723. postIndex := iNdEx + msglen
  9724. if postIndex < 0 {
  9725. return ErrInvalidLengthTypes
  9726. }
  9727. if postIndex > l {
  9728. return io.ErrUnexpectedEOF
  9729. }
  9730. v := &RequestEndBlock{}
  9731. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9732. return err
  9733. }
  9734. m.Value = &Request_EndBlock{v}
  9735. iNdEx = postIndex
  9736. case 12:
  9737. if wireType != 2 {
  9738. return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType)
  9739. }
  9740. var msglen int
  9741. for shift := uint(0); ; shift += 7 {
  9742. if shift >= 64 {
  9743. return ErrIntOverflowTypes
  9744. }
  9745. if iNdEx >= l {
  9746. return io.ErrUnexpectedEOF
  9747. }
  9748. b := dAtA[iNdEx]
  9749. iNdEx++
  9750. msglen |= int(b&0x7F) << shift
  9751. if b < 0x80 {
  9752. break
  9753. }
  9754. }
  9755. if msglen < 0 {
  9756. return ErrInvalidLengthTypes
  9757. }
  9758. postIndex := iNdEx + msglen
  9759. if postIndex < 0 {
  9760. return ErrInvalidLengthTypes
  9761. }
  9762. if postIndex > l {
  9763. return io.ErrUnexpectedEOF
  9764. }
  9765. v := &RequestCommit{}
  9766. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9767. return err
  9768. }
  9769. m.Value = &Request_Commit{v}
  9770. iNdEx = postIndex
  9771. case 19:
  9772. if wireType != 2 {
  9773. return fmt.Errorf("proto: wrong wireType = %d for field DeliverTx", wireType)
  9774. }
  9775. var msglen int
  9776. for shift := uint(0); ; shift += 7 {
  9777. if shift >= 64 {
  9778. return ErrIntOverflowTypes
  9779. }
  9780. if iNdEx >= l {
  9781. return io.ErrUnexpectedEOF
  9782. }
  9783. b := dAtA[iNdEx]
  9784. iNdEx++
  9785. msglen |= int(b&0x7F) << shift
  9786. if b < 0x80 {
  9787. break
  9788. }
  9789. }
  9790. if msglen < 0 {
  9791. return ErrInvalidLengthTypes
  9792. }
  9793. postIndex := iNdEx + msglen
  9794. if postIndex < 0 {
  9795. return ErrInvalidLengthTypes
  9796. }
  9797. if postIndex > l {
  9798. return io.ErrUnexpectedEOF
  9799. }
  9800. v := &RequestDeliverTx{}
  9801. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9802. return err
  9803. }
  9804. m.Value = &Request_DeliverTx{v}
  9805. iNdEx = postIndex
  9806. default:
  9807. iNdEx = preIndex
  9808. skippy, err := skipTypes(dAtA[iNdEx:])
  9809. if err != nil {
  9810. return err
  9811. }
  9812. if skippy < 0 {
  9813. return ErrInvalidLengthTypes
  9814. }
  9815. if (iNdEx + skippy) < 0 {
  9816. return ErrInvalidLengthTypes
  9817. }
  9818. if (iNdEx + skippy) > l {
  9819. return io.ErrUnexpectedEOF
  9820. }
  9821. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  9822. iNdEx += skippy
  9823. }
  9824. }
  9825. if iNdEx > l {
  9826. return io.ErrUnexpectedEOF
  9827. }
  9828. return nil
  9829. }
  9830. func (m *RequestEcho) Unmarshal(dAtA []byte) error {
  9831. l := len(dAtA)
  9832. iNdEx := 0
  9833. for iNdEx < l {
  9834. preIndex := iNdEx
  9835. var wire uint64
  9836. for shift := uint(0); ; shift += 7 {
  9837. if shift >= 64 {
  9838. return ErrIntOverflowTypes
  9839. }
  9840. if iNdEx >= l {
  9841. return io.ErrUnexpectedEOF
  9842. }
  9843. b := dAtA[iNdEx]
  9844. iNdEx++
  9845. wire |= uint64(b&0x7F) << shift
  9846. if b < 0x80 {
  9847. break
  9848. }
  9849. }
  9850. fieldNum := int32(wire >> 3)
  9851. wireType := int(wire & 0x7)
  9852. if wireType == 4 {
  9853. return fmt.Errorf("proto: RequestEcho: wiretype end group for non-group")
  9854. }
  9855. if fieldNum <= 0 {
  9856. return fmt.Errorf("proto: RequestEcho: illegal tag %d (wire type %d)", fieldNum, wire)
  9857. }
  9858. switch fieldNum {
  9859. case 1:
  9860. if wireType != 2 {
  9861. return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
  9862. }
  9863. var stringLen uint64
  9864. for shift := uint(0); ; shift += 7 {
  9865. if shift >= 64 {
  9866. return ErrIntOverflowTypes
  9867. }
  9868. if iNdEx >= l {
  9869. return io.ErrUnexpectedEOF
  9870. }
  9871. b := dAtA[iNdEx]
  9872. iNdEx++
  9873. stringLen |= uint64(b&0x7F) << shift
  9874. if b < 0x80 {
  9875. break
  9876. }
  9877. }
  9878. intStringLen := int(stringLen)
  9879. if intStringLen < 0 {
  9880. return ErrInvalidLengthTypes
  9881. }
  9882. postIndex := iNdEx + intStringLen
  9883. if postIndex < 0 {
  9884. return ErrInvalidLengthTypes
  9885. }
  9886. if postIndex > l {
  9887. return io.ErrUnexpectedEOF
  9888. }
  9889. m.Message = string(dAtA[iNdEx:postIndex])
  9890. iNdEx = postIndex
  9891. default:
  9892. iNdEx = preIndex
  9893. skippy, err := skipTypes(dAtA[iNdEx:])
  9894. if err != nil {
  9895. return err
  9896. }
  9897. if skippy < 0 {
  9898. return ErrInvalidLengthTypes
  9899. }
  9900. if (iNdEx + skippy) < 0 {
  9901. return ErrInvalidLengthTypes
  9902. }
  9903. if (iNdEx + skippy) > l {
  9904. return io.ErrUnexpectedEOF
  9905. }
  9906. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  9907. iNdEx += skippy
  9908. }
  9909. }
  9910. if iNdEx > l {
  9911. return io.ErrUnexpectedEOF
  9912. }
  9913. return nil
  9914. }
  9915. func (m *RequestFlush) Unmarshal(dAtA []byte) error {
  9916. l := len(dAtA)
  9917. iNdEx := 0
  9918. for iNdEx < l {
  9919. preIndex := iNdEx
  9920. var wire uint64
  9921. for shift := uint(0); ; shift += 7 {
  9922. if shift >= 64 {
  9923. return ErrIntOverflowTypes
  9924. }
  9925. if iNdEx >= l {
  9926. return io.ErrUnexpectedEOF
  9927. }
  9928. b := dAtA[iNdEx]
  9929. iNdEx++
  9930. wire |= uint64(b&0x7F) << shift
  9931. if b < 0x80 {
  9932. break
  9933. }
  9934. }
  9935. fieldNum := int32(wire >> 3)
  9936. wireType := int(wire & 0x7)
  9937. if wireType == 4 {
  9938. return fmt.Errorf("proto: RequestFlush: wiretype end group for non-group")
  9939. }
  9940. if fieldNum <= 0 {
  9941. return fmt.Errorf("proto: RequestFlush: illegal tag %d (wire type %d)", fieldNum, wire)
  9942. }
  9943. switch fieldNum {
  9944. default:
  9945. iNdEx = preIndex
  9946. skippy, err := skipTypes(dAtA[iNdEx:])
  9947. if err != nil {
  9948. return err
  9949. }
  9950. if skippy < 0 {
  9951. return ErrInvalidLengthTypes
  9952. }
  9953. if (iNdEx + skippy) < 0 {
  9954. return ErrInvalidLengthTypes
  9955. }
  9956. if (iNdEx + skippy) > l {
  9957. return io.ErrUnexpectedEOF
  9958. }
  9959. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  9960. iNdEx += skippy
  9961. }
  9962. }
  9963. if iNdEx > l {
  9964. return io.ErrUnexpectedEOF
  9965. }
  9966. return nil
  9967. }
  9968. func (m *RequestInfo) Unmarshal(dAtA []byte) error {
  9969. l := len(dAtA)
  9970. iNdEx := 0
  9971. for iNdEx < l {
  9972. preIndex := iNdEx
  9973. var wire uint64
  9974. for shift := uint(0); ; shift += 7 {
  9975. if shift >= 64 {
  9976. return ErrIntOverflowTypes
  9977. }
  9978. if iNdEx >= l {
  9979. return io.ErrUnexpectedEOF
  9980. }
  9981. b := dAtA[iNdEx]
  9982. iNdEx++
  9983. wire |= uint64(b&0x7F) << shift
  9984. if b < 0x80 {
  9985. break
  9986. }
  9987. }
  9988. fieldNum := int32(wire >> 3)
  9989. wireType := int(wire & 0x7)
  9990. if wireType == 4 {
  9991. return fmt.Errorf("proto: RequestInfo: wiretype end group for non-group")
  9992. }
  9993. if fieldNum <= 0 {
  9994. return fmt.Errorf("proto: RequestInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  9995. }
  9996. switch fieldNum {
  9997. case 1:
  9998. if wireType != 2 {
  9999. return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  10000. }
  10001. var stringLen uint64
  10002. for shift := uint(0); ; shift += 7 {
  10003. if shift >= 64 {
  10004. return ErrIntOverflowTypes
  10005. }
  10006. if iNdEx >= l {
  10007. return io.ErrUnexpectedEOF
  10008. }
  10009. b := dAtA[iNdEx]
  10010. iNdEx++
  10011. stringLen |= uint64(b&0x7F) << shift
  10012. if b < 0x80 {
  10013. break
  10014. }
  10015. }
  10016. intStringLen := int(stringLen)
  10017. if intStringLen < 0 {
  10018. return ErrInvalidLengthTypes
  10019. }
  10020. postIndex := iNdEx + intStringLen
  10021. if postIndex < 0 {
  10022. return ErrInvalidLengthTypes
  10023. }
  10024. if postIndex > l {
  10025. return io.ErrUnexpectedEOF
  10026. }
  10027. m.Version = string(dAtA[iNdEx:postIndex])
  10028. iNdEx = postIndex
  10029. case 2:
  10030. if wireType != 0 {
  10031. return fmt.Errorf("proto: wrong wireType = %d for field BlockVersion", wireType)
  10032. }
  10033. m.BlockVersion = 0
  10034. for shift := uint(0); ; shift += 7 {
  10035. if shift >= 64 {
  10036. return ErrIntOverflowTypes
  10037. }
  10038. if iNdEx >= l {
  10039. return io.ErrUnexpectedEOF
  10040. }
  10041. b := dAtA[iNdEx]
  10042. iNdEx++
  10043. m.BlockVersion |= uint64(b&0x7F) << shift
  10044. if b < 0x80 {
  10045. break
  10046. }
  10047. }
  10048. case 3:
  10049. if wireType != 0 {
  10050. return fmt.Errorf("proto: wrong wireType = %d for field P2PVersion", wireType)
  10051. }
  10052. m.P2PVersion = 0
  10053. for shift := uint(0); ; shift += 7 {
  10054. if shift >= 64 {
  10055. return ErrIntOverflowTypes
  10056. }
  10057. if iNdEx >= l {
  10058. return io.ErrUnexpectedEOF
  10059. }
  10060. b := dAtA[iNdEx]
  10061. iNdEx++
  10062. m.P2PVersion |= uint64(b&0x7F) << shift
  10063. if b < 0x80 {
  10064. break
  10065. }
  10066. }
  10067. default:
  10068. iNdEx = preIndex
  10069. skippy, err := skipTypes(dAtA[iNdEx:])
  10070. if err != nil {
  10071. return err
  10072. }
  10073. if skippy < 0 {
  10074. return ErrInvalidLengthTypes
  10075. }
  10076. if (iNdEx + skippy) < 0 {
  10077. return ErrInvalidLengthTypes
  10078. }
  10079. if (iNdEx + skippy) > l {
  10080. return io.ErrUnexpectedEOF
  10081. }
  10082. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10083. iNdEx += skippy
  10084. }
  10085. }
  10086. if iNdEx > l {
  10087. return io.ErrUnexpectedEOF
  10088. }
  10089. return nil
  10090. }
  10091. func (m *RequestSetOption) Unmarshal(dAtA []byte) error {
  10092. l := len(dAtA)
  10093. iNdEx := 0
  10094. for iNdEx < l {
  10095. preIndex := iNdEx
  10096. var wire uint64
  10097. for shift := uint(0); ; shift += 7 {
  10098. if shift >= 64 {
  10099. return ErrIntOverflowTypes
  10100. }
  10101. if iNdEx >= l {
  10102. return io.ErrUnexpectedEOF
  10103. }
  10104. b := dAtA[iNdEx]
  10105. iNdEx++
  10106. wire |= uint64(b&0x7F) << shift
  10107. if b < 0x80 {
  10108. break
  10109. }
  10110. }
  10111. fieldNum := int32(wire >> 3)
  10112. wireType := int(wire & 0x7)
  10113. if wireType == 4 {
  10114. return fmt.Errorf("proto: RequestSetOption: wiretype end group for non-group")
  10115. }
  10116. if fieldNum <= 0 {
  10117. return fmt.Errorf("proto: RequestSetOption: illegal tag %d (wire type %d)", fieldNum, wire)
  10118. }
  10119. switch fieldNum {
  10120. case 1:
  10121. if wireType != 2 {
  10122. return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  10123. }
  10124. var stringLen uint64
  10125. for shift := uint(0); ; shift += 7 {
  10126. if shift >= 64 {
  10127. return ErrIntOverflowTypes
  10128. }
  10129. if iNdEx >= l {
  10130. return io.ErrUnexpectedEOF
  10131. }
  10132. b := dAtA[iNdEx]
  10133. iNdEx++
  10134. stringLen |= uint64(b&0x7F) << shift
  10135. if b < 0x80 {
  10136. break
  10137. }
  10138. }
  10139. intStringLen := int(stringLen)
  10140. if intStringLen < 0 {
  10141. return ErrInvalidLengthTypes
  10142. }
  10143. postIndex := iNdEx + intStringLen
  10144. if postIndex < 0 {
  10145. return ErrInvalidLengthTypes
  10146. }
  10147. if postIndex > l {
  10148. return io.ErrUnexpectedEOF
  10149. }
  10150. m.Key = string(dAtA[iNdEx:postIndex])
  10151. iNdEx = postIndex
  10152. case 2:
  10153. if wireType != 2 {
  10154. return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  10155. }
  10156. var stringLen uint64
  10157. for shift := uint(0); ; shift += 7 {
  10158. if shift >= 64 {
  10159. return ErrIntOverflowTypes
  10160. }
  10161. if iNdEx >= l {
  10162. return io.ErrUnexpectedEOF
  10163. }
  10164. b := dAtA[iNdEx]
  10165. iNdEx++
  10166. stringLen |= uint64(b&0x7F) << shift
  10167. if b < 0x80 {
  10168. break
  10169. }
  10170. }
  10171. intStringLen := int(stringLen)
  10172. if intStringLen < 0 {
  10173. return ErrInvalidLengthTypes
  10174. }
  10175. postIndex := iNdEx + intStringLen
  10176. if postIndex < 0 {
  10177. return ErrInvalidLengthTypes
  10178. }
  10179. if postIndex > l {
  10180. return io.ErrUnexpectedEOF
  10181. }
  10182. m.Value = string(dAtA[iNdEx:postIndex])
  10183. iNdEx = postIndex
  10184. default:
  10185. iNdEx = preIndex
  10186. skippy, err := skipTypes(dAtA[iNdEx:])
  10187. if err != nil {
  10188. return err
  10189. }
  10190. if skippy < 0 {
  10191. return ErrInvalidLengthTypes
  10192. }
  10193. if (iNdEx + skippy) < 0 {
  10194. return ErrInvalidLengthTypes
  10195. }
  10196. if (iNdEx + skippy) > l {
  10197. return io.ErrUnexpectedEOF
  10198. }
  10199. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10200. iNdEx += skippy
  10201. }
  10202. }
  10203. if iNdEx > l {
  10204. return io.ErrUnexpectedEOF
  10205. }
  10206. return nil
  10207. }
  10208. func (m *RequestInitChain) Unmarshal(dAtA []byte) error {
  10209. l := len(dAtA)
  10210. iNdEx := 0
  10211. for iNdEx < l {
  10212. preIndex := iNdEx
  10213. var wire uint64
  10214. for shift := uint(0); ; shift += 7 {
  10215. if shift >= 64 {
  10216. return ErrIntOverflowTypes
  10217. }
  10218. if iNdEx >= l {
  10219. return io.ErrUnexpectedEOF
  10220. }
  10221. b := dAtA[iNdEx]
  10222. iNdEx++
  10223. wire |= uint64(b&0x7F) << shift
  10224. if b < 0x80 {
  10225. break
  10226. }
  10227. }
  10228. fieldNum := int32(wire >> 3)
  10229. wireType := int(wire & 0x7)
  10230. if wireType == 4 {
  10231. return fmt.Errorf("proto: RequestInitChain: wiretype end group for non-group")
  10232. }
  10233. if fieldNum <= 0 {
  10234. return fmt.Errorf("proto: RequestInitChain: illegal tag %d (wire type %d)", fieldNum, wire)
  10235. }
  10236. switch fieldNum {
  10237. case 1:
  10238. if wireType != 2 {
  10239. return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
  10240. }
  10241. var msglen int
  10242. for shift := uint(0); ; shift += 7 {
  10243. if shift >= 64 {
  10244. return ErrIntOverflowTypes
  10245. }
  10246. if iNdEx >= l {
  10247. return io.ErrUnexpectedEOF
  10248. }
  10249. b := dAtA[iNdEx]
  10250. iNdEx++
  10251. msglen |= int(b&0x7F) << shift
  10252. if b < 0x80 {
  10253. break
  10254. }
  10255. }
  10256. if msglen < 0 {
  10257. return ErrInvalidLengthTypes
  10258. }
  10259. postIndex := iNdEx + msglen
  10260. if postIndex < 0 {
  10261. return ErrInvalidLengthTypes
  10262. }
  10263. if postIndex > l {
  10264. return io.ErrUnexpectedEOF
  10265. }
  10266. if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil {
  10267. return err
  10268. }
  10269. iNdEx = postIndex
  10270. case 2:
  10271. if wireType != 2 {
  10272. return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType)
  10273. }
  10274. var stringLen uint64
  10275. for shift := uint(0); ; shift += 7 {
  10276. if shift >= 64 {
  10277. return ErrIntOverflowTypes
  10278. }
  10279. if iNdEx >= l {
  10280. return io.ErrUnexpectedEOF
  10281. }
  10282. b := dAtA[iNdEx]
  10283. iNdEx++
  10284. stringLen |= uint64(b&0x7F) << shift
  10285. if b < 0x80 {
  10286. break
  10287. }
  10288. }
  10289. intStringLen := int(stringLen)
  10290. if intStringLen < 0 {
  10291. return ErrInvalidLengthTypes
  10292. }
  10293. postIndex := iNdEx + intStringLen
  10294. if postIndex < 0 {
  10295. return ErrInvalidLengthTypes
  10296. }
  10297. if postIndex > l {
  10298. return io.ErrUnexpectedEOF
  10299. }
  10300. m.ChainId = string(dAtA[iNdEx:postIndex])
  10301. iNdEx = postIndex
  10302. case 3:
  10303. if wireType != 2 {
  10304. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParams", wireType)
  10305. }
  10306. var msglen int
  10307. for shift := uint(0); ; shift += 7 {
  10308. if shift >= 64 {
  10309. return ErrIntOverflowTypes
  10310. }
  10311. if iNdEx >= l {
  10312. return io.ErrUnexpectedEOF
  10313. }
  10314. b := dAtA[iNdEx]
  10315. iNdEx++
  10316. msglen |= int(b&0x7F) << shift
  10317. if b < 0x80 {
  10318. break
  10319. }
  10320. }
  10321. if msglen < 0 {
  10322. return ErrInvalidLengthTypes
  10323. }
  10324. postIndex := iNdEx + msglen
  10325. if postIndex < 0 {
  10326. return ErrInvalidLengthTypes
  10327. }
  10328. if postIndex > l {
  10329. return io.ErrUnexpectedEOF
  10330. }
  10331. if m.ConsensusParams == nil {
  10332. m.ConsensusParams = &ConsensusParams{}
  10333. }
  10334. if err := m.ConsensusParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10335. return err
  10336. }
  10337. iNdEx = postIndex
  10338. case 4:
  10339. if wireType != 2 {
  10340. return fmt.Errorf("proto: wrong wireType = %d for field Validators", wireType)
  10341. }
  10342. var msglen int
  10343. for shift := uint(0); ; shift += 7 {
  10344. if shift >= 64 {
  10345. return ErrIntOverflowTypes
  10346. }
  10347. if iNdEx >= l {
  10348. return io.ErrUnexpectedEOF
  10349. }
  10350. b := dAtA[iNdEx]
  10351. iNdEx++
  10352. msglen |= int(b&0x7F) << shift
  10353. if b < 0x80 {
  10354. break
  10355. }
  10356. }
  10357. if msglen < 0 {
  10358. return ErrInvalidLengthTypes
  10359. }
  10360. postIndex := iNdEx + msglen
  10361. if postIndex < 0 {
  10362. return ErrInvalidLengthTypes
  10363. }
  10364. if postIndex > l {
  10365. return io.ErrUnexpectedEOF
  10366. }
  10367. m.Validators = append(m.Validators, ValidatorUpdate{})
  10368. if err := m.Validators[len(m.Validators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10369. return err
  10370. }
  10371. iNdEx = postIndex
  10372. case 5:
  10373. if wireType != 2 {
  10374. return fmt.Errorf("proto: wrong wireType = %d for field AppStateBytes", wireType)
  10375. }
  10376. var byteLen int
  10377. for shift := uint(0); ; shift += 7 {
  10378. if shift >= 64 {
  10379. return ErrIntOverflowTypes
  10380. }
  10381. if iNdEx >= l {
  10382. return io.ErrUnexpectedEOF
  10383. }
  10384. b := dAtA[iNdEx]
  10385. iNdEx++
  10386. byteLen |= int(b&0x7F) << shift
  10387. if b < 0x80 {
  10388. break
  10389. }
  10390. }
  10391. if byteLen < 0 {
  10392. return ErrInvalidLengthTypes
  10393. }
  10394. postIndex := iNdEx + byteLen
  10395. if postIndex < 0 {
  10396. return ErrInvalidLengthTypes
  10397. }
  10398. if postIndex > l {
  10399. return io.ErrUnexpectedEOF
  10400. }
  10401. m.AppStateBytes = append(m.AppStateBytes[:0], dAtA[iNdEx:postIndex]...)
  10402. if m.AppStateBytes == nil {
  10403. m.AppStateBytes = []byte{}
  10404. }
  10405. iNdEx = postIndex
  10406. default:
  10407. iNdEx = preIndex
  10408. skippy, err := skipTypes(dAtA[iNdEx:])
  10409. if err != nil {
  10410. return err
  10411. }
  10412. if skippy < 0 {
  10413. return ErrInvalidLengthTypes
  10414. }
  10415. if (iNdEx + skippy) < 0 {
  10416. return ErrInvalidLengthTypes
  10417. }
  10418. if (iNdEx + skippy) > l {
  10419. return io.ErrUnexpectedEOF
  10420. }
  10421. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10422. iNdEx += skippy
  10423. }
  10424. }
  10425. if iNdEx > l {
  10426. return io.ErrUnexpectedEOF
  10427. }
  10428. return nil
  10429. }
  10430. func (m *RequestQuery) Unmarshal(dAtA []byte) error {
  10431. l := len(dAtA)
  10432. iNdEx := 0
  10433. for iNdEx < l {
  10434. preIndex := iNdEx
  10435. var wire uint64
  10436. for shift := uint(0); ; shift += 7 {
  10437. if shift >= 64 {
  10438. return ErrIntOverflowTypes
  10439. }
  10440. if iNdEx >= l {
  10441. return io.ErrUnexpectedEOF
  10442. }
  10443. b := dAtA[iNdEx]
  10444. iNdEx++
  10445. wire |= uint64(b&0x7F) << shift
  10446. if b < 0x80 {
  10447. break
  10448. }
  10449. }
  10450. fieldNum := int32(wire >> 3)
  10451. wireType := int(wire & 0x7)
  10452. if wireType == 4 {
  10453. return fmt.Errorf("proto: RequestQuery: wiretype end group for non-group")
  10454. }
  10455. if fieldNum <= 0 {
  10456. return fmt.Errorf("proto: RequestQuery: illegal tag %d (wire type %d)", fieldNum, wire)
  10457. }
  10458. switch fieldNum {
  10459. case 1:
  10460. if wireType != 2 {
  10461. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  10462. }
  10463. var byteLen int
  10464. for shift := uint(0); ; shift += 7 {
  10465. if shift >= 64 {
  10466. return ErrIntOverflowTypes
  10467. }
  10468. if iNdEx >= l {
  10469. return io.ErrUnexpectedEOF
  10470. }
  10471. b := dAtA[iNdEx]
  10472. iNdEx++
  10473. byteLen |= int(b&0x7F) << shift
  10474. if b < 0x80 {
  10475. break
  10476. }
  10477. }
  10478. if byteLen < 0 {
  10479. return ErrInvalidLengthTypes
  10480. }
  10481. postIndex := iNdEx + byteLen
  10482. if postIndex < 0 {
  10483. return ErrInvalidLengthTypes
  10484. }
  10485. if postIndex > l {
  10486. return io.ErrUnexpectedEOF
  10487. }
  10488. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  10489. if m.Data == nil {
  10490. m.Data = []byte{}
  10491. }
  10492. iNdEx = postIndex
  10493. case 2:
  10494. if wireType != 2 {
  10495. return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
  10496. }
  10497. var stringLen uint64
  10498. for shift := uint(0); ; shift += 7 {
  10499. if shift >= 64 {
  10500. return ErrIntOverflowTypes
  10501. }
  10502. if iNdEx >= l {
  10503. return io.ErrUnexpectedEOF
  10504. }
  10505. b := dAtA[iNdEx]
  10506. iNdEx++
  10507. stringLen |= uint64(b&0x7F) << shift
  10508. if b < 0x80 {
  10509. break
  10510. }
  10511. }
  10512. intStringLen := int(stringLen)
  10513. if intStringLen < 0 {
  10514. return ErrInvalidLengthTypes
  10515. }
  10516. postIndex := iNdEx + intStringLen
  10517. if postIndex < 0 {
  10518. return ErrInvalidLengthTypes
  10519. }
  10520. if postIndex > l {
  10521. return io.ErrUnexpectedEOF
  10522. }
  10523. m.Path = string(dAtA[iNdEx:postIndex])
  10524. iNdEx = postIndex
  10525. case 3:
  10526. if wireType != 0 {
  10527. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  10528. }
  10529. m.Height = 0
  10530. for shift := uint(0); ; shift += 7 {
  10531. if shift >= 64 {
  10532. return ErrIntOverflowTypes
  10533. }
  10534. if iNdEx >= l {
  10535. return io.ErrUnexpectedEOF
  10536. }
  10537. b := dAtA[iNdEx]
  10538. iNdEx++
  10539. m.Height |= int64(b&0x7F) << shift
  10540. if b < 0x80 {
  10541. break
  10542. }
  10543. }
  10544. case 4:
  10545. if wireType != 0 {
  10546. return fmt.Errorf("proto: wrong wireType = %d for field Prove", wireType)
  10547. }
  10548. var v int
  10549. for shift := uint(0); ; shift += 7 {
  10550. if shift >= 64 {
  10551. return ErrIntOverflowTypes
  10552. }
  10553. if iNdEx >= l {
  10554. return io.ErrUnexpectedEOF
  10555. }
  10556. b := dAtA[iNdEx]
  10557. iNdEx++
  10558. v |= int(b&0x7F) << shift
  10559. if b < 0x80 {
  10560. break
  10561. }
  10562. }
  10563. m.Prove = bool(v != 0)
  10564. default:
  10565. iNdEx = preIndex
  10566. skippy, err := skipTypes(dAtA[iNdEx:])
  10567. if err != nil {
  10568. return err
  10569. }
  10570. if skippy < 0 {
  10571. return ErrInvalidLengthTypes
  10572. }
  10573. if (iNdEx + skippy) < 0 {
  10574. return ErrInvalidLengthTypes
  10575. }
  10576. if (iNdEx + skippy) > l {
  10577. return io.ErrUnexpectedEOF
  10578. }
  10579. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10580. iNdEx += skippy
  10581. }
  10582. }
  10583. if iNdEx > l {
  10584. return io.ErrUnexpectedEOF
  10585. }
  10586. return nil
  10587. }
  10588. func (m *RequestBeginBlock) Unmarshal(dAtA []byte) error {
  10589. l := len(dAtA)
  10590. iNdEx := 0
  10591. for iNdEx < l {
  10592. preIndex := iNdEx
  10593. var wire uint64
  10594. for shift := uint(0); ; shift += 7 {
  10595. if shift >= 64 {
  10596. return ErrIntOverflowTypes
  10597. }
  10598. if iNdEx >= l {
  10599. return io.ErrUnexpectedEOF
  10600. }
  10601. b := dAtA[iNdEx]
  10602. iNdEx++
  10603. wire |= uint64(b&0x7F) << shift
  10604. if b < 0x80 {
  10605. break
  10606. }
  10607. }
  10608. fieldNum := int32(wire >> 3)
  10609. wireType := int(wire & 0x7)
  10610. if wireType == 4 {
  10611. return fmt.Errorf("proto: RequestBeginBlock: wiretype end group for non-group")
  10612. }
  10613. if fieldNum <= 0 {
  10614. return fmt.Errorf("proto: RequestBeginBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  10615. }
  10616. switch fieldNum {
  10617. case 1:
  10618. if wireType != 2 {
  10619. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  10620. }
  10621. var byteLen int
  10622. for shift := uint(0); ; shift += 7 {
  10623. if shift >= 64 {
  10624. return ErrIntOverflowTypes
  10625. }
  10626. if iNdEx >= l {
  10627. return io.ErrUnexpectedEOF
  10628. }
  10629. b := dAtA[iNdEx]
  10630. iNdEx++
  10631. byteLen |= int(b&0x7F) << shift
  10632. if b < 0x80 {
  10633. break
  10634. }
  10635. }
  10636. if byteLen < 0 {
  10637. return ErrInvalidLengthTypes
  10638. }
  10639. postIndex := iNdEx + byteLen
  10640. if postIndex < 0 {
  10641. return ErrInvalidLengthTypes
  10642. }
  10643. if postIndex > l {
  10644. return io.ErrUnexpectedEOF
  10645. }
  10646. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  10647. if m.Hash == nil {
  10648. m.Hash = []byte{}
  10649. }
  10650. iNdEx = postIndex
  10651. case 2:
  10652. if wireType != 2 {
  10653. return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType)
  10654. }
  10655. var msglen int
  10656. for shift := uint(0); ; shift += 7 {
  10657. if shift >= 64 {
  10658. return ErrIntOverflowTypes
  10659. }
  10660. if iNdEx >= l {
  10661. return io.ErrUnexpectedEOF
  10662. }
  10663. b := dAtA[iNdEx]
  10664. iNdEx++
  10665. msglen |= int(b&0x7F) << shift
  10666. if b < 0x80 {
  10667. break
  10668. }
  10669. }
  10670. if msglen < 0 {
  10671. return ErrInvalidLengthTypes
  10672. }
  10673. postIndex := iNdEx + msglen
  10674. if postIndex < 0 {
  10675. return ErrInvalidLengthTypes
  10676. }
  10677. if postIndex > l {
  10678. return io.ErrUnexpectedEOF
  10679. }
  10680. if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10681. return err
  10682. }
  10683. iNdEx = postIndex
  10684. case 3:
  10685. if wireType != 2 {
  10686. return fmt.Errorf("proto: wrong wireType = %d for field LastCommitInfo", wireType)
  10687. }
  10688. var msglen int
  10689. for shift := uint(0); ; shift += 7 {
  10690. if shift >= 64 {
  10691. return ErrIntOverflowTypes
  10692. }
  10693. if iNdEx >= l {
  10694. return io.ErrUnexpectedEOF
  10695. }
  10696. b := dAtA[iNdEx]
  10697. iNdEx++
  10698. msglen |= int(b&0x7F) << shift
  10699. if b < 0x80 {
  10700. break
  10701. }
  10702. }
  10703. if msglen < 0 {
  10704. return ErrInvalidLengthTypes
  10705. }
  10706. postIndex := iNdEx + msglen
  10707. if postIndex < 0 {
  10708. return ErrInvalidLengthTypes
  10709. }
  10710. if postIndex > l {
  10711. return io.ErrUnexpectedEOF
  10712. }
  10713. if err := m.LastCommitInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10714. return err
  10715. }
  10716. iNdEx = postIndex
  10717. case 4:
  10718. if wireType != 2 {
  10719. return fmt.Errorf("proto: wrong wireType = %d for field ByzantineValidators", wireType)
  10720. }
  10721. var msglen int
  10722. for shift := uint(0); ; shift += 7 {
  10723. if shift >= 64 {
  10724. return ErrIntOverflowTypes
  10725. }
  10726. if iNdEx >= l {
  10727. return io.ErrUnexpectedEOF
  10728. }
  10729. b := dAtA[iNdEx]
  10730. iNdEx++
  10731. msglen |= int(b&0x7F) << shift
  10732. if b < 0x80 {
  10733. break
  10734. }
  10735. }
  10736. if msglen < 0 {
  10737. return ErrInvalidLengthTypes
  10738. }
  10739. postIndex := iNdEx + msglen
  10740. if postIndex < 0 {
  10741. return ErrInvalidLengthTypes
  10742. }
  10743. if postIndex > l {
  10744. return io.ErrUnexpectedEOF
  10745. }
  10746. m.ByzantineValidators = append(m.ByzantineValidators, Evidence{})
  10747. if err := m.ByzantineValidators[len(m.ByzantineValidators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10748. return err
  10749. }
  10750. iNdEx = postIndex
  10751. default:
  10752. iNdEx = preIndex
  10753. skippy, err := skipTypes(dAtA[iNdEx:])
  10754. if err != nil {
  10755. return err
  10756. }
  10757. if skippy < 0 {
  10758. return ErrInvalidLengthTypes
  10759. }
  10760. if (iNdEx + skippy) < 0 {
  10761. return ErrInvalidLengthTypes
  10762. }
  10763. if (iNdEx + skippy) > l {
  10764. return io.ErrUnexpectedEOF
  10765. }
  10766. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10767. iNdEx += skippy
  10768. }
  10769. }
  10770. if iNdEx > l {
  10771. return io.ErrUnexpectedEOF
  10772. }
  10773. return nil
  10774. }
  10775. func (m *RequestCheckTx) Unmarshal(dAtA []byte) error {
  10776. l := len(dAtA)
  10777. iNdEx := 0
  10778. for iNdEx < l {
  10779. preIndex := iNdEx
  10780. var wire uint64
  10781. for shift := uint(0); ; shift += 7 {
  10782. if shift >= 64 {
  10783. return ErrIntOverflowTypes
  10784. }
  10785. if iNdEx >= l {
  10786. return io.ErrUnexpectedEOF
  10787. }
  10788. b := dAtA[iNdEx]
  10789. iNdEx++
  10790. wire |= uint64(b&0x7F) << shift
  10791. if b < 0x80 {
  10792. break
  10793. }
  10794. }
  10795. fieldNum := int32(wire >> 3)
  10796. wireType := int(wire & 0x7)
  10797. if wireType == 4 {
  10798. return fmt.Errorf("proto: RequestCheckTx: wiretype end group for non-group")
  10799. }
  10800. if fieldNum <= 0 {
  10801. return fmt.Errorf("proto: RequestCheckTx: illegal tag %d (wire type %d)", fieldNum, wire)
  10802. }
  10803. switch fieldNum {
  10804. case 1:
  10805. if wireType != 2 {
  10806. return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType)
  10807. }
  10808. var byteLen int
  10809. for shift := uint(0); ; shift += 7 {
  10810. if shift >= 64 {
  10811. return ErrIntOverflowTypes
  10812. }
  10813. if iNdEx >= l {
  10814. return io.ErrUnexpectedEOF
  10815. }
  10816. b := dAtA[iNdEx]
  10817. iNdEx++
  10818. byteLen |= int(b&0x7F) << shift
  10819. if b < 0x80 {
  10820. break
  10821. }
  10822. }
  10823. if byteLen < 0 {
  10824. return ErrInvalidLengthTypes
  10825. }
  10826. postIndex := iNdEx + byteLen
  10827. if postIndex < 0 {
  10828. return ErrInvalidLengthTypes
  10829. }
  10830. if postIndex > l {
  10831. return io.ErrUnexpectedEOF
  10832. }
  10833. m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...)
  10834. if m.Tx == nil {
  10835. m.Tx = []byte{}
  10836. }
  10837. iNdEx = postIndex
  10838. case 2:
  10839. if wireType != 0 {
  10840. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  10841. }
  10842. m.Type = 0
  10843. for shift := uint(0); ; shift += 7 {
  10844. if shift >= 64 {
  10845. return ErrIntOverflowTypes
  10846. }
  10847. if iNdEx >= l {
  10848. return io.ErrUnexpectedEOF
  10849. }
  10850. b := dAtA[iNdEx]
  10851. iNdEx++
  10852. m.Type |= CheckTxType(b&0x7F) << shift
  10853. if b < 0x80 {
  10854. break
  10855. }
  10856. }
  10857. default:
  10858. iNdEx = preIndex
  10859. skippy, err := skipTypes(dAtA[iNdEx:])
  10860. if err != nil {
  10861. return err
  10862. }
  10863. if skippy < 0 {
  10864. return ErrInvalidLengthTypes
  10865. }
  10866. if (iNdEx + skippy) < 0 {
  10867. return ErrInvalidLengthTypes
  10868. }
  10869. if (iNdEx + skippy) > l {
  10870. return io.ErrUnexpectedEOF
  10871. }
  10872. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10873. iNdEx += skippy
  10874. }
  10875. }
  10876. if iNdEx > l {
  10877. return io.ErrUnexpectedEOF
  10878. }
  10879. return nil
  10880. }
  10881. func (m *RequestDeliverTx) Unmarshal(dAtA []byte) error {
  10882. l := len(dAtA)
  10883. iNdEx := 0
  10884. for iNdEx < l {
  10885. preIndex := iNdEx
  10886. var wire uint64
  10887. for shift := uint(0); ; shift += 7 {
  10888. if shift >= 64 {
  10889. return ErrIntOverflowTypes
  10890. }
  10891. if iNdEx >= l {
  10892. return io.ErrUnexpectedEOF
  10893. }
  10894. b := dAtA[iNdEx]
  10895. iNdEx++
  10896. wire |= uint64(b&0x7F) << shift
  10897. if b < 0x80 {
  10898. break
  10899. }
  10900. }
  10901. fieldNum := int32(wire >> 3)
  10902. wireType := int(wire & 0x7)
  10903. if wireType == 4 {
  10904. return fmt.Errorf("proto: RequestDeliverTx: wiretype end group for non-group")
  10905. }
  10906. if fieldNum <= 0 {
  10907. return fmt.Errorf("proto: RequestDeliverTx: illegal tag %d (wire type %d)", fieldNum, wire)
  10908. }
  10909. switch fieldNum {
  10910. case 1:
  10911. if wireType != 2 {
  10912. return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType)
  10913. }
  10914. var byteLen int
  10915. for shift := uint(0); ; shift += 7 {
  10916. if shift >= 64 {
  10917. return ErrIntOverflowTypes
  10918. }
  10919. if iNdEx >= l {
  10920. return io.ErrUnexpectedEOF
  10921. }
  10922. b := dAtA[iNdEx]
  10923. iNdEx++
  10924. byteLen |= int(b&0x7F) << shift
  10925. if b < 0x80 {
  10926. break
  10927. }
  10928. }
  10929. if byteLen < 0 {
  10930. return ErrInvalidLengthTypes
  10931. }
  10932. postIndex := iNdEx + byteLen
  10933. if postIndex < 0 {
  10934. return ErrInvalidLengthTypes
  10935. }
  10936. if postIndex > l {
  10937. return io.ErrUnexpectedEOF
  10938. }
  10939. m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...)
  10940. if m.Tx == nil {
  10941. m.Tx = []byte{}
  10942. }
  10943. iNdEx = postIndex
  10944. default:
  10945. iNdEx = preIndex
  10946. skippy, err := skipTypes(dAtA[iNdEx:])
  10947. if err != nil {
  10948. return err
  10949. }
  10950. if skippy < 0 {
  10951. return ErrInvalidLengthTypes
  10952. }
  10953. if (iNdEx + skippy) < 0 {
  10954. return ErrInvalidLengthTypes
  10955. }
  10956. if (iNdEx + skippy) > l {
  10957. return io.ErrUnexpectedEOF
  10958. }
  10959. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10960. iNdEx += skippy
  10961. }
  10962. }
  10963. if iNdEx > l {
  10964. return io.ErrUnexpectedEOF
  10965. }
  10966. return nil
  10967. }
  10968. func (m *RequestEndBlock) Unmarshal(dAtA []byte) error {
  10969. l := len(dAtA)
  10970. iNdEx := 0
  10971. for iNdEx < l {
  10972. preIndex := iNdEx
  10973. var wire uint64
  10974. for shift := uint(0); ; shift += 7 {
  10975. if shift >= 64 {
  10976. return ErrIntOverflowTypes
  10977. }
  10978. if iNdEx >= l {
  10979. return io.ErrUnexpectedEOF
  10980. }
  10981. b := dAtA[iNdEx]
  10982. iNdEx++
  10983. wire |= uint64(b&0x7F) << shift
  10984. if b < 0x80 {
  10985. break
  10986. }
  10987. }
  10988. fieldNum := int32(wire >> 3)
  10989. wireType := int(wire & 0x7)
  10990. if wireType == 4 {
  10991. return fmt.Errorf("proto: RequestEndBlock: wiretype end group for non-group")
  10992. }
  10993. if fieldNum <= 0 {
  10994. return fmt.Errorf("proto: RequestEndBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  10995. }
  10996. switch fieldNum {
  10997. case 1:
  10998. if wireType != 0 {
  10999. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  11000. }
  11001. m.Height = 0
  11002. for shift := uint(0); ; shift += 7 {
  11003. if shift >= 64 {
  11004. return ErrIntOverflowTypes
  11005. }
  11006. if iNdEx >= l {
  11007. return io.ErrUnexpectedEOF
  11008. }
  11009. b := dAtA[iNdEx]
  11010. iNdEx++
  11011. m.Height |= int64(b&0x7F) << shift
  11012. if b < 0x80 {
  11013. break
  11014. }
  11015. }
  11016. default:
  11017. iNdEx = preIndex
  11018. skippy, err := skipTypes(dAtA[iNdEx:])
  11019. if err != nil {
  11020. return err
  11021. }
  11022. if skippy < 0 {
  11023. return ErrInvalidLengthTypes
  11024. }
  11025. if (iNdEx + skippy) < 0 {
  11026. return ErrInvalidLengthTypes
  11027. }
  11028. if (iNdEx + skippy) > l {
  11029. return io.ErrUnexpectedEOF
  11030. }
  11031. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11032. iNdEx += skippy
  11033. }
  11034. }
  11035. if iNdEx > l {
  11036. return io.ErrUnexpectedEOF
  11037. }
  11038. return nil
  11039. }
  11040. func (m *RequestCommit) Unmarshal(dAtA []byte) error {
  11041. l := len(dAtA)
  11042. iNdEx := 0
  11043. for iNdEx < l {
  11044. preIndex := iNdEx
  11045. var wire uint64
  11046. for shift := uint(0); ; shift += 7 {
  11047. if shift >= 64 {
  11048. return ErrIntOverflowTypes
  11049. }
  11050. if iNdEx >= l {
  11051. return io.ErrUnexpectedEOF
  11052. }
  11053. b := dAtA[iNdEx]
  11054. iNdEx++
  11055. wire |= uint64(b&0x7F) << shift
  11056. if b < 0x80 {
  11057. break
  11058. }
  11059. }
  11060. fieldNum := int32(wire >> 3)
  11061. wireType := int(wire & 0x7)
  11062. if wireType == 4 {
  11063. return fmt.Errorf("proto: RequestCommit: wiretype end group for non-group")
  11064. }
  11065. if fieldNum <= 0 {
  11066. return fmt.Errorf("proto: RequestCommit: illegal tag %d (wire type %d)", fieldNum, wire)
  11067. }
  11068. switch fieldNum {
  11069. default:
  11070. iNdEx = preIndex
  11071. skippy, err := skipTypes(dAtA[iNdEx:])
  11072. if err != nil {
  11073. return err
  11074. }
  11075. if skippy < 0 {
  11076. return ErrInvalidLengthTypes
  11077. }
  11078. if (iNdEx + skippy) < 0 {
  11079. return ErrInvalidLengthTypes
  11080. }
  11081. if (iNdEx + skippy) > l {
  11082. return io.ErrUnexpectedEOF
  11083. }
  11084. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11085. iNdEx += skippy
  11086. }
  11087. }
  11088. if iNdEx > l {
  11089. return io.ErrUnexpectedEOF
  11090. }
  11091. return nil
  11092. }
  11093. func (m *Response) Unmarshal(dAtA []byte) error {
  11094. l := len(dAtA)
  11095. iNdEx := 0
  11096. for iNdEx < l {
  11097. preIndex := iNdEx
  11098. var wire uint64
  11099. for shift := uint(0); ; shift += 7 {
  11100. if shift >= 64 {
  11101. return ErrIntOverflowTypes
  11102. }
  11103. if iNdEx >= l {
  11104. return io.ErrUnexpectedEOF
  11105. }
  11106. b := dAtA[iNdEx]
  11107. iNdEx++
  11108. wire |= uint64(b&0x7F) << shift
  11109. if b < 0x80 {
  11110. break
  11111. }
  11112. }
  11113. fieldNum := int32(wire >> 3)
  11114. wireType := int(wire & 0x7)
  11115. if wireType == 4 {
  11116. return fmt.Errorf("proto: Response: wiretype end group for non-group")
  11117. }
  11118. if fieldNum <= 0 {
  11119. return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
  11120. }
  11121. switch fieldNum {
  11122. case 1:
  11123. if wireType != 2 {
  11124. return fmt.Errorf("proto: wrong wireType = %d for field Exception", wireType)
  11125. }
  11126. var msglen int
  11127. for shift := uint(0); ; shift += 7 {
  11128. if shift >= 64 {
  11129. return ErrIntOverflowTypes
  11130. }
  11131. if iNdEx >= l {
  11132. return io.ErrUnexpectedEOF
  11133. }
  11134. b := dAtA[iNdEx]
  11135. iNdEx++
  11136. msglen |= int(b&0x7F) << shift
  11137. if b < 0x80 {
  11138. break
  11139. }
  11140. }
  11141. if msglen < 0 {
  11142. return ErrInvalidLengthTypes
  11143. }
  11144. postIndex := iNdEx + msglen
  11145. if postIndex < 0 {
  11146. return ErrInvalidLengthTypes
  11147. }
  11148. if postIndex > l {
  11149. return io.ErrUnexpectedEOF
  11150. }
  11151. v := &ResponseException{}
  11152. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11153. return err
  11154. }
  11155. m.Value = &Response_Exception{v}
  11156. iNdEx = postIndex
  11157. case 2:
  11158. if wireType != 2 {
  11159. return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType)
  11160. }
  11161. var msglen int
  11162. for shift := uint(0); ; shift += 7 {
  11163. if shift >= 64 {
  11164. return ErrIntOverflowTypes
  11165. }
  11166. if iNdEx >= l {
  11167. return io.ErrUnexpectedEOF
  11168. }
  11169. b := dAtA[iNdEx]
  11170. iNdEx++
  11171. msglen |= int(b&0x7F) << shift
  11172. if b < 0x80 {
  11173. break
  11174. }
  11175. }
  11176. if msglen < 0 {
  11177. return ErrInvalidLengthTypes
  11178. }
  11179. postIndex := iNdEx + msglen
  11180. if postIndex < 0 {
  11181. return ErrInvalidLengthTypes
  11182. }
  11183. if postIndex > l {
  11184. return io.ErrUnexpectedEOF
  11185. }
  11186. v := &ResponseEcho{}
  11187. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11188. return err
  11189. }
  11190. m.Value = &Response_Echo{v}
  11191. iNdEx = postIndex
  11192. case 3:
  11193. if wireType != 2 {
  11194. return fmt.Errorf("proto: wrong wireType = %d for field Flush", wireType)
  11195. }
  11196. var msglen int
  11197. for shift := uint(0); ; shift += 7 {
  11198. if shift >= 64 {
  11199. return ErrIntOverflowTypes
  11200. }
  11201. if iNdEx >= l {
  11202. return io.ErrUnexpectedEOF
  11203. }
  11204. b := dAtA[iNdEx]
  11205. iNdEx++
  11206. msglen |= int(b&0x7F) << shift
  11207. if b < 0x80 {
  11208. break
  11209. }
  11210. }
  11211. if msglen < 0 {
  11212. return ErrInvalidLengthTypes
  11213. }
  11214. postIndex := iNdEx + msglen
  11215. if postIndex < 0 {
  11216. return ErrInvalidLengthTypes
  11217. }
  11218. if postIndex > l {
  11219. return io.ErrUnexpectedEOF
  11220. }
  11221. v := &ResponseFlush{}
  11222. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11223. return err
  11224. }
  11225. m.Value = &Response_Flush{v}
  11226. iNdEx = postIndex
  11227. case 4:
  11228. if wireType != 2 {
  11229. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  11230. }
  11231. var msglen int
  11232. for shift := uint(0); ; shift += 7 {
  11233. if shift >= 64 {
  11234. return ErrIntOverflowTypes
  11235. }
  11236. if iNdEx >= l {
  11237. return io.ErrUnexpectedEOF
  11238. }
  11239. b := dAtA[iNdEx]
  11240. iNdEx++
  11241. msglen |= int(b&0x7F) << shift
  11242. if b < 0x80 {
  11243. break
  11244. }
  11245. }
  11246. if msglen < 0 {
  11247. return ErrInvalidLengthTypes
  11248. }
  11249. postIndex := iNdEx + msglen
  11250. if postIndex < 0 {
  11251. return ErrInvalidLengthTypes
  11252. }
  11253. if postIndex > l {
  11254. return io.ErrUnexpectedEOF
  11255. }
  11256. v := &ResponseInfo{}
  11257. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11258. return err
  11259. }
  11260. m.Value = &Response_Info{v}
  11261. iNdEx = postIndex
  11262. case 5:
  11263. if wireType != 2 {
  11264. return fmt.Errorf("proto: wrong wireType = %d for field SetOption", wireType)
  11265. }
  11266. var msglen int
  11267. for shift := uint(0); ; shift += 7 {
  11268. if shift >= 64 {
  11269. return ErrIntOverflowTypes
  11270. }
  11271. if iNdEx >= l {
  11272. return io.ErrUnexpectedEOF
  11273. }
  11274. b := dAtA[iNdEx]
  11275. iNdEx++
  11276. msglen |= int(b&0x7F) << shift
  11277. if b < 0x80 {
  11278. break
  11279. }
  11280. }
  11281. if msglen < 0 {
  11282. return ErrInvalidLengthTypes
  11283. }
  11284. postIndex := iNdEx + msglen
  11285. if postIndex < 0 {
  11286. return ErrInvalidLengthTypes
  11287. }
  11288. if postIndex > l {
  11289. return io.ErrUnexpectedEOF
  11290. }
  11291. v := &ResponseSetOption{}
  11292. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11293. return err
  11294. }
  11295. m.Value = &Response_SetOption{v}
  11296. iNdEx = postIndex
  11297. case 6:
  11298. if wireType != 2 {
  11299. return fmt.Errorf("proto: wrong wireType = %d for field InitChain", wireType)
  11300. }
  11301. var msglen int
  11302. for shift := uint(0); ; shift += 7 {
  11303. if shift >= 64 {
  11304. return ErrIntOverflowTypes
  11305. }
  11306. if iNdEx >= l {
  11307. return io.ErrUnexpectedEOF
  11308. }
  11309. b := dAtA[iNdEx]
  11310. iNdEx++
  11311. msglen |= int(b&0x7F) << shift
  11312. if b < 0x80 {
  11313. break
  11314. }
  11315. }
  11316. if msglen < 0 {
  11317. return ErrInvalidLengthTypes
  11318. }
  11319. postIndex := iNdEx + msglen
  11320. if postIndex < 0 {
  11321. return ErrInvalidLengthTypes
  11322. }
  11323. if postIndex > l {
  11324. return io.ErrUnexpectedEOF
  11325. }
  11326. v := &ResponseInitChain{}
  11327. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11328. return err
  11329. }
  11330. m.Value = &Response_InitChain{v}
  11331. iNdEx = postIndex
  11332. case 7:
  11333. if wireType != 2 {
  11334. return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType)
  11335. }
  11336. var msglen int
  11337. for shift := uint(0); ; shift += 7 {
  11338. if shift >= 64 {
  11339. return ErrIntOverflowTypes
  11340. }
  11341. if iNdEx >= l {
  11342. return io.ErrUnexpectedEOF
  11343. }
  11344. b := dAtA[iNdEx]
  11345. iNdEx++
  11346. msglen |= int(b&0x7F) << shift
  11347. if b < 0x80 {
  11348. break
  11349. }
  11350. }
  11351. if msglen < 0 {
  11352. return ErrInvalidLengthTypes
  11353. }
  11354. postIndex := iNdEx + msglen
  11355. if postIndex < 0 {
  11356. return ErrInvalidLengthTypes
  11357. }
  11358. if postIndex > l {
  11359. return io.ErrUnexpectedEOF
  11360. }
  11361. v := &ResponseQuery{}
  11362. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11363. return err
  11364. }
  11365. m.Value = &Response_Query{v}
  11366. iNdEx = postIndex
  11367. case 8:
  11368. if wireType != 2 {
  11369. return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType)
  11370. }
  11371. var msglen int
  11372. for shift := uint(0); ; shift += 7 {
  11373. if shift >= 64 {
  11374. return ErrIntOverflowTypes
  11375. }
  11376. if iNdEx >= l {
  11377. return io.ErrUnexpectedEOF
  11378. }
  11379. b := dAtA[iNdEx]
  11380. iNdEx++
  11381. msglen |= int(b&0x7F) << shift
  11382. if b < 0x80 {
  11383. break
  11384. }
  11385. }
  11386. if msglen < 0 {
  11387. return ErrInvalidLengthTypes
  11388. }
  11389. postIndex := iNdEx + msglen
  11390. if postIndex < 0 {
  11391. return ErrInvalidLengthTypes
  11392. }
  11393. if postIndex > l {
  11394. return io.ErrUnexpectedEOF
  11395. }
  11396. v := &ResponseBeginBlock{}
  11397. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11398. return err
  11399. }
  11400. m.Value = &Response_BeginBlock{v}
  11401. iNdEx = postIndex
  11402. case 9:
  11403. if wireType != 2 {
  11404. return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType)
  11405. }
  11406. var msglen int
  11407. for shift := uint(0); ; shift += 7 {
  11408. if shift >= 64 {
  11409. return ErrIntOverflowTypes
  11410. }
  11411. if iNdEx >= l {
  11412. return io.ErrUnexpectedEOF
  11413. }
  11414. b := dAtA[iNdEx]
  11415. iNdEx++
  11416. msglen |= int(b&0x7F) << shift
  11417. if b < 0x80 {
  11418. break
  11419. }
  11420. }
  11421. if msglen < 0 {
  11422. return ErrInvalidLengthTypes
  11423. }
  11424. postIndex := iNdEx + msglen
  11425. if postIndex < 0 {
  11426. return ErrInvalidLengthTypes
  11427. }
  11428. if postIndex > l {
  11429. return io.ErrUnexpectedEOF
  11430. }
  11431. v := &ResponseCheckTx{}
  11432. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11433. return err
  11434. }
  11435. m.Value = &Response_CheckTx{v}
  11436. iNdEx = postIndex
  11437. case 10:
  11438. if wireType != 2 {
  11439. return fmt.Errorf("proto: wrong wireType = %d for field DeliverTx", wireType)
  11440. }
  11441. var msglen int
  11442. for shift := uint(0); ; shift += 7 {
  11443. if shift >= 64 {
  11444. return ErrIntOverflowTypes
  11445. }
  11446. if iNdEx >= l {
  11447. return io.ErrUnexpectedEOF
  11448. }
  11449. b := dAtA[iNdEx]
  11450. iNdEx++
  11451. msglen |= int(b&0x7F) << shift
  11452. if b < 0x80 {
  11453. break
  11454. }
  11455. }
  11456. if msglen < 0 {
  11457. return ErrInvalidLengthTypes
  11458. }
  11459. postIndex := iNdEx + msglen
  11460. if postIndex < 0 {
  11461. return ErrInvalidLengthTypes
  11462. }
  11463. if postIndex > l {
  11464. return io.ErrUnexpectedEOF
  11465. }
  11466. v := &ResponseDeliverTx{}
  11467. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11468. return err
  11469. }
  11470. m.Value = &Response_DeliverTx{v}
  11471. iNdEx = postIndex
  11472. case 11:
  11473. if wireType != 2 {
  11474. return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType)
  11475. }
  11476. var msglen int
  11477. for shift := uint(0); ; shift += 7 {
  11478. if shift >= 64 {
  11479. return ErrIntOverflowTypes
  11480. }
  11481. if iNdEx >= l {
  11482. return io.ErrUnexpectedEOF
  11483. }
  11484. b := dAtA[iNdEx]
  11485. iNdEx++
  11486. msglen |= int(b&0x7F) << shift
  11487. if b < 0x80 {
  11488. break
  11489. }
  11490. }
  11491. if msglen < 0 {
  11492. return ErrInvalidLengthTypes
  11493. }
  11494. postIndex := iNdEx + msglen
  11495. if postIndex < 0 {
  11496. return ErrInvalidLengthTypes
  11497. }
  11498. if postIndex > l {
  11499. return io.ErrUnexpectedEOF
  11500. }
  11501. v := &ResponseEndBlock{}
  11502. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11503. return err
  11504. }
  11505. m.Value = &Response_EndBlock{v}
  11506. iNdEx = postIndex
  11507. case 12:
  11508. if wireType != 2 {
  11509. return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType)
  11510. }
  11511. var msglen int
  11512. for shift := uint(0); ; shift += 7 {
  11513. if shift >= 64 {
  11514. return ErrIntOverflowTypes
  11515. }
  11516. if iNdEx >= l {
  11517. return io.ErrUnexpectedEOF
  11518. }
  11519. b := dAtA[iNdEx]
  11520. iNdEx++
  11521. msglen |= int(b&0x7F) << shift
  11522. if b < 0x80 {
  11523. break
  11524. }
  11525. }
  11526. if msglen < 0 {
  11527. return ErrInvalidLengthTypes
  11528. }
  11529. postIndex := iNdEx + msglen
  11530. if postIndex < 0 {
  11531. return ErrInvalidLengthTypes
  11532. }
  11533. if postIndex > l {
  11534. return io.ErrUnexpectedEOF
  11535. }
  11536. v := &ResponseCommit{}
  11537. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11538. return err
  11539. }
  11540. m.Value = &Response_Commit{v}
  11541. iNdEx = postIndex
  11542. default:
  11543. iNdEx = preIndex
  11544. skippy, err := skipTypes(dAtA[iNdEx:])
  11545. if err != nil {
  11546. return err
  11547. }
  11548. if skippy < 0 {
  11549. return ErrInvalidLengthTypes
  11550. }
  11551. if (iNdEx + skippy) < 0 {
  11552. return ErrInvalidLengthTypes
  11553. }
  11554. if (iNdEx + skippy) > l {
  11555. return io.ErrUnexpectedEOF
  11556. }
  11557. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11558. iNdEx += skippy
  11559. }
  11560. }
  11561. if iNdEx > l {
  11562. return io.ErrUnexpectedEOF
  11563. }
  11564. return nil
  11565. }
  11566. func (m *ResponseException) Unmarshal(dAtA []byte) error {
  11567. l := len(dAtA)
  11568. iNdEx := 0
  11569. for iNdEx < l {
  11570. preIndex := iNdEx
  11571. var wire uint64
  11572. for shift := uint(0); ; shift += 7 {
  11573. if shift >= 64 {
  11574. return ErrIntOverflowTypes
  11575. }
  11576. if iNdEx >= l {
  11577. return io.ErrUnexpectedEOF
  11578. }
  11579. b := dAtA[iNdEx]
  11580. iNdEx++
  11581. wire |= uint64(b&0x7F) << shift
  11582. if b < 0x80 {
  11583. break
  11584. }
  11585. }
  11586. fieldNum := int32(wire >> 3)
  11587. wireType := int(wire & 0x7)
  11588. if wireType == 4 {
  11589. return fmt.Errorf("proto: ResponseException: wiretype end group for non-group")
  11590. }
  11591. if fieldNum <= 0 {
  11592. return fmt.Errorf("proto: ResponseException: illegal tag %d (wire type %d)", fieldNum, wire)
  11593. }
  11594. switch fieldNum {
  11595. case 1:
  11596. if wireType != 2 {
  11597. return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
  11598. }
  11599. var stringLen uint64
  11600. for shift := uint(0); ; shift += 7 {
  11601. if shift >= 64 {
  11602. return ErrIntOverflowTypes
  11603. }
  11604. if iNdEx >= l {
  11605. return io.ErrUnexpectedEOF
  11606. }
  11607. b := dAtA[iNdEx]
  11608. iNdEx++
  11609. stringLen |= uint64(b&0x7F) << shift
  11610. if b < 0x80 {
  11611. break
  11612. }
  11613. }
  11614. intStringLen := int(stringLen)
  11615. if intStringLen < 0 {
  11616. return ErrInvalidLengthTypes
  11617. }
  11618. postIndex := iNdEx + intStringLen
  11619. if postIndex < 0 {
  11620. return ErrInvalidLengthTypes
  11621. }
  11622. if postIndex > l {
  11623. return io.ErrUnexpectedEOF
  11624. }
  11625. m.Error = string(dAtA[iNdEx:postIndex])
  11626. iNdEx = postIndex
  11627. default:
  11628. iNdEx = preIndex
  11629. skippy, err := skipTypes(dAtA[iNdEx:])
  11630. if err != nil {
  11631. return err
  11632. }
  11633. if skippy < 0 {
  11634. return ErrInvalidLengthTypes
  11635. }
  11636. if (iNdEx + skippy) < 0 {
  11637. return ErrInvalidLengthTypes
  11638. }
  11639. if (iNdEx + skippy) > l {
  11640. return io.ErrUnexpectedEOF
  11641. }
  11642. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11643. iNdEx += skippy
  11644. }
  11645. }
  11646. if iNdEx > l {
  11647. return io.ErrUnexpectedEOF
  11648. }
  11649. return nil
  11650. }
  11651. func (m *ResponseEcho) Unmarshal(dAtA []byte) error {
  11652. l := len(dAtA)
  11653. iNdEx := 0
  11654. for iNdEx < l {
  11655. preIndex := iNdEx
  11656. var wire uint64
  11657. for shift := uint(0); ; shift += 7 {
  11658. if shift >= 64 {
  11659. return ErrIntOverflowTypes
  11660. }
  11661. if iNdEx >= l {
  11662. return io.ErrUnexpectedEOF
  11663. }
  11664. b := dAtA[iNdEx]
  11665. iNdEx++
  11666. wire |= uint64(b&0x7F) << shift
  11667. if b < 0x80 {
  11668. break
  11669. }
  11670. }
  11671. fieldNum := int32(wire >> 3)
  11672. wireType := int(wire & 0x7)
  11673. if wireType == 4 {
  11674. return fmt.Errorf("proto: ResponseEcho: wiretype end group for non-group")
  11675. }
  11676. if fieldNum <= 0 {
  11677. return fmt.Errorf("proto: ResponseEcho: illegal tag %d (wire type %d)", fieldNum, wire)
  11678. }
  11679. switch fieldNum {
  11680. case 1:
  11681. if wireType != 2 {
  11682. return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
  11683. }
  11684. var stringLen uint64
  11685. for shift := uint(0); ; shift += 7 {
  11686. if shift >= 64 {
  11687. return ErrIntOverflowTypes
  11688. }
  11689. if iNdEx >= l {
  11690. return io.ErrUnexpectedEOF
  11691. }
  11692. b := dAtA[iNdEx]
  11693. iNdEx++
  11694. stringLen |= uint64(b&0x7F) << shift
  11695. if b < 0x80 {
  11696. break
  11697. }
  11698. }
  11699. intStringLen := int(stringLen)
  11700. if intStringLen < 0 {
  11701. return ErrInvalidLengthTypes
  11702. }
  11703. postIndex := iNdEx + intStringLen
  11704. if postIndex < 0 {
  11705. return ErrInvalidLengthTypes
  11706. }
  11707. if postIndex > l {
  11708. return io.ErrUnexpectedEOF
  11709. }
  11710. m.Message = string(dAtA[iNdEx:postIndex])
  11711. iNdEx = postIndex
  11712. default:
  11713. iNdEx = preIndex
  11714. skippy, err := skipTypes(dAtA[iNdEx:])
  11715. if err != nil {
  11716. return err
  11717. }
  11718. if skippy < 0 {
  11719. return ErrInvalidLengthTypes
  11720. }
  11721. if (iNdEx + skippy) < 0 {
  11722. return ErrInvalidLengthTypes
  11723. }
  11724. if (iNdEx + skippy) > l {
  11725. return io.ErrUnexpectedEOF
  11726. }
  11727. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11728. iNdEx += skippy
  11729. }
  11730. }
  11731. if iNdEx > l {
  11732. return io.ErrUnexpectedEOF
  11733. }
  11734. return nil
  11735. }
  11736. func (m *ResponseFlush) Unmarshal(dAtA []byte) error {
  11737. l := len(dAtA)
  11738. iNdEx := 0
  11739. for iNdEx < l {
  11740. preIndex := iNdEx
  11741. var wire uint64
  11742. for shift := uint(0); ; shift += 7 {
  11743. if shift >= 64 {
  11744. return ErrIntOverflowTypes
  11745. }
  11746. if iNdEx >= l {
  11747. return io.ErrUnexpectedEOF
  11748. }
  11749. b := dAtA[iNdEx]
  11750. iNdEx++
  11751. wire |= uint64(b&0x7F) << shift
  11752. if b < 0x80 {
  11753. break
  11754. }
  11755. }
  11756. fieldNum := int32(wire >> 3)
  11757. wireType := int(wire & 0x7)
  11758. if wireType == 4 {
  11759. return fmt.Errorf("proto: ResponseFlush: wiretype end group for non-group")
  11760. }
  11761. if fieldNum <= 0 {
  11762. return fmt.Errorf("proto: ResponseFlush: illegal tag %d (wire type %d)", fieldNum, wire)
  11763. }
  11764. switch fieldNum {
  11765. default:
  11766. iNdEx = preIndex
  11767. skippy, err := skipTypes(dAtA[iNdEx:])
  11768. if err != nil {
  11769. return err
  11770. }
  11771. if skippy < 0 {
  11772. return ErrInvalidLengthTypes
  11773. }
  11774. if (iNdEx + skippy) < 0 {
  11775. return ErrInvalidLengthTypes
  11776. }
  11777. if (iNdEx + skippy) > l {
  11778. return io.ErrUnexpectedEOF
  11779. }
  11780. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11781. iNdEx += skippy
  11782. }
  11783. }
  11784. if iNdEx > l {
  11785. return io.ErrUnexpectedEOF
  11786. }
  11787. return nil
  11788. }
  11789. func (m *ResponseInfo) Unmarshal(dAtA []byte) error {
  11790. l := len(dAtA)
  11791. iNdEx := 0
  11792. for iNdEx < l {
  11793. preIndex := iNdEx
  11794. var wire uint64
  11795. for shift := uint(0); ; shift += 7 {
  11796. if shift >= 64 {
  11797. return ErrIntOverflowTypes
  11798. }
  11799. if iNdEx >= l {
  11800. return io.ErrUnexpectedEOF
  11801. }
  11802. b := dAtA[iNdEx]
  11803. iNdEx++
  11804. wire |= uint64(b&0x7F) << shift
  11805. if b < 0x80 {
  11806. break
  11807. }
  11808. }
  11809. fieldNum := int32(wire >> 3)
  11810. wireType := int(wire & 0x7)
  11811. if wireType == 4 {
  11812. return fmt.Errorf("proto: ResponseInfo: wiretype end group for non-group")
  11813. }
  11814. if fieldNum <= 0 {
  11815. return fmt.Errorf("proto: ResponseInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  11816. }
  11817. switch fieldNum {
  11818. case 1:
  11819. if wireType != 2 {
  11820. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  11821. }
  11822. var stringLen uint64
  11823. for shift := uint(0); ; shift += 7 {
  11824. if shift >= 64 {
  11825. return ErrIntOverflowTypes
  11826. }
  11827. if iNdEx >= l {
  11828. return io.ErrUnexpectedEOF
  11829. }
  11830. b := dAtA[iNdEx]
  11831. iNdEx++
  11832. stringLen |= uint64(b&0x7F) << shift
  11833. if b < 0x80 {
  11834. break
  11835. }
  11836. }
  11837. intStringLen := int(stringLen)
  11838. if intStringLen < 0 {
  11839. return ErrInvalidLengthTypes
  11840. }
  11841. postIndex := iNdEx + intStringLen
  11842. if postIndex < 0 {
  11843. return ErrInvalidLengthTypes
  11844. }
  11845. if postIndex > l {
  11846. return io.ErrUnexpectedEOF
  11847. }
  11848. m.Data = string(dAtA[iNdEx:postIndex])
  11849. iNdEx = postIndex
  11850. case 2:
  11851. if wireType != 2 {
  11852. return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  11853. }
  11854. var stringLen uint64
  11855. for shift := uint(0); ; shift += 7 {
  11856. if shift >= 64 {
  11857. return ErrIntOverflowTypes
  11858. }
  11859. if iNdEx >= l {
  11860. return io.ErrUnexpectedEOF
  11861. }
  11862. b := dAtA[iNdEx]
  11863. iNdEx++
  11864. stringLen |= uint64(b&0x7F) << shift
  11865. if b < 0x80 {
  11866. break
  11867. }
  11868. }
  11869. intStringLen := int(stringLen)
  11870. if intStringLen < 0 {
  11871. return ErrInvalidLengthTypes
  11872. }
  11873. postIndex := iNdEx + intStringLen
  11874. if postIndex < 0 {
  11875. return ErrInvalidLengthTypes
  11876. }
  11877. if postIndex > l {
  11878. return io.ErrUnexpectedEOF
  11879. }
  11880. m.Version = string(dAtA[iNdEx:postIndex])
  11881. iNdEx = postIndex
  11882. case 3:
  11883. if wireType != 0 {
  11884. return fmt.Errorf("proto: wrong wireType = %d for field AppVersion", wireType)
  11885. }
  11886. m.AppVersion = 0
  11887. for shift := uint(0); ; shift += 7 {
  11888. if shift >= 64 {
  11889. return ErrIntOverflowTypes
  11890. }
  11891. if iNdEx >= l {
  11892. return io.ErrUnexpectedEOF
  11893. }
  11894. b := dAtA[iNdEx]
  11895. iNdEx++
  11896. m.AppVersion |= uint64(b&0x7F) << shift
  11897. if b < 0x80 {
  11898. break
  11899. }
  11900. }
  11901. case 4:
  11902. if wireType != 0 {
  11903. return fmt.Errorf("proto: wrong wireType = %d for field LastBlockHeight", wireType)
  11904. }
  11905. m.LastBlockHeight = 0
  11906. for shift := uint(0); ; shift += 7 {
  11907. if shift >= 64 {
  11908. return ErrIntOverflowTypes
  11909. }
  11910. if iNdEx >= l {
  11911. return io.ErrUnexpectedEOF
  11912. }
  11913. b := dAtA[iNdEx]
  11914. iNdEx++
  11915. m.LastBlockHeight |= int64(b&0x7F) << shift
  11916. if b < 0x80 {
  11917. break
  11918. }
  11919. }
  11920. case 5:
  11921. if wireType != 2 {
  11922. return fmt.Errorf("proto: wrong wireType = %d for field LastBlockAppHash", wireType)
  11923. }
  11924. var byteLen int
  11925. for shift := uint(0); ; shift += 7 {
  11926. if shift >= 64 {
  11927. return ErrIntOverflowTypes
  11928. }
  11929. if iNdEx >= l {
  11930. return io.ErrUnexpectedEOF
  11931. }
  11932. b := dAtA[iNdEx]
  11933. iNdEx++
  11934. byteLen |= int(b&0x7F) << shift
  11935. if b < 0x80 {
  11936. break
  11937. }
  11938. }
  11939. if byteLen < 0 {
  11940. return ErrInvalidLengthTypes
  11941. }
  11942. postIndex := iNdEx + byteLen
  11943. if postIndex < 0 {
  11944. return ErrInvalidLengthTypes
  11945. }
  11946. if postIndex > l {
  11947. return io.ErrUnexpectedEOF
  11948. }
  11949. m.LastBlockAppHash = append(m.LastBlockAppHash[:0], dAtA[iNdEx:postIndex]...)
  11950. if m.LastBlockAppHash == nil {
  11951. m.LastBlockAppHash = []byte{}
  11952. }
  11953. iNdEx = postIndex
  11954. default:
  11955. iNdEx = preIndex
  11956. skippy, err := skipTypes(dAtA[iNdEx:])
  11957. if err != nil {
  11958. return err
  11959. }
  11960. if skippy < 0 {
  11961. return ErrInvalidLengthTypes
  11962. }
  11963. if (iNdEx + skippy) < 0 {
  11964. return ErrInvalidLengthTypes
  11965. }
  11966. if (iNdEx + skippy) > l {
  11967. return io.ErrUnexpectedEOF
  11968. }
  11969. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11970. iNdEx += skippy
  11971. }
  11972. }
  11973. if iNdEx > l {
  11974. return io.ErrUnexpectedEOF
  11975. }
  11976. return nil
  11977. }
  11978. func (m *ResponseSetOption) Unmarshal(dAtA []byte) error {
  11979. l := len(dAtA)
  11980. iNdEx := 0
  11981. for iNdEx < l {
  11982. preIndex := iNdEx
  11983. var wire uint64
  11984. for shift := uint(0); ; shift += 7 {
  11985. if shift >= 64 {
  11986. return ErrIntOverflowTypes
  11987. }
  11988. if iNdEx >= l {
  11989. return io.ErrUnexpectedEOF
  11990. }
  11991. b := dAtA[iNdEx]
  11992. iNdEx++
  11993. wire |= uint64(b&0x7F) << shift
  11994. if b < 0x80 {
  11995. break
  11996. }
  11997. }
  11998. fieldNum := int32(wire >> 3)
  11999. wireType := int(wire & 0x7)
  12000. if wireType == 4 {
  12001. return fmt.Errorf("proto: ResponseSetOption: wiretype end group for non-group")
  12002. }
  12003. if fieldNum <= 0 {
  12004. return fmt.Errorf("proto: ResponseSetOption: illegal tag %d (wire type %d)", fieldNum, wire)
  12005. }
  12006. switch fieldNum {
  12007. case 1:
  12008. if wireType != 0 {
  12009. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  12010. }
  12011. m.Code = 0
  12012. for shift := uint(0); ; shift += 7 {
  12013. if shift >= 64 {
  12014. return ErrIntOverflowTypes
  12015. }
  12016. if iNdEx >= l {
  12017. return io.ErrUnexpectedEOF
  12018. }
  12019. b := dAtA[iNdEx]
  12020. iNdEx++
  12021. m.Code |= uint32(b&0x7F) << shift
  12022. if b < 0x80 {
  12023. break
  12024. }
  12025. }
  12026. case 3:
  12027. if wireType != 2 {
  12028. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  12029. }
  12030. var stringLen uint64
  12031. for shift := uint(0); ; shift += 7 {
  12032. if shift >= 64 {
  12033. return ErrIntOverflowTypes
  12034. }
  12035. if iNdEx >= l {
  12036. return io.ErrUnexpectedEOF
  12037. }
  12038. b := dAtA[iNdEx]
  12039. iNdEx++
  12040. stringLen |= uint64(b&0x7F) << shift
  12041. if b < 0x80 {
  12042. break
  12043. }
  12044. }
  12045. intStringLen := int(stringLen)
  12046. if intStringLen < 0 {
  12047. return ErrInvalidLengthTypes
  12048. }
  12049. postIndex := iNdEx + intStringLen
  12050. if postIndex < 0 {
  12051. return ErrInvalidLengthTypes
  12052. }
  12053. if postIndex > l {
  12054. return io.ErrUnexpectedEOF
  12055. }
  12056. m.Log = string(dAtA[iNdEx:postIndex])
  12057. iNdEx = postIndex
  12058. case 4:
  12059. if wireType != 2 {
  12060. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  12061. }
  12062. var stringLen uint64
  12063. for shift := uint(0); ; shift += 7 {
  12064. if shift >= 64 {
  12065. return ErrIntOverflowTypes
  12066. }
  12067. if iNdEx >= l {
  12068. return io.ErrUnexpectedEOF
  12069. }
  12070. b := dAtA[iNdEx]
  12071. iNdEx++
  12072. stringLen |= uint64(b&0x7F) << shift
  12073. if b < 0x80 {
  12074. break
  12075. }
  12076. }
  12077. intStringLen := int(stringLen)
  12078. if intStringLen < 0 {
  12079. return ErrInvalidLengthTypes
  12080. }
  12081. postIndex := iNdEx + intStringLen
  12082. if postIndex < 0 {
  12083. return ErrInvalidLengthTypes
  12084. }
  12085. if postIndex > l {
  12086. return io.ErrUnexpectedEOF
  12087. }
  12088. m.Info = string(dAtA[iNdEx:postIndex])
  12089. iNdEx = postIndex
  12090. default:
  12091. iNdEx = preIndex
  12092. skippy, err := skipTypes(dAtA[iNdEx:])
  12093. if err != nil {
  12094. return err
  12095. }
  12096. if skippy < 0 {
  12097. return ErrInvalidLengthTypes
  12098. }
  12099. if (iNdEx + skippy) < 0 {
  12100. return ErrInvalidLengthTypes
  12101. }
  12102. if (iNdEx + skippy) > l {
  12103. return io.ErrUnexpectedEOF
  12104. }
  12105. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12106. iNdEx += skippy
  12107. }
  12108. }
  12109. if iNdEx > l {
  12110. return io.ErrUnexpectedEOF
  12111. }
  12112. return nil
  12113. }
  12114. func (m *ResponseInitChain) Unmarshal(dAtA []byte) error {
  12115. l := len(dAtA)
  12116. iNdEx := 0
  12117. for iNdEx < l {
  12118. preIndex := iNdEx
  12119. var wire uint64
  12120. for shift := uint(0); ; shift += 7 {
  12121. if shift >= 64 {
  12122. return ErrIntOverflowTypes
  12123. }
  12124. if iNdEx >= l {
  12125. return io.ErrUnexpectedEOF
  12126. }
  12127. b := dAtA[iNdEx]
  12128. iNdEx++
  12129. wire |= uint64(b&0x7F) << shift
  12130. if b < 0x80 {
  12131. break
  12132. }
  12133. }
  12134. fieldNum := int32(wire >> 3)
  12135. wireType := int(wire & 0x7)
  12136. if wireType == 4 {
  12137. return fmt.Errorf("proto: ResponseInitChain: wiretype end group for non-group")
  12138. }
  12139. if fieldNum <= 0 {
  12140. return fmt.Errorf("proto: ResponseInitChain: illegal tag %d (wire type %d)", fieldNum, wire)
  12141. }
  12142. switch fieldNum {
  12143. case 1:
  12144. if wireType != 2 {
  12145. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParams", wireType)
  12146. }
  12147. var msglen int
  12148. for shift := uint(0); ; shift += 7 {
  12149. if shift >= 64 {
  12150. return ErrIntOverflowTypes
  12151. }
  12152. if iNdEx >= l {
  12153. return io.ErrUnexpectedEOF
  12154. }
  12155. b := dAtA[iNdEx]
  12156. iNdEx++
  12157. msglen |= int(b&0x7F) << shift
  12158. if b < 0x80 {
  12159. break
  12160. }
  12161. }
  12162. if msglen < 0 {
  12163. return ErrInvalidLengthTypes
  12164. }
  12165. postIndex := iNdEx + msglen
  12166. if postIndex < 0 {
  12167. return ErrInvalidLengthTypes
  12168. }
  12169. if postIndex > l {
  12170. return io.ErrUnexpectedEOF
  12171. }
  12172. if m.ConsensusParams == nil {
  12173. m.ConsensusParams = &ConsensusParams{}
  12174. }
  12175. if err := m.ConsensusParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12176. return err
  12177. }
  12178. iNdEx = postIndex
  12179. case 2:
  12180. if wireType != 2 {
  12181. return fmt.Errorf("proto: wrong wireType = %d for field Validators", wireType)
  12182. }
  12183. var msglen int
  12184. for shift := uint(0); ; shift += 7 {
  12185. if shift >= 64 {
  12186. return ErrIntOverflowTypes
  12187. }
  12188. if iNdEx >= l {
  12189. return io.ErrUnexpectedEOF
  12190. }
  12191. b := dAtA[iNdEx]
  12192. iNdEx++
  12193. msglen |= int(b&0x7F) << shift
  12194. if b < 0x80 {
  12195. break
  12196. }
  12197. }
  12198. if msglen < 0 {
  12199. return ErrInvalidLengthTypes
  12200. }
  12201. postIndex := iNdEx + msglen
  12202. if postIndex < 0 {
  12203. return ErrInvalidLengthTypes
  12204. }
  12205. if postIndex > l {
  12206. return io.ErrUnexpectedEOF
  12207. }
  12208. m.Validators = append(m.Validators, ValidatorUpdate{})
  12209. if err := m.Validators[len(m.Validators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12210. return err
  12211. }
  12212. iNdEx = postIndex
  12213. default:
  12214. iNdEx = preIndex
  12215. skippy, err := skipTypes(dAtA[iNdEx:])
  12216. if err != nil {
  12217. return err
  12218. }
  12219. if skippy < 0 {
  12220. return ErrInvalidLengthTypes
  12221. }
  12222. if (iNdEx + skippy) < 0 {
  12223. return ErrInvalidLengthTypes
  12224. }
  12225. if (iNdEx + skippy) > l {
  12226. return io.ErrUnexpectedEOF
  12227. }
  12228. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12229. iNdEx += skippy
  12230. }
  12231. }
  12232. if iNdEx > l {
  12233. return io.ErrUnexpectedEOF
  12234. }
  12235. return nil
  12236. }
  12237. func (m *ResponseQuery) Unmarshal(dAtA []byte) error {
  12238. l := len(dAtA)
  12239. iNdEx := 0
  12240. for iNdEx < l {
  12241. preIndex := iNdEx
  12242. var wire uint64
  12243. for shift := uint(0); ; shift += 7 {
  12244. if shift >= 64 {
  12245. return ErrIntOverflowTypes
  12246. }
  12247. if iNdEx >= l {
  12248. return io.ErrUnexpectedEOF
  12249. }
  12250. b := dAtA[iNdEx]
  12251. iNdEx++
  12252. wire |= uint64(b&0x7F) << shift
  12253. if b < 0x80 {
  12254. break
  12255. }
  12256. }
  12257. fieldNum := int32(wire >> 3)
  12258. wireType := int(wire & 0x7)
  12259. if wireType == 4 {
  12260. return fmt.Errorf("proto: ResponseQuery: wiretype end group for non-group")
  12261. }
  12262. if fieldNum <= 0 {
  12263. return fmt.Errorf("proto: ResponseQuery: illegal tag %d (wire type %d)", fieldNum, wire)
  12264. }
  12265. switch fieldNum {
  12266. case 1:
  12267. if wireType != 0 {
  12268. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  12269. }
  12270. m.Code = 0
  12271. for shift := uint(0); ; shift += 7 {
  12272. if shift >= 64 {
  12273. return ErrIntOverflowTypes
  12274. }
  12275. if iNdEx >= l {
  12276. return io.ErrUnexpectedEOF
  12277. }
  12278. b := dAtA[iNdEx]
  12279. iNdEx++
  12280. m.Code |= uint32(b&0x7F) << shift
  12281. if b < 0x80 {
  12282. break
  12283. }
  12284. }
  12285. case 3:
  12286. if wireType != 2 {
  12287. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  12288. }
  12289. var stringLen uint64
  12290. for shift := uint(0); ; shift += 7 {
  12291. if shift >= 64 {
  12292. return ErrIntOverflowTypes
  12293. }
  12294. if iNdEx >= l {
  12295. return io.ErrUnexpectedEOF
  12296. }
  12297. b := dAtA[iNdEx]
  12298. iNdEx++
  12299. stringLen |= uint64(b&0x7F) << shift
  12300. if b < 0x80 {
  12301. break
  12302. }
  12303. }
  12304. intStringLen := int(stringLen)
  12305. if intStringLen < 0 {
  12306. return ErrInvalidLengthTypes
  12307. }
  12308. postIndex := iNdEx + intStringLen
  12309. if postIndex < 0 {
  12310. return ErrInvalidLengthTypes
  12311. }
  12312. if postIndex > l {
  12313. return io.ErrUnexpectedEOF
  12314. }
  12315. m.Log = string(dAtA[iNdEx:postIndex])
  12316. iNdEx = postIndex
  12317. case 4:
  12318. if wireType != 2 {
  12319. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  12320. }
  12321. var stringLen uint64
  12322. for shift := uint(0); ; shift += 7 {
  12323. if shift >= 64 {
  12324. return ErrIntOverflowTypes
  12325. }
  12326. if iNdEx >= l {
  12327. return io.ErrUnexpectedEOF
  12328. }
  12329. b := dAtA[iNdEx]
  12330. iNdEx++
  12331. stringLen |= uint64(b&0x7F) << shift
  12332. if b < 0x80 {
  12333. break
  12334. }
  12335. }
  12336. intStringLen := int(stringLen)
  12337. if intStringLen < 0 {
  12338. return ErrInvalidLengthTypes
  12339. }
  12340. postIndex := iNdEx + intStringLen
  12341. if postIndex < 0 {
  12342. return ErrInvalidLengthTypes
  12343. }
  12344. if postIndex > l {
  12345. return io.ErrUnexpectedEOF
  12346. }
  12347. m.Info = string(dAtA[iNdEx:postIndex])
  12348. iNdEx = postIndex
  12349. case 5:
  12350. if wireType != 0 {
  12351. return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
  12352. }
  12353. m.Index = 0
  12354. for shift := uint(0); ; shift += 7 {
  12355. if shift >= 64 {
  12356. return ErrIntOverflowTypes
  12357. }
  12358. if iNdEx >= l {
  12359. return io.ErrUnexpectedEOF
  12360. }
  12361. b := dAtA[iNdEx]
  12362. iNdEx++
  12363. m.Index |= int64(b&0x7F) << shift
  12364. if b < 0x80 {
  12365. break
  12366. }
  12367. }
  12368. case 6:
  12369. if wireType != 2 {
  12370. return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  12371. }
  12372. var byteLen int
  12373. for shift := uint(0); ; shift += 7 {
  12374. if shift >= 64 {
  12375. return ErrIntOverflowTypes
  12376. }
  12377. if iNdEx >= l {
  12378. return io.ErrUnexpectedEOF
  12379. }
  12380. b := dAtA[iNdEx]
  12381. iNdEx++
  12382. byteLen |= int(b&0x7F) << shift
  12383. if b < 0x80 {
  12384. break
  12385. }
  12386. }
  12387. if byteLen < 0 {
  12388. return ErrInvalidLengthTypes
  12389. }
  12390. postIndex := iNdEx + byteLen
  12391. if postIndex < 0 {
  12392. return ErrInvalidLengthTypes
  12393. }
  12394. if postIndex > l {
  12395. return io.ErrUnexpectedEOF
  12396. }
  12397. m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
  12398. if m.Key == nil {
  12399. m.Key = []byte{}
  12400. }
  12401. iNdEx = postIndex
  12402. case 7:
  12403. if wireType != 2 {
  12404. return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  12405. }
  12406. var byteLen int
  12407. for shift := uint(0); ; shift += 7 {
  12408. if shift >= 64 {
  12409. return ErrIntOverflowTypes
  12410. }
  12411. if iNdEx >= l {
  12412. return io.ErrUnexpectedEOF
  12413. }
  12414. b := dAtA[iNdEx]
  12415. iNdEx++
  12416. byteLen |= int(b&0x7F) << shift
  12417. if b < 0x80 {
  12418. break
  12419. }
  12420. }
  12421. if byteLen < 0 {
  12422. return ErrInvalidLengthTypes
  12423. }
  12424. postIndex := iNdEx + byteLen
  12425. if postIndex < 0 {
  12426. return ErrInvalidLengthTypes
  12427. }
  12428. if postIndex > l {
  12429. return io.ErrUnexpectedEOF
  12430. }
  12431. m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...)
  12432. if m.Value == nil {
  12433. m.Value = []byte{}
  12434. }
  12435. iNdEx = postIndex
  12436. case 8:
  12437. if wireType != 2 {
  12438. return fmt.Errorf("proto: wrong wireType = %d for field Proof", wireType)
  12439. }
  12440. var msglen int
  12441. for shift := uint(0); ; shift += 7 {
  12442. if shift >= 64 {
  12443. return ErrIntOverflowTypes
  12444. }
  12445. if iNdEx >= l {
  12446. return io.ErrUnexpectedEOF
  12447. }
  12448. b := dAtA[iNdEx]
  12449. iNdEx++
  12450. msglen |= int(b&0x7F) << shift
  12451. if b < 0x80 {
  12452. break
  12453. }
  12454. }
  12455. if msglen < 0 {
  12456. return ErrInvalidLengthTypes
  12457. }
  12458. postIndex := iNdEx + msglen
  12459. if postIndex < 0 {
  12460. return ErrInvalidLengthTypes
  12461. }
  12462. if postIndex > l {
  12463. return io.ErrUnexpectedEOF
  12464. }
  12465. if m.Proof == nil {
  12466. m.Proof = &merkle.Proof{}
  12467. }
  12468. if err := m.Proof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12469. return err
  12470. }
  12471. iNdEx = postIndex
  12472. case 9:
  12473. if wireType != 0 {
  12474. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  12475. }
  12476. m.Height = 0
  12477. for shift := uint(0); ; shift += 7 {
  12478. if shift >= 64 {
  12479. return ErrIntOverflowTypes
  12480. }
  12481. if iNdEx >= l {
  12482. return io.ErrUnexpectedEOF
  12483. }
  12484. b := dAtA[iNdEx]
  12485. iNdEx++
  12486. m.Height |= int64(b&0x7F) << shift
  12487. if b < 0x80 {
  12488. break
  12489. }
  12490. }
  12491. case 10:
  12492. if wireType != 2 {
  12493. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  12494. }
  12495. var stringLen uint64
  12496. for shift := uint(0); ; shift += 7 {
  12497. if shift >= 64 {
  12498. return ErrIntOverflowTypes
  12499. }
  12500. if iNdEx >= l {
  12501. return io.ErrUnexpectedEOF
  12502. }
  12503. b := dAtA[iNdEx]
  12504. iNdEx++
  12505. stringLen |= uint64(b&0x7F) << shift
  12506. if b < 0x80 {
  12507. break
  12508. }
  12509. }
  12510. intStringLen := int(stringLen)
  12511. if intStringLen < 0 {
  12512. return ErrInvalidLengthTypes
  12513. }
  12514. postIndex := iNdEx + intStringLen
  12515. if postIndex < 0 {
  12516. return ErrInvalidLengthTypes
  12517. }
  12518. if postIndex > l {
  12519. return io.ErrUnexpectedEOF
  12520. }
  12521. m.Codespace = string(dAtA[iNdEx:postIndex])
  12522. iNdEx = postIndex
  12523. default:
  12524. iNdEx = preIndex
  12525. skippy, err := skipTypes(dAtA[iNdEx:])
  12526. if err != nil {
  12527. return err
  12528. }
  12529. if skippy < 0 {
  12530. return ErrInvalidLengthTypes
  12531. }
  12532. if (iNdEx + skippy) < 0 {
  12533. return ErrInvalidLengthTypes
  12534. }
  12535. if (iNdEx + skippy) > l {
  12536. return io.ErrUnexpectedEOF
  12537. }
  12538. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12539. iNdEx += skippy
  12540. }
  12541. }
  12542. if iNdEx > l {
  12543. return io.ErrUnexpectedEOF
  12544. }
  12545. return nil
  12546. }
  12547. func (m *ResponseBeginBlock) Unmarshal(dAtA []byte) error {
  12548. l := len(dAtA)
  12549. iNdEx := 0
  12550. for iNdEx < l {
  12551. preIndex := iNdEx
  12552. var wire uint64
  12553. for shift := uint(0); ; shift += 7 {
  12554. if shift >= 64 {
  12555. return ErrIntOverflowTypes
  12556. }
  12557. if iNdEx >= l {
  12558. return io.ErrUnexpectedEOF
  12559. }
  12560. b := dAtA[iNdEx]
  12561. iNdEx++
  12562. wire |= uint64(b&0x7F) << shift
  12563. if b < 0x80 {
  12564. break
  12565. }
  12566. }
  12567. fieldNum := int32(wire >> 3)
  12568. wireType := int(wire & 0x7)
  12569. if wireType == 4 {
  12570. return fmt.Errorf("proto: ResponseBeginBlock: wiretype end group for non-group")
  12571. }
  12572. if fieldNum <= 0 {
  12573. return fmt.Errorf("proto: ResponseBeginBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  12574. }
  12575. switch fieldNum {
  12576. case 1:
  12577. if wireType != 2 {
  12578. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  12579. }
  12580. var msglen int
  12581. for shift := uint(0); ; shift += 7 {
  12582. if shift >= 64 {
  12583. return ErrIntOverflowTypes
  12584. }
  12585. if iNdEx >= l {
  12586. return io.ErrUnexpectedEOF
  12587. }
  12588. b := dAtA[iNdEx]
  12589. iNdEx++
  12590. msglen |= int(b&0x7F) << shift
  12591. if b < 0x80 {
  12592. break
  12593. }
  12594. }
  12595. if msglen < 0 {
  12596. return ErrInvalidLengthTypes
  12597. }
  12598. postIndex := iNdEx + msglen
  12599. if postIndex < 0 {
  12600. return ErrInvalidLengthTypes
  12601. }
  12602. if postIndex > l {
  12603. return io.ErrUnexpectedEOF
  12604. }
  12605. m.Events = append(m.Events, Event{})
  12606. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12607. return err
  12608. }
  12609. iNdEx = postIndex
  12610. default:
  12611. iNdEx = preIndex
  12612. skippy, err := skipTypes(dAtA[iNdEx:])
  12613. if err != nil {
  12614. return err
  12615. }
  12616. if skippy < 0 {
  12617. return ErrInvalidLengthTypes
  12618. }
  12619. if (iNdEx + skippy) < 0 {
  12620. return ErrInvalidLengthTypes
  12621. }
  12622. if (iNdEx + skippy) > l {
  12623. return io.ErrUnexpectedEOF
  12624. }
  12625. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12626. iNdEx += skippy
  12627. }
  12628. }
  12629. if iNdEx > l {
  12630. return io.ErrUnexpectedEOF
  12631. }
  12632. return nil
  12633. }
  12634. func (m *ResponseCheckTx) Unmarshal(dAtA []byte) error {
  12635. l := len(dAtA)
  12636. iNdEx := 0
  12637. for iNdEx < l {
  12638. preIndex := iNdEx
  12639. var wire uint64
  12640. for shift := uint(0); ; shift += 7 {
  12641. if shift >= 64 {
  12642. return ErrIntOverflowTypes
  12643. }
  12644. if iNdEx >= l {
  12645. return io.ErrUnexpectedEOF
  12646. }
  12647. b := dAtA[iNdEx]
  12648. iNdEx++
  12649. wire |= uint64(b&0x7F) << shift
  12650. if b < 0x80 {
  12651. break
  12652. }
  12653. }
  12654. fieldNum := int32(wire >> 3)
  12655. wireType := int(wire & 0x7)
  12656. if wireType == 4 {
  12657. return fmt.Errorf("proto: ResponseCheckTx: wiretype end group for non-group")
  12658. }
  12659. if fieldNum <= 0 {
  12660. return fmt.Errorf("proto: ResponseCheckTx: illegal tag %d (wire type %d)", fieldNum, wire)
  12661. }
  12662. switch fieldNum {
  12663. case 1:
  12664. if wireType != 0 {
  12665. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  12666. }
  12667. m.Code = 0
  12668. for shift := uint(0); ; shift += 7 {
  12669. if shift >= 64 {
  12670. return ErrIntOverflowTypes
  12671. }
  12672. if iNdEx >= l {
  12673. return io.ErrUnexpectedEOF
  12674. }
  12675. b := dAtA[iNdEx]
  12676. iNdEx++
  12677. m.Code |= uint32(b&0x7F) << shift
  12678. if b < 0x80 {
  12679. break
  12680. }
  12681. }
  12682. case 2:
  12683. if wireType != 2 {
  12684. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  12685. }
  12686. var byteLen int
  12687. for shift := uint(0); ; shift += 7 {
  12688. if shift >= 64 {
  12689. return ErrIntOverflowTypes
  12690. }
  12691. if iNdEx >= l {
  12692. return io.ErrUnexpectedEOF
  12693. }
  12694. b := dAtA[iNdEx]
  12695. iNdEx++
  12696. byteLen |= int(b&0x7F) << shift
  12697. if b < 0x80 {
  12698. break
  12699. }
  12700. }
  12701. if byteLen < 0 {
  12702. return ErrInvalidLengthTypes
  12703. }
  12704. postIndex := iNdEx + byteLen
  12705. if postIndex < 0 {
  12706. return ErrInvalidLengthTypes
  12707. }
  12708. if postIndex > l {
  12709. return io.ErrUnexpectedEOF
  12710. }
  12711. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  12712. if m.Data == nil {
  12713. m.Data = []byte{}
  12714. }
  12715. iNdEx = postIndex
  12716. case 3:
  12717. if wireType != 2 {
  12718. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  12719. }
  12720. var stringLen uint64
  12721. for shift := uint(0); ; shift += 7 {
  12722. if shift >= 64 {
  12723. return ErrIntOverflowTypes
  12724. }
  12725. if iNdEx >= l {
  12726. return io.ErrUnexpectedEOF
  12727. }
  12728. b := dAtA[iNdEx]
  12729. iNdEx++
  12730. stringLen |= uint64(b&0x7F) << shift
  12731. if b < 0x80 {
  12732. break
  12733. }
  12734. }
  12735. intStringLen := int(stringLen)
  12736. if intStringLen < 0 {
  12737. return ErrInvalidLengthTypes
  12738. }
  12739. postIndex := iNdEx + intStringLen
  12740. if postIndex < 0 {
  12741. return ErrInvalidLengthTypes
  12742. }
  12743. if postIndex > l {
  12744. return io.ErrUnexpectedEOF
  12745. }
  12746. m.Log = string(dAtA[iNdEx:postIndex])
  12747. iNdEx = postIndex
  12748. case 4:
  12749. if wireType != 2 {
  12750. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  12751. }
  12752. var stringLen uint64
  12753. for shift := uint(0); ; shift += 7 {
  12754. if shift >= 64 {
  12755. return ErrIntOverflowTypes
  12756. }
  12757. if iNdEx >= l {
  12758. return io.ErrUnexpectedEOF
  12759. }
  12760. b := dAtA[iNdEx]
  12761. iNdEx++
  12762. stringLen |= uint64(b&0x7F) << shift
  12763. if b < 0x80 {
  12764. break
  12765. }
  12766. }
  12767. intStringLen := int(stringLen)
  12768. if intStringLen < 0 {
  12769. return ErrInvalidLengthTypes
  12770. }
  12771. postIndex := iNdEx + intStringLen
  12772. if postIndex < 0 {
  12773. return ErrInvalidLengthTypes
  12774. }
  12775. if postIndex > l {
  12776. return io.ErrUnexpectedEOF
  12777. }
  12778. m.Info = string(dAtA[iNdEx:postIndex])
  12779. iNdEx = postIndex
  12780. case 5:
  12781. if wireType != 0 {
  12782. return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType)
  12783. }
  12784. m.GasWanted = 0
  12785. for shift := uint(0); ; shift += 7 {
  12786. if shift >= 64 {
  12787. return ErrIntOverflowTypes
  12788. }
  12789. if iNdEx >= l {
  12790. return io.ErrUnexpectedEOF
  12791. }
  12792. b := dAtA[iNdEx]
  12793. iNdEx++
  12794. m.GasWanted |= int64(b&0x7F) << shift
  12795. if b < 0x80 {
  12796. break
  12797. }
  12798. }
  12799. case 6:
  12800. if wireType != 0 {
  12801. return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType)
  12802. }
  12803. m.GasUsed = 0
  12804. for shift := uint(0); ; shift += 7 {
  12805. if shift >= 64 {
  12806. return ErrIntOverflowTypes
  12807. }
  12808. if iNdEx >= l {
  12809. return io.ErrUnexpectedEOF
  12810. }
  12811. b := dAtA[iNdEx]
  12812. iNdEx++
  12813. m.GasUsed |= int64(b&0x7F) << shift
  12814. if b < 0x80 {
  12815. break
  12816. }
  12817. }
  12818. case 7:
  12819. if wireType != 2 {
  12820. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  12821. }
  12822. var msglen int
  12823. for shift := uint(0); ; shift += 7 {
  12824. if shift >= 64 {
  12825. return ErrIntOverflowTypes
  12826. }
  12827. if iNdEx >= l {
  12828. return io.ErrUnexpectedEOF
  12829. }
  12830. b := dAtA[iNdEx]
  12831. iNdEx++
  12832. msglen |= int(b&0x7F) << shift
  12833. if b < 0x80 {
  12834. break
  12835. }
  12836. }
  12837. if msglen < 0 {
  12838. return ErrInvalidLengthTypes
  12839. }
  12840. postIndex := iNdEx + msglen
  12841. if postIndex < 0 {
  12842. return ErrInvalidLengthTypes
  12843. }
  12844. if postIndex > l {
  12845. return io.ErrUnexpectedEOF
  12846. }
  12847. m.Events = append(m.Events, Event{})
  12848. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12849. return err
  12850. }
  12851. iNdEx = postIndex
  12852. case 8:
  12853. if wireType != 2 {
  12854. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  12855. }
  12856. var stringLen uint64
  12857. for shift := uint(0); ; shift += 7 {
  12858. if shift >= 64 {
  12859. return ErrIntOverflowTypes
  12860. }
  12861. if iNdEx >= l {
  12862. return io.ErrUnexpectedEOF
  12863. }
  12864. b := dAtA[iNdEx]
  12865. iNdEx++
  12866. stringLen |= uint64(b&0x7F) << shift
  12867. if b < 0x80 {
  12868. break
  12869. }
  12870. }
  12871. intStringLen := int(stringLen)
  12872. if intStringLen < 0 {
  12873. return ErrInvalidLengthTypes
  12874. }
  12875. postIndex := iNdEx + intStringLen
  12876. if postIndex < 0 {
  12877. return ErrInvalidLengthTypes
  12878. }
  12879. if postIndex > l {
  12880. return io.ErrUnexpectedEOF
  12881. }
  12882. m.Codespace = string(dAtA[iNdEx:postIndex])
  12883. iNdEx = postIndex
  12884. default:
  12885. iNdEx = preIndex
  12886. skippy, err := skipTypes(dAtA[iNdEx:])
  12887. if err != nil {
  12888. return err
  12889. }
  12890. if skippy < 0 {
  12891. return ErrInvalidLengthTypes
  12892. }
  12893. if (iNdEx + skippy) < 0 {
  12894. return ErrInvalidLengthTypes
  12895. }
  12896. if (iNdEx + skippy) > l {
  12897. return io.ErrUnexpectedEOF
  12898. }
  12899. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12900. iNdEx += skippy
  12901. }
  12902. }
  12903. if iNdEx > l {
  12904. return io.ErrUnexpectedEOF
  12905. }
  12906. return nil
  12907. }
  12908. func (m *ResponseDeliverTx) Unmarshal(dAtA []byte) error {
  12909. l := len(dAtA)
  12910. iNdEx := 0
  12911. for iNdEx < l {
  12912. preIndex := iNdEx
  12913. var wire uint64
  12914. for shift := uint(0); ; shift += 7 {
  12915. if shift >= 64 {
  12916. return ErrIntOverflowTypes
  12917. }
  12918. if iNdEx >= l {
  12919. return io.ErrUnexpectedEOF
  12920. }
  12921. b := dAtA[iNdEx]
  12922. iNdEx++
  12923. wire |= uint64(b&0x7F) << shift
  12924. if b < 0x80 {
  12925. break
  12926. }
  12927. }
  12928. fieldNum := int32(wire >> 3)
  12929. wireType := int(wire & 0x7)
  12930. if wireType == 4 {
  12931. return fmt.Errorf("proto: ResponseDeliverTx: wiretype end group for non-group")
  12932. }
  12933. if fieldNum <= 0 {
  12934. return fmt.Errorf("proto: ResponseDeliverTx: illegal tag %d (wire type %d)", fieldNum, wire)
  12935. }
  12936. switch fieldNum {
  12937. case 1:
  12938. if wireType != 0 {
  12939. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  12940. }
  12941. m.Code = 0
  12942. for shift := uint(0); ; shift += 7 {
  12943. if shift >= 64 {
  12944. return ErrIntOverflowTypes
  12945. }
  12946. if iNdEx >= l {
  12947. return io.ErrUnexpectedEOF
  12948. }
  12949. b := dAtA[iNdEx]
  12950. iNdEx++
  12951. m.Code |= uint32(b&0x7F) << shift
  12952. if b < 0x80 {
  12953. break
  12954. }
  12955. }
  12956. case 2:
  12957. if wireType != 2 {
  12958. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  12959. }
  12960. var byteLen int
  12961. for shift := uint(0); ; shift += 7 {
  12962. if shift >= 64 {
  12963. return ErrIntOverflowTypes
  12964. }
  12965. if iNdEx >= l {
  12966. return io.ErrUnexpectedEOF
  12967. }
  12968. b := dAtA[iNdEx]
  12969. iNdEx++
  12970. byteLen |= int(b&0x7F) << shift
  12971. if b < 0x80 {
  12972. break
  12973. }
  12974. }
  12975. if byteLen < 0 {
  12976. return ErrInvalidLengthTypes
  12977. }
  12978. postIndex := iNdEx + byteLen
  12979. if postIndex < 0 {
  12980. return ErrInvalidLengthTypes
  12981. }
  12982. if postIndex > l {
  12983. return io.ErrUnexpectedEOF
  12984. }
  12985. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  12986. if m.Data == nil {
  12987. m.Data = []byte{}
  12988. }
  12989. iNdEx = postIndex
  12990. case 3:
  12991. if wireType != 2 {
  12992. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  12993. }
  12994. var stringLen uint64
  12995. for shift := uint(0); ; shift += 7 {
  12996. if shift >= 64 {
  12997. return ErrIntOverflowTypes
  12998. }
  12999. if iNdEx >= l {
  13000. return io.ErrUnexpectedEOF
  13001. }
  13002. b := dAtA[iNdEx]
  13003. iNdEx++
  13004. stringLen |= uint64(b&0x7F) << shift
  13005. if b < 0x80 {
  13006. break
  13007. }
  13008. }
  13009. intStringLen := int(stringLen)
  13010. if intStringLen < 0 {
  13011. return ErrInvalidLengthTypes
  13012. }
  13013. postIndex := iNdEx + intStringLen
  13014. if postIndex < 0 {
  13015. return ErrInvalidLengthTypes
  13016. }
  13017. if postIndex > l {
  13018. return io.ErrUnexpectedEOF
  13019. }
  13020. m.Log = string(dAtA[iNdEx:postIndex])
  13021. iNdEx = postIndex
  13022. case 4:
  13023. if wireType != 2 {
  13024. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  13025. }
  13026. var stringLen uint64
  13027. for shift := uint(0); ; shift += 7 {
  13028. if shift >= 64 {
  13029. return ErrIntOverflowTypes
  13030. }
  13031. if iNdEx >= l {
  13032. return io.ErrUnexpectedEOF
  13033. }
  13034. b := dAtA[iNdEx]
  13035. iNdEx++
  13036. stringLen |= uint64(b&0x7F) << shift
  13037. if b < 0x80 {
  13038. break
  13039. }
  13040. }
  13041. intStringLen := int(stringLen)
  13042. if intStringLen < 0 {
  13043. return ErrInvalidLengthTypes
  13044. }
  13045. postIndex := iNdEx + intStringLen
  13046. if postIndex < 0 {
  13047. return ErrInvalidLengthTypes
  13048. }
  13049. if postIndex > l {
  13050. return io.ErrUnexpectedEOF
  13051. }
  13052. m.Info = string(dAtA[iNdEx:postIndex])
  13053. iNdEx = postIndex
  13054. case 5:
  13055. if wireType != 0 {
  13056. return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType)
  13057. }
  13058. m.GasWanted = 0
  13059. for shift := uint(0); ; shift += 7 {
  13060. if shift >= 64 {
  13061. return ErrIntOverflowTypes
  13062. }
  13063. if iNdEx >= l {
  13064. return io.ErrUnexpectedEOF
  13065. }
  13066. b := dAtA[iNdEx]
  13067. iNdEx++
  13068. m.GasWanted |= int64(b&0x7F) << shift
  13069. if b < 0x80 {
  13070. break
  13071. }
  13072. }
  13073. case 6:
  13074. if wireType != 0 {
  13075. return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType)
  13076. }
  13077. m.GasUsed = 0
  13078. for shift := uint(0); ; shift += 7 {
  13079. if shift >= 64 {
  13080. return ErrIntOverflowTypes
  13081. }
  13082. if iNdEx >= l {
  13083. return io.ErrUnexpectedEOF
  13084. }
  13085. b := dAtA[iNdEx]
  13086. iNdEx++
  13087. m.GasUsed |= int64(b&0x7F) << shift
  13088. if b < 0x80 {
  13089. break
  13090. }
  13091. }
  13092. case 7:
  13093. if wireType != 2 {
  13094. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  13095. }
  13096. var msglen int
  13097. for shift := uint(0); ; shift += 7 {
  13098. if shift >= 64 {
  13099. return ErrIntOverflowTypes
  13100. }
  13101. if iNdEx >= l {
  13102. return io.ErrUnexpectedEOF
  13103. }
  13104. b := dAtA[iNdEx]
  13105. iNdEx++
  13106. msglen |= int(b&0x7F) << shift
  13107. if b < 0x80 {
  13108. break
  13109. }
  13110. }
  13111. if msglen < 0 {
  13112. return ErrInvalidLengthTypes
  13113. }
  13114. postIndex := iNdEx + msglen
  13115. if postIndex < 0 {
  13116. return ErrInvalidLengthTypes
  13117. }
  13118. if postIndex > l {
  13119. return io.ErrUnexpectedEOF
  13120. }
  13121. m.Events = append(m.Events, Event{})
  13122. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13123. return err
  13124. }
  13125. iNdEx = postIndex
  13126. case 8:
  13127. if wireType != 2 {
  13128. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  13129. }
  13130. var stringLen uint64
  13131. for shift := uint(0); ; shift += 7 {
  13132. if shift >= 64 {
  13133. return ErrIntOverflowTypes
  13134. }
  13135. if iNdEx >= l {
  13136. return io.ErrUnexpectedEOF
  13137. }
  13138. b := dAtA[iNdEx]
  13139. iNdEx++
  13140. stringLen |= uint64(b&0x7F) << shift
  13141. if b < 0x80 {
  13142. break
  13143. }
  13144. }
  13145. intStringLen := int(stringLen)
  13146. if intStringLen < 0 {
  13147. return ErrInvalidLengthTypes
  13148. }
  13149. postIndex := iNdEx + intStringLen
  13150. if postIndex < 0 {
  13151. return ErrInvalidLengthTypes
  13152. }
  13153. if postIndex > l {
  13154. return io.ErrUnexpectedEOF
  13155. }
  13156. m.Codespace = string(dAtA[iNdEx:postIndex])
  13157. iNdEx = postIndex
  13158. default:
  13159. iNdEx = preIndex
  13160. skippy, err := skipTypes(dAtA[iNdEx:])
  13161. if err != nil {
  13162. return err
  13163. }
  13164. if skippy < 0 {
  13165. return ErrInvalidLengthTypes
  13166. }
  13167. if (iNdEx + skippy) < 0 {
  13168. return ErrInvalidLengthTypes
  13169. }
  13170. if (iNdEx + skippy) > l {
  13171. return io.ErrUnexpectedEOF
  13172. }
  13173. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13174. iNdEx += skippy
  13175. }
  13176. }
  13177. if iNdEx > l {
  13178. return io.ErrUnexpectedEOF
  13179. }
  13180. return nil
  13181. }
  13182. func (m *ResponseEndBlock) Unmarshal(dAtA []byte) error {
  13183. l := len(dAtA)
  13184. iNdEx := 0
  13185. for iNdEx < l {
  13186. preIndex := iNdEx
  13187. var wire uint64
  13188. for shift := uint(0); ; shift += 7 {
  13189. if shift >= 64 {
  13190. return ErrIntOverflowTypes
  13191. }
  13192. if iNdEx >= l {
  13193. return io.ErrUnexpectedEOF
  13194. }
  13195. b := dAtA[iNdEx]
  13196. iNdEx++
  13197. wire |= uint64(b&0x7F) << shift
  13198. if b < 0x80 {
  13199. break
  13200. }
  13201. }
  13202. fieldNum := int32(wire >> 3)
  13203. wireType := int(wire & 0x7)
  13204. if wireType == 4 {
  13205. return fmt.Errorf("proto: ResponseEndBlock: wiretype end group for non-group")
  13206. }
  13207. if fieldNum <= 0 {
  13208. return fmt.Errorf("proto: ResponseEndBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  13209. }
  13210. switch fieldNum {
  13211. case 1:
  13212. if wireType != 2 {
  13213. return fmt.Errorf("proto: wrong wireType = %d for field ValidatorUpdates", wireType)
  13214. }
  13215. var msglen int
  13216. for shift := uint(0); ; shift += 7 {
  13217. if shift >= 64 {
  13218. return ErrIntOverflowTypes
  13219. }
  13220. if iNdEx >= l {
  13221. return io.ErrUnexpectedEOF
  13222. }
  13223. b := dAtA[iNdEx]
  13224. iNdEx++
  13225. msglen |= int(b&0x7F) << shift
  13226. if b < 0x80 {
  13227. break
  13228. }
  13229. }
  13230. if msglen < 0 {
  13231. return ErrInvalidLengthTypes
  13232. }
  13233. postIndex := iNdEx + msglen
  13234. if postIndex < 0 {
  13235. return ErrInvalidLengthTypes
  13236. }
  13237. if postIndex > l {
  13238. return io.ErrUnexpectedEOF
  13239. }
  13240. m.ValidatorUpdates = append(m.ValidatorUpdates, ValidatorUpdate{})
  13241. if err := m.ValidatorUpdates[len(m.ValidatorUpdates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13242. return err
  13243. }
  13244. iNdEx = postIndex
  13245. case 2:
  13246. if wireType != 2 {
  13247. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParamUpdates", wireType)
  13248. }
  13249. var msglen int
  13250. for shift := uint(0); ; shift += 7 {
  13251. if shift >= 64 {
  13252. return ErrIntOverflowTypes
  13253. }
  13254. if iNdEx >= l {
  13255. return io.ErrUnexpectedEOF
  13256. }
  13257. b := dAtA[iNdEx]
  13258. iNdEx++
  13259. msglen |= int(b&0x7F) << shift
  13260. if b < 0x80 {
  13261. break
  13262. }
  13263. }
  13264. if msglen < 0 {
  13265. return ErrInvalidLengthTypes
  13266. }
  13267. postIndex := iNdEx + msglen
  13268. if postIndex < 0 {
  13269. return ErrInvalidLengthTypes
  13270. }
  13271. if postIndex > l {
  13272. return io.ErrUnexpectedEOF
  13273. }
  13274. if m.ConsensusParamUpdates == nil {
  13275. m.ConsensusParamUpdates = &ConsensusParams{}
  13276. }
  13277. if err := m.ConsensusParamUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13278. return err
  13279. }
  13280. iNdEx = postIndex
  13281. case 3:
  13282. if wireType != 2 {
  13283. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  13284. }
  13285. var msglen int
  13286. for shift := uint(0); ; shift += 7 {
  13287. if shift >= 64 {
  13288. return ErrIntOverflowTypes
  13289. }
  13290. if iNdEx >= l {
  13291. return io.ErrUnexpectedEOF
  13292. }
  13293. b := dAtA[iNdEx]
  13294. iNdEx++
  13295. msglen |= int(b&0x7F) << shift
  13296. if b < 0x80 {
  13297. break
  13298. }
  13299. }
  13300. if msglen < 0 {
  13301. return ErrInvalidLengthTypes
  13302. }
  13303. postIndex := iNdEx + msglen
  13304. if postIndex < 0 {
  13305. return ErrInvalidLengthTypes
  13306. }
  13307. if postIndex > l {
  13308. return io.ErrUnexpectedEOF
  13309. }
  13310. m.Events = append(m.Events, Event{})
  13311. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13312. return err
  13313. }
  13314. iNdEx = postIndex
  13315. default:
  13316. iNdEx = preIndex
  13317. skippy, err := skipTypes(dAtA[iNdEx:])
  13318. if err != nil {
  13319. return err
  13320. }
  13321. if skippy < 0 {
  13322. return ErrInvalidLengthTypes
  13323. }
  13324. if (iNdEx + skippy) < 0 {
  13325. return ErrInvalidLengthTypes
  13326. }
  13327. if (iNdEx + skippy) > l {
  13328. return io.ErrUnexpectedEOF
  13329. }
  13330. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13331. iNdEx += skippy
  13332. }
  13333. }
  13334. if iNdEx > l {
  13335. return io.ErrUnexpectedEOF
  13336. }
  13337. return nil
  13338. }
  13339. func (m *ResponseCommit) Unmarshal(dAtA []byte) error {
  13340. l := len(dAtA)
  13341. iNdEx := 0
  13342. for iNdEx < l {
  13343. preIndex := iNdEx
  13344. var wire uint64
  13345. for shift := uint(0); ; shift += 7 {
  13346. if shift >= 64 {
  13347. return ErrIntOverflowTypes
  13348. }
  13349. if iNdEx >= l {
  13350. return io.ErrUnexpectedEOF
  13351. }
  13352. b := dAtA[iNdEx]
  13353. iNdEx++
  13354. wire |= uint64(b&0x7F) << shift
  13355. if b < 0x80 {
  13356. break
  13357. }
  13358. }
  13359. fieldNum := int32(wire >> 3)
  13360. wireType := int(wire & 0x7)
  13361. if wireType == 4 {
  13362. return fmt.Errorf("proto: ResponseCommit: wiretype end group for non-group")
  13363. }
  13364. if fieldNum <= 0 {
  13365. return fmt.Errorf("proto: ResponseCommit: illegal tag %d (wire type %d)", fieldNum, wire)
  13366. }
  13367. switch fieldNum {
  13368. case 2:
  13369. if wireType != 2 {
  13370. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  13371. }
  13372. var byteLen int
  13373. for shift := uint(0); ; shift += 7 {
  13374. if shift >= 64 {
  13375. return ErrIntOverflowTypes
  13376. }
  13377. if iNdEx >= l {
  13378. return io.ErrUnexpectedEOF
  13379. }
  13380. b := dAtA[iNdEx]
  13381. iNdEx++
  13382. byteLen |= int(b&0x7F) << shift
  13383. if b < 0x80 {
  13384. break
  13385. }
  13386. }
  13387. if byteLen < 0 {
  13388. return ErrInvalidLengthTypes
  13389. }
  13390. postIndex := iNdEx + byteLen
  13391. if postIndex < 0 {
  13392. return ErrInvalidLengthTypes
  13393. }
  13394. if postIndex > l {
  13395. return io.ErrUnexpectedEOF
  13396. }
  13397. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  13398. if m.Data == nil {
  13399. m.Data = []byte{}
  13400. }
  13401. iNdEx = postIndex
  13402. default:
  13403. iNdEx = preIndex
  13404. skippy, err := skipTypes(dAtA[iNdEx:])
  13405. if err != nil {
  13406. return err
  13407. }
  13408. if skippy < 0 {
  13409. return ErrInvalidLengthTypes
  13410. }
  13411. if (iNdEx + skippy) < 0 {
  13412. return ErrInvalidLengthTypes
  13413. }
  13414. if (iNdEx + skippy) > l {
  13415. return io.ErrUnexpectedEOF
  13416. }
  13417. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13418. iNdEx += skippy
  13419. }
  13420. }
  13421. if iNdEx > l {
  13422. return io.ErrUnexpectedEOF
  13423. }
  13424. return nil
  13425. }
  13426. func (m *ConsensusParams) Unmarshal(dAtA []byte) error {
  13427. l := len(dAtA)
  13428. iNdEx := 0
  13429. for iNdEx < l {
  13430. preIndex := iNdEx
  13431. var wire uint64
  13432. for shift := uint(0); ; shift += 7 {
  13433. if shift >= 64 {
  13434. return ErrIntOverflowTypes
  13435. }
  13436. if iNdEx >= l {
  13437. return io.ErrUnexpectedEOF
  13438. }
  13439. b := dAtA[iNdEx]
  13440. iNdEx++
  13441. wire |= uint64(b&0x7F) << shift
  13442. if b < 0x80 {
  13443. break
  13444. }
  13445. }
  13446. fieldNum := int32(wire >> 3)
  13447. wireType := int(wire & 0x7)
  13448. if wireType == 4 {
  13449. return fmt.Errorf("proto: ConsensusParams: wiretype end group for non-group")
  13450. }
  13451. if fieldNum <= 0 {
  13452. return fmt.Errorf("proto: ConsensusParams: illegal tag %d (wire type %d)", fieldNum, wire)
  13453. }
  13454. switch fieldNum {
  13455. case 1:
  13456. if wireType != 2 {
  13457. return fmt.Errorf("proto: wrong wireType = %d for field Block", wireType)
  13458. }
  13459. var msglen int
  13460. for shift := uint(0); ; shift += 7 {
  13461. if shift >= 64 {
  13462. return ErrIntOverflowTypes
  13463. }
  13464. if iNdEx >= l {
  13465. return io.ErrUnexpectedEOF
  13466. }
  13467. b := dAtA[iNdEx]
  13468. iNdEx++
  13469. msglen |= int(b&0x7F) << shift
  13470. if b < 0x80 {
  13471. break
  13472. }
  13473. }
  13474. if msglen < 0 {
  13475. return ErrInvalidLengthTypes
  13476. }
  13477. postIndex := iNdEx + msglen
  13478. if postIndex < 0 {
  13479. return ErrInvalidLengthTypes
  13480. }
  13481. if postIndex > l {
  13482. return io.ErrUnexpectedEOF
  13483. }
  13484. if m.Block == nil {
  13485. m.Block = &BlockParams{}
  13486. }
  13487. if err := m.Block.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13488. return err
  13489. }
  13490. iNdEx = postIndex
  13491. case 2:
  13492. if wireType != 2 {
  13493. return fmt.Errorf("proto: wrong wireType = %d for field Evidence", wireType)
  13494. }
  13495. var msglen int
  13496. for shift := uint(0); ; shift += 7 {
  13497. if shift >= 64 {
  13498. return ErrIntOverflowTypes
  13499. }
  13500. if iNdEx >= l {
  13501. return io.ErrUnexpectedEOF
  13502. }
  13503. b := dAtA[iNdEx]
  13504. iNdEx++
  13505. msglen |= int(b&0x7F) << shift
  13506. if b < 0x80 {
  13507. break
  13508. }
  13509. }
  13510. if msglen < 0 {
  13511. return ErrInvalidLengthTypes
  13512. }
  13513. postIndex := iNdEx + msglen
  13514. if postIndex < 0 {
  13515. return ErrInvalidLengthTypes
  13516. }
  13517. if postIndex > l {
  13518. return io.ErrUnexpectedEOF
  13519. }
  13520. if m.Evidence == nil {
  13521. m.Evidence = &EvidenceParams{}
  13522. }
  13523. if err := m.Evidence.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13524. return err
  13525. }
  13526. iNdEx = postIndex
  13527. case 3:
  13528. if wireType != 2 {
  13529. return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType)
  13530. }
  13531. var msglen int
  13532. for shift := uint(0); ; shift += 7 {
  13533. if shift >= 64 {
  13534. return ErrIntOverflowTypes
  13535. }
  13536. if iNdEx >= l {
  13537. return io.ErrUnexpectedEOF
  13538. }
  13539. b := dAtA[iNdEx]
  13540. iNdEx++
  13541. msglen |= int(b&0x7F) << shift
  13542. if b < 0x80 {
  13543. break
  13544. }
  13545. }
  13546. if msglen < 0 {
  13547. return ErrInvalidLengthTypes
  13548. }
  13549. postIndex := iNdEx + msglen
  13550. if postIndex < 0 {
  13551. return ErrInvalidLengthTypes
  13552. }
  13553. if postIndex > l {
  13554. return io.ErrUnexpectedEOF
  13555. }
  13556. if m.Validator == nil {
  13557. m.Validator = &ValidatorParams{}
  13558. }
  13559. if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13560. return err
  13561. }
  13562. iNdEx = postIndex
  13563. default:
  13564. iNdEx = preIndex
  13565. skippy, err := skipTypes(dAtA[iNdEx:])
  13566. if err != nil {
  13567. return err
  13568. }
  13569. if skippy < 0 {
  13570. return ErrInvalidLengthTypes
  13571. }
  13572. if (iNdEx + skippy) < 0 {
  13573. return ErrInvalidLengthTypes
  13574. }
  13575. if (iNdEx + skippy) > l {
  13576. return io.ErrUnexpectedEOF
  13577. }
  13578. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13579. iNdEx += skippy
  13580. }
  13581. }
  13582. if iNdEx > l {
  13583. return io.ErrUnexpectedEOF
  13584. }
  13585. return nil
  13586. }
  13587. func (m *BlockParams) Unmarshal(dAtA []byte) error {
  13588. l := len(dAtA)
  13589. iNdEx := 0
  13590. for iNdEx < l {
  13591. preIndex := iNdEx
  13592. var wire uint64
  13593. for shift := uint(0); ; shift += 7 {
  13594. if shift >= 64 {
  13595. return ErrIntOverflowTypes
  13596. }
  13597. if iNdEx >= l {
  13598. return io.ErrUnexpectedEOF
  13599. }
  13600. b := dAtA[iNdEx]
  13601. iNdEx++
  13602. wire |= uint64(b&0x7F) << shift
  13603. if b < 0x80 {
  13604. break
  13605. }
  13606. }
  13607. fieldNum := int32(wire >> 3)
  13608. wireType := int(wire & 0x7)
  13609. if wireType == 4 {
  13610. return fmt.Errorf("proto: BlockParams: wiretype end group for non-group")
  13611. }
  13612. if fieldNum <= 0 {
  13613. return fmt.Errorf("proto: BlockParams: illegal tag %d (wire type %d)", fieldNum, wire)
  13614. }
  13615. switch fieldNum {
  13616. case 1:
  13617. if wireType != 0 {
  13618. return fmt.Errorf("proto: wrong wireType = %d for field MaxBytes", wireType)
  13619. }
  13620. m.MaxBytes = 0
  13621. for shift := uint(0); ; shift += 7 {
  13622. if shift >= 64 {
  13623. return ErrIntOverflowTypes
  13624. }
  13625. if iNdEx >= l {
  13626. return io.ErrUnexpectedEOF
  13627. }
  13628. b := dAtA[iNdEx]
  13629. iNdEx++
  13630. m.MaxBytes |= int64(b&0x7F) << shift
  13631. if b < 0x80 {
  13632. break
  13633. }
  13634. }
  13635. case 2:
  13636. if wireType != 0 {
  13637. return fmt.Errorf("proto: wrong wireType = %d for field MaxGas", wireType)
  13638. }
  13639. m.MaxGas = 0
  13640. for shift := uint(0); ; shift += 7 {
  13641. if shift >= 64 {
  13642. return ErrIntOverflowTypes
  13643. }
  13644. if iNdEx >= l {
  13645. return io.ErrUnexpectedEOF
  13646. }
  13647. b := dAtA[iNdEx]
  13648. iNdEx++
  13649. m.MaxGas |= int64(b&0x7F) << shift
  13650. if b < 0x80 {
  13651. break
  13652. }
  13653. }
  13654. default:
  13655. iNdEx = preIndex
  13656. skippy, err := skipTypes(dAtA[iNdEx:])
  13657. if err != nil {
  13658. return err
  13659. }
  13660. if skippy < 0 {
  13661. return ErrInvalidLengthTypes
  13662. }
  13663. if (iNdEx + skippy) < 0 {
  13664. return ErrInvalidLengthTypes
  13665. }
  13666. if (iNdEx + skippy) > l {
  13667. return io.ErrUnexpectedEOF
  13668. }
  13669. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13670. iNdEx += skippy
  13671. }
  13672. }
  13673. if iNdEx > l {
  13674. return io.ErrUnexpectedEOF
  13675. }
  13676. return nil
  13677. }
  13678. func (m *EvidenceParams) Unmarshal(dAtA []byte) error {
  13679. l := len(dAtA)
  13680. iNdEx := 0
  13681. for iNdEx < l {
  13682. preIndex := iNdEx
  13683. var wire uint64
  13684. for shift := uint(0); ; shift += 7 {
  13685. if shift >= 64 {
  13686. return ErrIntOverflowTypes
  13687. }
  13688. if iNdEx >= l {
  13689. return io.ErrUnexpectedEOF
  13690. }
  13691. b := dAtA[iNdEx]
  13692. iNdEx++
  13693. wire |= uint64(b&0x7F) << shift
  13694. if b < 0x80 {
  13695. break
  13696. }
  13697. }
  13698. fieldNum := int32(wire >> 3)
  13699. wireType := int(wire & 0x7)
  13700. if wireType == 4 {
  13701. return fmt.Errorf("proto: EvidenceParams: wiretype end group for non-group")
  13702. }
  13703. if fieldNum <= 0 {
  13704. return fmt.Errorf("proto: EvidenceParams: illegal tag %d (wire type %d)", fieldNum, wire)
  13705. }
  13706. switch fieldNum {
  13707. case 1:
  13708. if wireType != 0 {
  13709. return fmt.Errorf("proto: wrong wireType = %d for field MaxAge", wireType)
  13710. }
  13711. m.MaxAge = 0
  13712. for shift := uint(0); ; shift += 7 {
  13713. if shift >= 64 {
  13714. return ErrIntOverflowTypes
  13715. }
  13716. if iNdEx >= l {
  13717. return io.ErrUnexpectedEOF
  13718. }
  13719. b := dAtA[iNdEx]
  13720. iNdEx++
  13721. m.MaxAge |= int64(b&0x7F) << shift
  13722. if b < 0x80 {
  13723. break
  13724. }
  13725. }
  13726. default:
  13727. iNdEx = preIndex
  13728. skippy, err := skipTypes(dAtA[iNdEx:])
  13729. if err != nil {
  13730. return err
  13731. }
  13732. if skippy < 0 {
  13733. return ErrInvalidLengthTypes
  13734. }
  13735. if (iNdEx + skippy) < 0 {
  13736. return ErrInvalidLengthTypes
  13737. }
  13738. if (iNdEx + skippy) > l {
  13739. return io.ErrUnexpectedEOF
  13740. }
  13741. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13742. iNdEx += skippy
  13743. }
  13744. }
  13745. if iNdEx > l {
  13746. return io.ErrUnexpectedEOF
  13747. }
  13748. return nil
  13749. }
  13750. func (m *ValidatorParams) Unmarshal(dAtA []byte) error {
  13751. l := len(dAtA)
  13752. iNdEx := 0
  13753. for iNdEx < l {
  13754. preIndex := iNdEx
  13755. var wire uint64
  13756. for shift := uint(0); ; shift += 7 {
  13757. if shift >= 64 {
  13758. return ErrIntOverflowTypes
  13759. }
  13760. if iNdEx >= l {
  13761. return io.ErrUnexpectedEOF
  13762. }
  13763. b := dAtA[iNdEx]
  13764. iNdEx++
  13765. wire |= uint64(b&0x7F) << shift
  13766. if b < 0x80 {
  13767. break
  13768. }
  13769. }
  13770. fieldNum := int32(wire >> 3)
  13771. wireType := int(wire & 0x7)
  13772. if wireType == 4 {
  13773. return fmt.Errorf("proto: ValidatorParams: wiretype end group for non-group")
  13774. }
  13775. if fieldNum <= 0 {
  13776. return fmt.Errorf("proto: ValidatorParams: illegal tag %d (wire type %d)", fieldNum, wire)
  13777. }
  13778. switch fieldNum {
  13779. case 1:
  13780. if wireType != 2 {
  13781. return fmt.Errorf("proto: wrong wireType = %d for field PubKeyTypes", wireType)
  13782. }
  13783. var stringLen uint64
  13784. for shift := uint(0); ; shift += 7 {
  13785. if shift >= 64 {
  13786. return ErrIntOverflowTypes
  13787. }
  13788. if iNdEx >= l {
  13789. return io.ErrUnexpectedEOF
  13790. }
  13791. b := dAtA[iNdEx]
  13792. iNdEx++
  13793. stringLen |= uint64(b&0x7F) << shift
  13794. if b < 0x80 {
  13795. break
  13796. }
  13797. }
  13798. intStringLen := int(stringLen)
  13799. if intStringLen < 0 {
  13800. return ErrInvalidLengthTypes
  13801. }
  13802. postIndex := iNdEx + intStringLen
  13803. if postIndex < 0 {
  13804. return ErrInvalidLengthTypes
  13805. }
  13806. if postIndex > l {
  13807. return io.ErrUnexpectedEOF
  13808. }
  13809. m.PubKeyTypes = append(m.PubKeyTypes, string(dAtA[iNdEx:postIndex]))
  13810. iNdEx = postIndex
  13811. default:
  13812. iNdEx = preIndex
  13813. skippy, err := skipTypes(dAtA[iNdEx:])
  13814. if err != nil {
  13815. return err
  13816. }
  13817. if skippy < 0 {
  13818. return ErrInvalidLengthTypes
  13819. }
  13820. if (iNdEx + skippy) < 0 {
  13821. return ErrInvalidLengthTypes
  13822. }
  13823. if (iNdEx + skippy) > l {
  13824. return io.ErrUnexpectedEOF
  13825. }
  13826. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13827. iNdEx += skippy
  13828. }
  13829. }
  13830. if iNdEx > l {
  13831. return io.ErrUnexpectedEOF
  13832. }
  13833. return nil
  13834. }
  13835. func (m *LastCommitInfo) Unmarshal(dAtA []byte) error {
  13836. l := len(dAtA)
  13837. iNdEx := 0
  13838. for iNdEx < l {
  13839. preIndex := iNdEx
  13840. var wire uint64
  13841. for shift := uint(0); ; shift += 7 {
  13842. if shift >= 64 {
  13843. return ErrIntOverflowTypes
  13844. }
  13845. if iNdEx >= l {
  13846. return io.ErrUnexpectedEOF
  13847. }
  13848. b := dAtA[iNdEx]
  13849. iNdEx++
  13850. wire |= uint64(b&0x7F) << shift
  13851. if b < 0x80 {
  13852. break
  13853. }
  13854. }
  13855. fieldNum := int32(wire >> 3)
  13856. wireType := int(wire & 0x7)
  13857. if wireType == 4 {
  13858. return fmt.Errorf("proto: LastCommitInfo: wiretype end group for non-group")
  13859. }
  13860. if fieldNum <= 0 {
  13861. return fmt.Errorf("proto: LastCommitInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  13862. }
  13863. switch fieldNum {
  13864. case 1:
  13865. if wireType != 0 {
  13866. return fmt.Errorf("proto: wrong wireType = %d for field Round", wireType)
  13867. }
  13868. m.Round = 0
  13869. for shift := uint(0); ; shift += 7 {
  13870. if shift >= 64 {
  13871. return ErrIntOverflowTypes
  13872. }
  13873. if iNdEx >= l {
  13874. return io.ErrUnexpectedEOF
  13875. }
  13876. b := dAtA[iNdEx]
  13877. iNdEx++
  13878. m.Round |= int32(b&0x7F) << shift
  13879. if b < 0x80 {
  13880. break
  13881. }
  13882. }
  13883. case 2:
  13884. if wireType != 2 {
  13885. return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType)
  13886. }
  13887. var msglen int
  13888. for shift := uint(0); ; shift += 7 {
  13889. if shift >= 64 {
  13890. return ErrIntOverflowTypes
  13891. }
  13892. if iNdEx >= l {
  13893. return io.ErrUnexpectedEOF
  13894. }
  13895. b := dAtA[iNdEx]
  13896. iNdEx++
  13897. msglen |= int(b&0x7F) << shift
  13898. if b < 0x80 {
  13899. break
  13900. }
  13901. }
  13902. if msglen < 0 {
  13903. return ErrInvalidLengthTypes
  13904. }
  13905. postIndex := iNdEx + msglen
  13906. if postIndex < 0 {
  13907. return ErrInvalidLengthTypes
  13908. }
  13909. if postIndex > l {
  13910. return io.ErrUnexpectedEOF
  13911. }
  13912. m.Votes = append(m.Votes, VoteInfo{})
  13913. if err := m.Votes[len(m.Votes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13914. return err
  13915. }
  13916. iNdEx = postIndex
  13917. default:
  13918. iNdEx = preIndex
  13919. skippy, err := skipTypes(dAtA[iNdEx:])
  13920. if err != nil {
  13921. return err
  13922. }
  13923. if skippy < 0 {
  13924. return ErrInvalidLengthTypes
  13925. }
  13926. if (iNdEx + skippy) < 0 {
  13927. return ErrInvalidLengthTypes
  13928. }
  13929. if (iNdEx + skippy) > l {
  13930. return io.ErrUnexpectedEOF
  13931. }
  13932. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13933. iNdEx += skippy
  13934. }
  13935. }
  13936. if iNdEx > l {
  13937. return io.ErrUnexpectedEOF
  13938. }
  13939. return nil
  13940. }
  13941. func (m *Event) Unmarshal(dAtA []byte) error {
  13942. l := len(dAtA)
  13943. iNdEx := 0
  13944. for iNdEx < l {
  13945. preIndex := iNdEx
  13946. var wire uint64
  13947. for shift := uint(0); ; shift += 7 {
  13948. if shift >= 64 {
  13949. return ErrIntOverflowTypes
  13950. }
  13951. if iNdEx >= l {
  13952. return io.ErrUnexpectedEOF
  13953. }
  13954. b := dAtA[iNdEx]
  13955. iNdEx++
  13956. wire |= uint64(b&0x7F) << shift
  13957. if b < 0x80 {
  13958. break
  13959. }
  13960. }
  13961. fieldNum := int32(wire >> 3)
  13962. wireType := int(wire & 0x7)
  13963. if wireType == 4 {
  13964. return fmt.Errorf("proto: Event: wiretype end group for non-group")
  13965. }
  13966. if fieldNum <= 0 {
  13967. return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire)
  13968. }
  13969. switch fieldNum {
  13970. case 1:
  13971. if wireType != 2 {
  13972. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  13973. }
  13974. var stringLen uint64
  13975. for shift := uint(0); ; shift += 7 {
  13976. if shift >= 64 {
  13977. return ErrIntOverflowTypes
  13978. }
  13979. if iNdEx >= l {
  13980. return io.ErrUnexpectedEOF
  13981. }
  13982. b := dAtA[iNdEx]
  13983. iNdEx++
  13984. stringLen |= uint64(b&0x7F) << shift
  13985. if b < 0x80 {
  13986. break
  13987. }
  13988. }
  13989. intStringLen := int(stringLen)
  13990. if intStringLen < 0 {
  13991. return ErrInvalidLengthTypes
  13992. }
  13993. postIndex := iNdEx + intStringLen
  13994. if postIndex < 0 {
  13995. return ErrInvalidLengthTypes
  13996. }
  13997. if postIndex > l {
  13998. return io.ErrUnexpectedEOF
  13999. }
  14000. m.Type = string(dAtA[iNdEx:postIndex])
  14001. iNdEx = postIndex
  14002. case 2:
  14003. if wireType != 2 {
  14004. return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType)
  14005. }
  14006. var msglen int
  14007. for shift := uint(0); ; shift += 7 {
  14008. if shift >= 64 {
  14009. return ErrIntOverflowTypes
  14010. }
  14011. if iNdEx >= l {
  14012. return io.ErrUnexpectedEOF
  14013. }
  14014. b := dAtA[iNdEx]
  14015. iNdEx++
  14016. msglen |= int(b&0x7F) << shift
  14017. if b < 0x80 {
  14018. break
  14019. }
  14020. }
  14021. if msglen < 0 {
  14022. return ErrInvalidLengthTypes
  14023. }
  14024. postIndex := iNdEx + msglen
  14025. if postIndex < 0 {
  14026. return ErrInvalidLengthTypes
  14027. }
  14028. if postIndex > l {
  14029. return io.ErrUnexpectedEOF
  14030. }
  14031. m.Attributes = append(m.Attributes, kv.Pair{})
  14032. if err := m.Attributes[len(m.Attributes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14033. return err
  14034. }
  14035. iNdEx = postIndex
  14036. default:
  14037. iNdEx = preIndex
  14038. skippy, err := skipTypes(dAtA[iNdEx:])
  14039. if err != nil {
  14040. return err
  14041. }
  14042. if skippy < 0 {
  14043. return ErrInvalidLengthTypes
  14044. }
  14045. if (iNdEx + skippy) < 0 {
  14046. return ErrInvalidLengthTypes
  14047. }
  14048. if (iNdEx + skippy) > l {
  14049. return io.ErrUnexpectedEOF
  14050. }
  14051. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14052. iNdEx += skippy
  14053. }
  14054. }
  14055. if iNdEx > l {
  14056. return io.ErrUnexpectedEOF
  14057. }
  14058. return nil
  14059. }
  14060. func (m *Header) Unmarshal(dAtA []byte) error {
  14061. l := len(dAtA)
  14062. iNdEx := 0
  14063. for iNdEx < l {
  14064. preIndex := iNdEx
  14065. var wire uint64
  14066. for shift := uint(0); ; shift += 7 {
  14067. if shift >= 64 {
  14068. return ErrIntOverflowTypes
  14069. }
  14070. if iNdEx >= l {
  14071. return io.ErrUnexpectedEOF
  14072. }
  14073. b := dAtA[iNdEx]
  14074. iNdEx++
  14075. wire |= uint64(b&0x7F) << shift
  14076. if b < 0x80 {
  14077. break
  14078. }
  14079. }
  14080. fieldNum := int32(wire >> 3)
  14081. wireType := int(wire & 0x7)
  14082. if wireType == 4 {
  14083. return fmt.Errorf("proto: Header: wiretype end group for non-group")
  14084. }
  14085. if fieldNum <= 0 {
  14086. return fmt.Errorf("proto: Header: illegal tag %d (wire type %d)", fieldNum, wire)
  14087. }
  14088. switch fieldNum {
  14089. case 1:
  14090. if wireType != 2 {
  14091. return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  14092. }
  14093. var msglen int
  14094. for shift := uint(0); ; shift += 7 {
  14095. if shift >= 64 {
  14096. return ErrIntOverflowTypes
  14097. }
  14098. if iNdEx >= l {
  14099. return io.ErrUnexpectedEOF
  14100. }
  14101. b := dAtA[iNdEx]
  14102. iNdEx++
  14103. msglen |= int(b&0x7F) << shift
  14104. if b < 0x80 {
  14105. break
  14106. }
  14107. }
  14108. if msglen < 0 {
  14109. return ErrInvalidLengthTypes
  14110. }
  14111. postIndex := iNdEx + msglen
  14112. if postIndex < 0 {
  14113. return ErrInvalidLengthTypes
  14114. }
  14115. if postIndex > l {
  14116. return io.ErrUnexpectedEOF
  14117. }
  14118. if err := m.Version.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14119. return err
  14120. }
  14121. iNdEx = postIndex
  14122. case 2:
  14123. if wireType != 2 {
  14124. return fmt.Errorf("proto: wrong wireType = %d for field ChainID", wireType)
  14125. }
  14126. var stringLen uint64
  14127. for shift := uint(0); ; shift += 7 {
  14128. if shift >= 64 {
  14129. return ErrIntOverflowTypes
  14130. }
  14131. if iNdEx >= l {
  14132. return io.ErrUnexpectedEOF
  14133. }
  14134. b := dAtA[iNdEx]
  14135. iNdEx++
  14136. stringLen |= uint64(b&0x7F) << shift
  14137. if b < 0x80 {
  14138. break
  14139. }
  14140. }
  14141. intStringLen := int(stringLen)
  14142. if intStringLen < 0 {
  14143. return ErrInvalidLengthTypes
  14144. }
  14145. postIndex := iNdEx + intStringLen
  14146. if postIndex < 0 {
  14147. return ErrInvalidLengthTypes
  14148. }
  14149. if postIndex > l {
  14150. return io.ErrUnexpectedEOF
  14151. }
  14152. m.ChainID = string(dAtA[iNdEx:postIndex])
  14153. iNdEx = postIndex
  14154. case 3:
  14155. if wireType != 0 {
  14156. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  14157. }
  14158. m.Height = 0
  14159. for shift := uint(0); ; shift += 7 {
  14160. if shift >= 64 {
  14161. return ErrIntOverflowTypes
  14162. }
  14163. if iNdEx >= l {
  14164. return io.ErrUnexpectedEOF
  14165. }
  14166. b := dAtA[iNdEx]
  14167. iNdEx++
  14168. m.Height |= int64(b&0x7F) << shift
  14169. if b < 0x80 {
  14170. break
  14171. }
  14172. }
  14173. case 4:
  14174. if wireType != 2 {
  14175. return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
  14176. }
  14177. var msglen int
  14178. for shift := uint(0); ; shift += 7 {
  14179. if shift >= 64 {
  14180. return ErrIntOverflowTypes
  14181. }
  14182. if iNdEx >= l {
  14183. return io.ErrUnexpectedEOF
  14184. }
  14185. b := dAtA[iNdEx]
  14186. iNdEx++
  14187. msglen |= int(b&0x7F) << shift
  14188. if b < 0x80 {
  14189. break
  14190. }
  14191. }
  14192. if msglen < 0 {
  14193. return ErrInvalidLengthTypes
  14194. }
  14195. postIndex := iNdEx + msglen
  14196. if postIndex < 0 {
  14197. return ErrInvalidLengthTypes
  14198. }
  14199. if postIndex > l {
  14200. return io.ErrUnexpectedEOF
  14201. }
  14202. if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil {
  14203. return err
  14204. }
  14205. iNdEx = postIndex
  14206. case 5:
  14207. if wireType != 2 {
  14208. return fmt.Errorf("proto: wrong wireType = %d for field LastBlockId", wireType)
  14209. }
  14210. var msglen int
  14211. for shift := uint(0); ; shift += 7 {
  14212. if shift >= 64 {
  14213. return ErrIntOverflowTypes
  14214. }
  14215. if iNdEx >= l {
  14216. return io.ErrUnexpectedEOF
  14217. }
  14218. b := dAtA[iNdEx]
  14219. iNdEx++
  14220. msglen |= int(b&0x7F) << shift
  14221. if b < 0x80 {
  14222. break
  14223. }
  14224. }
  14225. if msglen < 0 {
  14226. return ErrInvalidLengthTypes
  14227. }
  14228. postIndex := iNdEx + msglen
  14229. if postIndex < 0 {
  14230. return ErrInvalidLengthTypes
  14231. }
  14232. if postIndex > l {
  14233. return io.ErrUnexpectedEOF
  14234. }
  14235. if err := m.LastBlockId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14236. return err
  14237. }
  14238. iNdEx = postIndex
  14239. case 6:
  14240. if wireType != 2 {
  14241. return fmt.Errorf("proto: wrong wireType = %d for field LastCommitHash", wireType)
  14242. }
  14243. var byteLen int
  14244. for shift := uint(0); ; shift += 7 {
  14245. if shift >= 64 {
  14246. return ErrIntOverflowTypes
  14247. }
  14248. if iNdEx >= l {
  14249. return io.ErrUnexpectedEOF
  14250. }
  14251. b := dAtA[iNdEx]
  14252. iNdEx++
  14253. byteLen |= int(b&0x7F) << shift
  14254. if b < 0x80 {
  14255. break
  14256. }
  14257. }
  14258. if byteLen < 0 {
  14259. return ErrInvalidLengthTypes
  14260. }
  14261. postIndex := iNdEx + byteLen
  14262. if postIndex < 0 {
  14263. return ErrInvalidLengthTypes
  14264. }
  14265. if postIndex > l {
  14266. return io.ErrUnexpectedEOF
  14267. }
  14268. m.LastCommitHash = append(m.LastCommitHash[:0], dAtA[iNdEx:postIndex]...)
  14269. if m.LastCommitHash == nil {
  14270. m.LastCommitHash = []byte{}
  14271. }
  14272. iNdEx = postIndex
  14273. case 7:
  14274. if wireType != 2 {
  14275. return fmt.Errorf("proto: wrong wireType = %d for field DataHash", wireType)
  14276. }
  14277. var byteLen int
  14278. for shift := uint(0); ; shift += 7 {
  14279. if shift >= 64 {
  14280. return ErrIntOverflowTypes
  14281. }
  14282. if iNdEx >= l {
  14283. return io.ErrUnexpectedEOF
  14284. }
  14285. b := dAtA[iNdEx]
  14286. iNdEx++
  14287. byteLen |= int(b&0x7F) << shift
  14288. if b < 0x80 {
  14289. break
  14290. }
  14291. }
  14292. if byteLen < 0 {
  14293. return ErrInvalidLengthTypes
  14294. }
  14295. postIndex := iNdEx + byteLen
  14296. if postIndex < 0 {
  14297. return ErrInvalidLengthTypes
  14298. }
  14299. if postIndex > l {
  14300. return io.ErrUnexpectedEOF
  14301. }
  14302. m.DataHash = append(m.DataHash[:0], dAtA[iNdEx:postIndex]...)
  14303. if m.DataHash == nil {
  14304. m.DataHash = []byte{}
  14305. }
  14306. iNdEx = postIndex
  14307. case 8:
  14308. if wireType != 2 {
  14309. return fmt.Errorf("proto: wrong wireType = %d for field ValidatorsHash", wireType)
  14310. }
  14311. var byteLen int
  14312. for shift := uint(0); ; shift += 7 {
  14313. if shift >= 64 {
  14314. return ErrIntOverflowTypes
  14315. }
  14316. if iNdEx >= l {
  14317. return io.ErrUnexpectedEOF
  14318. }
  14319. b := dAtA[iNdEx]
  14320. iNdEx++
  14321. byteLen |= int(b&0x7F) << shift
  14322. if b < 0x80 {
  14323. break
  14324. }
  14325. }
  14326. if byteLen < 0 {
  14327. return ErrInvalidLengthTypes
  14328. }
  14329. postIndex := iNdEx + byteLen
  14330. if postIndex < 0 {
  14331. return ErrInvalidLengthTypes
  14332. }
  14333. if postIndex > l {
  14334. return io.ErrUnexpectedEOF
  14335. }
  14336. m.ValidatorsHash = append(m.ValidatorsHash[:0], dAtA[iNdEx:postIndex]...)
  14337. if m.ValidatorsHash == nil {
  14338. m.ValidatorsHash = []byte{}
  14339. }
  14340. iNdEx = postIndex
  14341. case 9:
  14342. if wireType != 2 {
  14343. return fmt.Errorf("proto: wrong wireType = %d for field NextValidatorsHash", wireType)
  14344. }
  14345. var byteLen int
  14346. for shift := uint(0); ; shift += 7 {
  14347. if shift >= 64 {
  14348. return ErrIntOverflowTypes
  14349. }
  14350. if iNdEx >= l {
  14351. return io.ErrUnexpectedEOF
  14352. }
  14353. b := dAtA[iNdEx]
  14354. iNdEx++
  14355. byteLen |= int(b&0x7F) << shift
  14356. if b < 0x80 {
  14357. break
  14358. }
  14359. }
  14360. if byteLen < 0 {
  14361. return ErrInvalidLengthTypes
  14362. }
  14363. postIndex := iNdEx + byteLen
  14364. if postIndex < 0 {
  14365. return ErrInvalidLengthTypes
  14366. }
  14367. if postIndex > l {
  14368. return io.ErrUnexpectedEOF
  14369. }
  14370. m.NextValidatorsHash = append(m.NextValidatorsHash[:0], dAtA[iNdEx:postIndex]...)
  14371. if m.NextValidatorsHash == nil {
  14372. m.NextValidatorsHash = []byte{}
  14373. }
  14374. iNdEx = postIndex
  14375. case 10:
  14376. if wireType != 2 {
  14377. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusHash", wireType)
  14378. }
  14379. var byteLen int
  14380. for shift := uint(0); ; shift += 7 {
  14381. if shift >= 64 {
  14382. return ErrIntOverflowTypes
  14383. }
  14384. if iNdEx >= l {
  14385. return io.ErrUnexpectedEOF
  14386. }
  14387. b := dAtA[iNdEx]
  14388. iNdEx++
  14389. byteLen |= int(b&0x7F) << shift
  14390. if b < 0x80 {
  14391. break
  14392. }
  14393. }
  14394. if byteLen < 0 {
  14395. return ErrInvalidLengthTypes
  14396. }
  14397. postIndex := iNdEx + byteLen
  14398. if postIndex < 0 {
  14399. return ErrInvalidLengthTypes
  14400. }
  14401. if postIndex > l {
  14402. return io.ErrUnexpectedEOF
  14403. }
  14404. m.ConsensusHash = append(m.ConsensusHash[:0], dAtA[iNdEx:postIndex]...)
  14405. if m.ConsensusHash == nil {
  14406. m.ConsensusHash = []byte{}
  14407. }
  14408. iNdEx = postIndex
  14409. case 11:
  14410. if wireType != 2 {
  14411. return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType)
  14412. }
  14413. var byteLen int
  14414. for shift := uint(0); ; shift += 7 {
  14415. if shift >= 64 {
  14416. return ErrIntOverflowTypes
  14417. }
  14418. if iNdEx >= l {
  14419. return io.ErrUnexpectedEOF
  14420. }
  14421. b := dAtA[iNdEx]
  14422. iNdEx++
  14423. byteLen |= int(b&0x7F) << shift
  14424. if b < 0x80 {
  14425. break
  14426. }
  14427. }
  14428. if byteLen < 0 {
  14429. return ErrInvalidLengthTypes
  14430. }
  14431. postIndex := iNdEx + byteLen
  14432. if postIndex < 0 {
  14433. return ErrInvalidLengthTypes
  14434. }
  14435. if postIndex > l {
  14436. return io.ErrUnexpectedEOF
  14437. }
  14438. m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...)
  14439. if m.AppHash == nil {
  14440. m.AppHash = []byte{}
  14441. }
  14442. iNdEx = postIndex
  14443. case 12:
  14444. if wireType != 2 {
  14445. return fmt.Errorf("proto: wrong wireType = %d for field LastResultsHash", wireType)
  14446. }
  14447. var byteLen int
  14448. for shift := uint(0); ; shift += 7 {
  14449. if shift >= 64 {
  14450. return ErrIntOverflowTypes
  14451. }
  14452. if iNdEx >= l {
  14453. return io.ErrUnexpectedEOF
  14454. }
  14455. b := dAtA[iNdEx]
  14456. iNdEx++
  14457. byteLen |= int(b&0x7F) << shift
  14458. if b < 0x80 {
  14459. break
  14460. }
  14461. }
  14462. if byteLen < 0 {
  14463. return ErrInvalidLengthTypes
  14464. }
  14465. postIndex := iNdEx + byteLen
  14466. if postIndex < 0 {
  14467. return ErrInvalidLengthTypes
  14468. }
  14469. if postIndex > l {
  14470. return io.ErrUnexpectedEOF
  14471. }
  14472. m.LastResultsHash = append(m.LastResultsHash[:0], dAtA[iNdEx:postIndex]...)
  14473. if m.LastResultsHash == nil {
  14474. m.LastResultsHash = []byte{}
  14475. }
  14476. iNdEx = postIndex
  14477. case 13:
  14478. if wireType != 2 {
  14479. return fmt.Errorf("proto: wrong wireType = %d for field EvidenceHash", wireType)
  14480. }
  14481. var byteLen int
  14482. for shift := uint(0); ; shift += 7 {
  14483. if shift >= 64 {
  14484. return ErrIntOverflowTypes
  14485. }
  14486. if iNdEx >= l {
  14487. return io.ErrUnexpectedEOF
  14488. }
  14489. b := dAtA[iNdEx]
  14490. iNdEx++
  14491. byteLen |= int(b&0x7F) << shift
  14492. if b < 0x80 {
  14493. break
  14494. }
  14495. }
  14496. if byteLen < 0 {
  14497. return ErrInvalidLengthTypes
  14498. }
  14499. postIndex := iNdEx + byteLen
  14500. if postIndex < 0 {
  14501. return ErrInvalidLengthTypes
  14502. }
  14503. if postIndex > l {
  14504. return io.ErrUnexpectedEOF
  14505. }
  14506. m.EvidenceHash = append(m.EvidenceHash[:0], dAtA[iNdEx:postIndex]...)
  14507. if m.EvidenceHash == nil {
  14508. m.EvidenceHash = []byte{}
  14509. }
  14510. iNdEx = postIndex
  14511. case 14:
  14512. if wireType != 2 {
  14513. return fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", wireType)
  14514. }
  14515. var byteLen int
  14516. for shift := uint(0); ; shift += 7 {
  14517. if shift >= 64 {
  14518. return ErrIntOverflowTypes
  14519. }
  14520. if iNdEx >= l {
  14521. return io.ErrUnexpectedEOF
  14522. }
  14523. b := dAtA[iNdEx]
  14524. iNdEx++
  14525. byteLen |= int(b&0x7F) << shift
  14526. if b < 0x80 {
  14527. break
  14528. }
  14529. }
  14530. if byteLen < 0 {
  14531. return ErrInvalidLengthTypes
  14532. }
  14533. postIndex := iNdEx + byteLen
  14534. if postIndex < 0 {
  14535. return ErrInvalidLengthTypes
  14536. }
  14537. if postIndex > l {
  14538. return io.ErrUnexpectedEOF
  14539. }
  14540. m.ProposerAddress = append(m.ProposerAddress[:0], dAtA[iNdEx:postIndex]...)
  14541. if m.ProposerAddress == nil {
  14542. m.ProposerAddress = []byte{}
  14543. }
  14544. iNdEx = postIndex
  14545. default:
  14546. iNdEx = preIndex
  14547. skippy, err := skipTypes(dAtA[iNdEx:])
  14548. if err != nil {
  14549. return err
  14550. }
  14551. if skippy < 0 {
  14552. return ErrInvalidLengthTypes
  14553. }
  14554. if (iNdEx + skippy) < 0 {
  14555. return ErrInvalidLengthTypes
  14556. }
  14557. if (iNdEx + skippy) > l {
  14558. return io.ErrUnexpectedEOF
  14559. }
  14560. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14561. iNdEx += skippy
  14562. }
  14563. }
  14564. if iNdEx > l {
  14565. return io.ErrUnexpectedEOF
  14566. }
  14567. return nil
  14568. }
  14569. func (m *Version) Unmarshal(dAtA []byte) error {
  14570. l := len(dAtA)
  14571. iNdEx := 0
  14572. for iNdEx < l {
  14573. preIndex := iNdEx
  14574. var wire uint64
  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. wire |= uint64(b&0x7F) << shift
  14585. if b < 0x80 {
  14586. break
  14587. }
  14588. }
  14589. fieldNum := int32(wire >> 3)
  14590. wireType := int(wire & 0x7)
  14591. if wireType == 4 {
  14592. return fmt.Errorf("proto: Version: wiretype end group for non-group")
  14593. }
  14594. if fieldNum <= 0 {
  14595. return fmt.Errorf("proto: Version: illegal tag %d (wire type %d)", fieldNum, wire)
  14596. }
  14597. switch fieldNum {
  14598. case 1:
  14599. if wireType != 0 {
  14600. return fmt.Errorf("proto: wrong wireType = %d for field Block", wireType)
  14601. }
  14602. m.Block = 0
  14603. for shift := uint(0); ; shift += 7 {
  14604. if shift >= 64 {
  14605. return ErrIntOverflowTypes
  14606. }
  14607. if iNdEx >= l {
  14608. return io.ErrUnexpectedEOF
  14609. }
  14610. b := dAtA[iNdEx]
  14611. iNdEx++
  14612. m.Block |= uint64(b&0x7F) << shift
  14613. if b < 0x80 {
  14614. break
  14615. }
  14616. }
  14617. case 2:
  14618. if wireType != 0 {
  14619. return fmt.Errorf("proto: wrong wireType = %d for field App", wireType)
  14620. }
  14621. m.App = 0
  14622. for shift := uint(0); ; shift += 7 {
  14623. if shift >= 64 {
  14624. return ErrIntOverflowTypes
  14625. }
  14626. if iNdEx >= l {
  14627. return io.ErrUnexpectedEOF
  14628. }
  14629. b := dAtA[iNdEx]
  14630. iNdEx++
  14631. m.App |= uint64(b&0x7F) << shift
  14632. if b < 0x80 {
  14633. break
  14634. }
  14635. }
  14636. default:
  14637. iNdEx = preIndex
  14638. skippy, err := skipTypes(dAtA[iNdEx:])
  14639. if err != nil {
  14640. return err
  14641. }
  14642. if skippy < 0 {
  14643. return ErrInvalidLengthTypes
  14644. }
  14645. if (iNdEx + skippy) < 0 {
  14646. return ErrInvalidLengthTypes
  14647. }
  14648. if (iNdEx + skippy) > l {
  14649. return io.ErrUnexpectedEOF
  14650. }
  14651. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14652. iNdEx += skippy
  14653. }
  14654. }
  14655. if iNdEx > l {
  14656. return io.ErrUnexpectedEOF
  14657. }
  14658. return nil
  14659. }
  14660. func (m *BlockID) Unmarshal(dAtA []byte) error {
  14661. l := len(dAtA)
  14662. iNdEx := 0
  14663. for iNdEx < l {
  14664. preIndex := iNdEx
  14665. var wire uint64
  14666. for shift := uint(0); ; shift += 7 {
  14667. if shift >= 64 {
  14668. return ErrIntOverflowTypes
  14669. }
  14670. if iNdEx >= l {
  14671. return io.ErrUnexpectedEOF
  14672. }
  14673. b := dAtA[iNdEx]
  14674. iNdEx++
  14675. wire |= uint64(b&0x7F) << shift
  14676. if b < 0x80 {
  14677. break
  14678. }
  14679. }
  14680. fieldNum := int32(wire >> 3)
  14681. wireType := int(wire & 0x7)
  14682. if wireType == 4 {
  14683. return fmt.Errorf("proto: BlockID: wiretype end group for non-group")
  14684. }
  14685. if fieldNum <= 0 {
  14686. return fmt.Errorf("proto: BlockID: illegal tag %d (wire type %d)", fieldNum, wire)
  14687. }
  14688. switch fieldNum {
  14689. case 1:
  14690. if wireType != 2 {
  14691. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  14692. }
  14693. var byteLen int
  14694. for shift := uint(0); ; shift += 7 {
  14695. if shift >= 64 {
  14696. return ErrIntOverflowTypes
  14697. }
  14698. if iNdEx >= l {
  14699. return io.ErrUnexpectedEOF
  14700. }
  14701. b := dAtA[iNdEx]
  14702. iNdEx++
  14703. byteLen |= int(b&0x7F) << shift
  14704. if b < 0x80 {
  14705. break
  14706. }
  14707. }
  14708. if byteLen < 0 {
  14709. return ErrInvalidLengthTypes
  14710. }
  14711. postIndex := iNdEx + byteLen
  14712. if postIndex < 0 {
  14713. return ErrInvalidLengthTypes
  14714. }
  14715. if postIndex > l {
  14716. return io.ErrUnexpectedEOF
  14717. }
  14718. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  14719. if m.Hash == nil {
  14720. m.Hash = []byte{}
  14721. }
  14722. iNdEx = postIndex
  14723. case 2:
  14724. if wireType != 2 {
  14725. return fmt.Errorf("proto: wrong wireType = %d for field PartsHeader", wireType)
  14726. }
  14727. var msglen int
  14728. for shift := uint(0); ; shift += 7 {
  14729. if shift >= 64 {
  14730. return ErrIntOverflowTypes
  14731. }
  14732. if iNdEx >= l {
  14733. return io.ErrUnexpectedEOF
  14734. }
  14735. b := dAtA[iNdEx]
  14736. iNdEx++
  14737. msglen |= int(b&0x7F) << shift
  14738. if b < 0x80 {
  14739. break
  14740. }
  14741. }
  14742. if msglen < 0 {
  14743. return ErrInvalidLengthTypes
  14744. }
  14745. postIndex := iNdEx + msglen
  14746. if postIndex < 0 {
  14747. return ErrInvalidLengthTypes
  14748. }
  14749. if postIndex > l {
  14750. return io.ErrUnexpectedEOF
  14751. }
  14752. if err := m.PartsHeader.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14753. return err
  14754. }
  14755. iNdEx = postIndex
  14756. default:
  14757. iNdEx = preIndex
  14758. skippy, err := skipTypes(dAtA[iNdEx:])
  14759. if err != nil {
  14760. return err
  14761. }
  14762. if skippy < 0 {
  14763. return ErrInvalidLengthTypes
  14764. }
  14765. if (iNdEx + skippy) < 0 {
  14766. return ErrInvalidLengthTypes
  14767. }
  14768. if (iNdEx + skippy) > l {
  14769. return io.ErrUnexpectedEOF
  14770. }
  14771. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14772. iNdEx += skippy
  14773. }
  14774. }
  14775. if iNdEx > l {
  14776. return io.ErrUnexpectedEOF
  14777. }
  14778. return nil
  14779. }
  14780. func (m *PartSetHeader) Unmarshal(dAtA []byte) error {
  14781. l := len(dAtA)
  14782. iNdEx := 0
  14783. for iNdEx < l {
  14784. preIndex := iNdEx
  14785. var wire uint64
  14786. for shift := uint(0); ; shift += 7 {
  14787. if shift >= 64 {
  14788. return ErrIntOverflowTypes
  14789. }
  14790. if iNdEx >= l {
  14791. return io.ErrUnexpectedEOF
  14792. }
  14793. b := dAtA[iNdEx]
  14794. iNdEx++
  14795. wire |= uint64(b&0x7F) << shift
  14796. if b < 0x80 {
  14797. break
  14798. }
  14799. }
  14800. fieldNum := int32(wire >> 3)
  14801. wireType := int(wire & 0x7)
  14802. if wireType == 4 {
  14803. return fmt.Errorf("proto: PartSetHeader: wiretype end group for non-group")
  14804. }
  14805. if fieldNum <= 0 {
  14806. return fmt.Errorf("proto: PartSetHeader: illegal tag %d (wire type %d)", fieldNum, wire)
  14807. }
  14808. switch fieldNum {
  14809. case 1:
  14810. if wireType != 0 {
  14811. return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType)
  14812. }
  14813. m.Total = 0
  14814. for shift := uint(0); ; shift += 7 {
  14815. if shift >= 64 {
  14816. return ErrIntOverflowTypes
  14817. }
  14818. if iNdEx >= l {
  14819. return io.ErrUnexpectedEOF
  14820. }
  14821. b := dAtA[iNdEx]
  14822. iNdEx++
  14823. m.Total |= int32(b&0x7F) << shift
  14824. if b < 0x80 {
  14825. break
  14826. }
  14827. }
  14828. case 2:
  14829. if wireType != 2 {
  14830. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  14831. }
  14832. var byteLen int
  14833. for shift := uint(0); ; shift += 7 {
  14834. if shift >= 64 {
  14835. return ErrIntOverflowTypes
  14836. }
  14837. if iNdEx >= l {
  14838. return io.ErrUnexpectedEOF
  14839. }
  14840. b := dAtA[iNdEx]
  14841. iNdEx++
  14842. byteLen |= int(b&0x7F) << shift
  14843. if b < 0x80 {
  14844. break
  14845. }
  14846. }
  14847. if byteLen < 0 {
  14848. return ErrInvalidLengthTypes
  14849. }
  14850. postIndex := iNdEx + byteLen
  14851. if postIndex < 0 {
  14852. return ErrInvalidLengthTypes
  14853. }
  14854. if postIndex > l {
  14855. return io.ErrUnexpectedEOF
  14856. }
  14857. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  14858. if m.Hash == nil {
  14859. m.Hash = []byte{}
  14860. }
  14861. iNdEx = postIndex
  14862. default:
  14863. iNdEx = preIndex
  14864. skippy, err := skipTypes(dAtA[iNdEx:])
  14865. if err != nil {
  14866. return err
  14867. }
  14868. if skippy < 0 {
  14869. return ErrInvalidLengthTypes
  14870. }
  14871. if (iNdEx + skippy) < 0 {
  14872. return ErrInvalidLengthTypes
  14873. }
  14874. if (iNdEx + skippy) > l {
  14875. return io.ErrUnexpectedEOF
  14876. }
  14877. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14878. iNdEx += skippy
  14879. }
  14880. }
  14881. if iNdEx > l {
  14882. return io.ErrUnexpectedEOF
  14883. }
  14884. return nil
  14885. }
  14886. func (m *Validator) Unmarshal(dAtA []byte) error {
  14887. l := len(dAtA)
  14888. iNdEx := 0
  14889. for iNdEx < l {
  14890. preIndex := iNdEx
  14891. var wire uint64
  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. wire |= uint64(b&0x7F) << shift
  14902. if b < 0x80 {
  14903. break
  14904. }
  14905. }
  14906. fieldNum := int32(wire >> 3)
  14907. wireType := int(wire & 0x7)
  14908. if wireType == 4 {
  14909. return fmt.Errorf("proto: Validator: wiretype end group for non-group")
  14910. }
  14911. if fieldNum <= 0 {
  14912. return fmt.Errorf("proto: Validator: illegal tag %d (wire type %d)", fieldNum, wire)
  14913. }
  14914. switch fieldNum {
  14915. case 1:
  14916. if wireType != 2 {
  14917. return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
  14918. }
  14919. var byteLen int
  14920. for shift := uint(0); ; shift += 7 {
  14921. if shift >= 64 {
  14922. return ErrIntOverflowTypes
  14923. }
  14924. if iNdEx >= l {
  14925. return io.ErrUnexpectedEOF
  14926. }
  14927. b := dAtA[iNdEx]
  14928. iNdEx++
  14929. byteLen |= int(b&0x7F) << shift
  14930. if b < 0x80 {
  14931. break
  14932. }
  14933. }
  14934. if byteLen < 0 {
  14935. return ErrInvalidLengthTypes
  14936. }
  14937. postIndex := iNdEx + byteLen
  14938. if postIndex < 0 {
  14939. return ErrInvalidLengthTypes
  14940. }
  14941. if postIndex > l {
  14942. return io.ErrUnexpectedEOF
  14943. }
  14944. m.Address = append(m.Address[:0], dAtA[iNdEx:postIndex]...)
  14945. if m.Address == nil {
  14946. m.Address = []byte{}
  14947. }
  14948. iNdEx = postIndex
  14949. case 3:
  14950. if wireType != 0 {
  14951. return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
  14952. }
  14953. m.Power = 0
  14954. for shift := uint(0); ; shift += 7 {
  14955. if shift >= 64 {
  14956. return ErrIntOverflowTypes
  14957. }
  14958. if iNdEx >= l {
  14959. return io.ErrUnexpectedEOF
  14960. }
  14961. b := dAtA[iNdEx]
  14962. iNdEx++
  14963. m.Power |= int64(b&0x7F) << shift
  14964. if b < 0x80 {
  14965. break
  14966. }
  14967. }
  14968. default:
  14969. iNdEx = preIndex
  14970. skippy, err := skipTypes(dAtA[iNdEx:])
  14971. if err != nil {
  14972. return err
  14973. }
  14974. if skippy < 0 {
  14975. return ErrInvalidLengthTypes
  14976. }
  14977. if (iNdEx + skippy) < 0 {
  14978. return ErrInvalidLengthTypes
  14979. }
  14980. if (iNdEx + skippy) > l {
  14981. return io.ErrUnexpectedEOF
  14982. }
  14983. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14984. iNdEx += skippy
  14985. }
  14986. }
  14987. if iNdEx > l {
  14988. return io.ErrUnexpectedEOF
  14989. }
  14990. return nil
  14991. }
  14992. func (m *ValidatorUpdate) Unmarshal(dAtA []byte) error {
  14993. l := len(dAtA)
  14994. iNdEx := 0
  14995. for iNdEx < l {
  14996. preIndex := iNdEx
  14997. var wire uint64
  14998. for shift := uint(0); ; shift += 7 {
  14999. if shift >= 64 {
  15000. return ErrIntOverflowTypes
  15001. }
  15002. if iNdEx >= l {
  15003. return io.ErrUnexpectedEOF
  15004. }
  15005. b := dAtA[iNdEx]
  15006. iNdEx++
  15007. wire |= uint64(b&0x7F) << shift
  15008. if b < 0x80 {
  15009. break
  15010. }
  15011. }
  15012. fieldNum := int32(wire >> 3)
  15013. wireType := int(wire & 0x7)
  15014. if wireType == 4 {
  15015. return fmt.Errorf("proto: ValidatorUpdate: wiretype end group for non-group")
  15016. }
  15017. if fieldNum <= 0 {
  15018. return fmt.Errorf("proto: ValidatorUpdate: illegal tag %d (wire type %d)", fieldNum, wire)
  15019. }
  15020. switch fieldNum {
  15021. case 1:
  15022. if wireType != 2 {
  15023. return fmt.Errorf("proto: wrong wireType = %d for field PubKey", wireType)
  15024. }
  15025. var msglen int
  15026. for shift := uint(0); ; shift += 7 {
  15027. if shift >= 64 {
  15028. return ErrIntOverflowTypes
  15029. }
  15030. if iNdEx >= l {
  15031. return io.ErrUnexpectedEOF
  15032. }
  15033. b := dAtA[iNdEx]
  15034. iNdEx++
  15035. msglen |= int(b&0x7F) << shift
  15036. if b < 0x80 {
  15037. break
  15038. }
  15039. }
  15040. if msglen < 0 {
  15041. return ErrInvalidLengthTypes
  15042. }
  15043. postIndex := iNdEx + msglen
  15044. if postIndex < 0 {
  15045. return ErrInvalidLengthTypes
  15046. }
  15047. if postIndex > l {
  15048. return io.ErrUnexpectedEOF
  15049. }
  15050. if err := m.PubKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15051. return err
  15052. }
  15053. iNdEx = postIndex
  15054. case 2:
  15055. if wireType != 0 {
  15056. return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
  15057. }
  15058. m.Power = 0
  15059. for shift := uint(0); ; shift += 7 {
  15060. if shift >= 64 {
  15061. return ErrIntOverflowTypes
  15062. }
  15063. if iNdEx >= l {
  15064. return io.ErrUnexpectedEOF
  15065. }
  15066. b := dAtA[iNdEx]
  15067. iNdEx++
  15068. m.Power |= int64(b&0x7F) << shift
  15069. if b < 0x80 {
  15070. break
  15071. }
  15072. }
  15073. default:
  15074. iNdEx = preIndex
  15075. skippy, err := skipTypes(dAtA[iNdEx:])
  15076. if err != nil {
  15077. return err
  15078. }
  15079. if skippy < 0 {
  15080. return ErrInvalidLengthTypes
  15081. }
  15082. if (iNdEx + skippy) < 0 {
  15083. return ErrInvalidLengthTypes
  15084. }
  15085. if (iNdEx + skippy) > l {
  15086. return io.ErrUnexpectedEOF
  15087. }
  15088. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  15089. iNdEx += skippy
  15090. }
  15091. }
  15092. if iNdEx > l {
  15093. return io.ErrUnexpectedEOF
  15094. }
  15095. return nil
  15096. }
  15097. func (m *VoteInfo) Unmarshal(dAtA []byte) error {
  15098. l := len(dAtA)
  15099. iNdEx := 0
  15100. for iNdEx < l {
  15101. preIndex := iNdEx
  15102. var wire uint64
  15103. for shift := uint(0); ; shift += 7 {
  15104. if shift >= 64 {
  15105. return ErrIntOverflowTypes
  15106. }
  15107. if iNdEx >= l {
  15108. return io.ErrUnexpectedEOF
  15109. }
  15110. b := dAtA[iNdEx]
  15111. iNdEx++
  15112. wire |= uint64(b&0x7F) << shift
  15113. if b < 0x80 {
  15114. break
  15115. }
  15116. }
  15117. fieldNum := int32(wire >> 3)
  15118. wireType := int(wire & 0x7)
  15119. if wireType == 4 {
  15120. return fmt.Errorf("proto: VoteInfo: wiretype end group for non-group")
  15121. }
  15122. if fieldNum <= 0 {
  15123. return fmt.Errorf("proto: VoteInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  15124. }
  15125. switch fieldNum {
  15126. case 1:
  15127. if wireType != 2 {
  15128. return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType)
  15129. }
  15130. var msglen int
  15131. for shift := uint(0); ; shift += 7 {
  15132. if shift >= 64 {
  15133. return ErrIntOverflowTypes
  15134. }
  15135. if iNdEx >= l {
  15136. return io.ErrUnexpectedEOF
  15137. }
  15138. b := dAtA[iNdEx]
  15139. iNdEx++
  15140. msglen |= int(b&0x7F) << shift
  15141. if b < 0x80 {
  15142. break
  15143. }
  15144. }
  15145. if msglen < 0 {
  15146. return ErrInvalidLengthTypes
  15147. }
  15148. postIndex := iNdEx + msglen
  15149. if postIndex < 0 {
  15150. return ErrInvalidLengthTypes
  15151. }
  15152. if postIndex > l {
  15153. return io.ErrUnexpectedEOF
  15154. }
  15155. if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15156. return err
  15157. }
  15158. iNdEx = postIndex
  15159. case 2:
  15160. if wireType != 0 {
  15161. return fmt.Errorf("proto: wrong wireType = %d for field SignedLastBlock", wireType)
  15162. }
  15163. var v int
  15164. for shift := uint(0); ; shift += 7 {
  15165. if shift >= 64 {
  15166. return ErrIntOverflowTypes
  15167. }
  15168. if iNdEx >= l {
  15169. return io.ErrUnexpectedEOF
  15170. }
  15171. b := dAtA[iNdEx]
  15172. iNdEx++
  15173. v |= int(b&0x7F) << shift
  15174. if b < 0x80 {
  15175. break
  15176. }
  15177. }
  15178. m.SignedLastBlock = bool(v != 0)
  15179. default:
  15180. iNdEx = preIndex
  15181. skippy, err := skipTypes(dAtA[iNdEx:])
  15182. if err != nil {
  15183. return err
  15184. }
  15185. if skippy < 0 {
  15186. return ErrInvalidLengthTypes
  15187. }
  15188. if (iNdEx + skippy) < 0 {
  15189. return ErrInvalidLengthTypes
  15190. }
  15191. if (iNdEx + skippy) > l {
  15192. return io.ErrUnexpectedEOF
  15193. }
  15194. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  15195. iNdEx += skippy
  15196. }
  15197. }
  15198. if iNdEx > l {
  15199. return io.ErrUnexpectedEOF
  15200. }
  15201. return nil
  15202. }
  15203. func (m *PubKey) Unmarshal(dAtA []byte) error {
  15204. l := len(dAtA)
  15205. iNdEx := 0
  15206. for iNdEx < l {
  15207. preIndex := iNdEx
  15208. var wire uint64
  15209. for shift := uint(0); ; shift += 7 {
  15210. if shift >= 64 {
  15211. return ErrIntOverflowTypes
  15212. }
  15213. if iNdEx >= l {
  15214. return io.ErrUnexpectedEOF
  15215. }
  15216. b := dAtA[iNdEx]
  15217. iNdEx++
  15218. wire |= uint64(b&0x7F) << shift
  15219. if b < 0x80 {
  15220. break
  15221. }
  15222. }
  15223. fieldNum := int32(wire >> 3)
  15224. wireType := int(wire & 0x7)
  15225. if wireType == 4 {
  15226. return fmt.Errorf("proto: PubKey: wiretype end group for non-group")
  15227. }
  15228. if fieldNum <= 0 {
  15229. return fmt.Errorf("proto: PubKey: illegal tag %d (wire type %d)", fieldNum, wire)
  15230. }
  15231. switch fieldNum {
  15232. case 1:
  15233. if wireType != 2 {
  15234. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  15235. }
  15236. var stringLen uint64
  15237. for shift := uint(0); ; shift += 7 {
  15238. if shift >= 64 {
  15239. return ErrIntOverflowTypes
  15240. }
  15241. if iNdEx >= l {
  15242. return io.ErrUnexpectedEOF
  15243. }
  15244. b := dAtA[iNdEx]
  15245. iNdEx++
  15246. stringLen |= uint64(b&0x7F) << shift
  15247. if b < 0x80 {
  15248. break
  15249. }
  15250. }
  15251. intStringLen := int(stringLen)
  15252. if intStringLen < 0 {
  15253. return ErrInvalidLengthTypes
  15254. }
  15255. postIndex := iNdEx + intStringLen
  15256. if postIndex < 0 {
  15257. return ErrInvalidLengthTypes
  15258. }
  15259. if postIndex > l {
  15260. return io.ErrUnexpectedEOF
  15261. }
  15262. m.Type = string(dAtA[iNdEx:postIndex])
  15263. iNdEx = postIndex
  15264. case 2:
  15265. if wireType != 2 {
  15266. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  15267. }
  15268. var byteLen int
  15269. for shift := uint(0); ; shift += 7 {
  15270. if shift >= 64 {
  15271. return ErrIntOverflowTypes
  15272. }
  15273. if iNdEx >= l {
  15274. return io.ErrUnexpectedEOF
  15275. }
  15276. b := dAtA[iNdEx]
  15277. iNdEx++
  15278. byteLen |= int(b&0x7F) << shift
  15279. if b < 0x80 {
  15280. break
  15281. }
  15282. }
  15283. if byteLen < 0 {
  15284. return ErrInvalidLengthTypes
  15285. }
  15286. postIndex := iNdEx + byteLen
  15287. if postIndex < 0 {
  15288. return ErrInvalidLengthTypes
  15289. }
  15290. if postIndex > l {
  15291. return io.ErrUnexpectedEOF
  15292. }
  15293. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  15294. if m.Data == nil {
  15295. m.Data = []byte{}
  15296. }
  15297. iNdEx = postIndex
  15298. default:
  15299. iNdEx = preIndex
  15300. skippy, err := skipTypes(dAtA[iNdEx:])
  15301. if err != nil {
  15302. return err
  15303. }
  15304. if skippy < 0 {
  15305. return ErrInvalidLengthTypes
  15306. }
  15307. if (iNdEx + skippy) < 0 {
  15308. return ErrInvalidLengthTypes
  15309. }
  15310. if (iNdEx + skippy) > l {
  15311. return io.ErrUnexpectedEOF
  15312. }
  15313. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  15314. iNdEx += skippy
  15315. }
  15316. }
  15317. if iNdEx > l {
  15318. return io.ErrUnexpectedEOF
  15319. }
  15320. return nil
  15321. }
  15322. func (m *Evidence) Unmarshal(dAtA []byte) error {
  15323. l := len(dAtA)
  15324. iNdEx := 0
  15325. for iNdEx < l {
  15326. preIndex := iNdEx
  15327. var wire uint64
  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. wire |= uint64(b&0x7F) << shift
  15338. if b < 0x80 {
  15339. break
  15340. }
  15341. }
  15342. fieldNum := int32(wire >> 3)
  15343. wireType := int(wire & 0x7)
  15344. if wireType == 4 {
  15345. return fmt.Errorf("proto: Evidence: wiretype end group for non-group")
  15346. }
  15347. if fieldNum <= 0 {
  15348. return fmt.Errorf("proto: Evidence: illegal tag %d (wire type %d)", fieldNum, wire)
  15349. }
  15350. switch fieldNum {
  15351. case 1:
  15352. if wireType != 2 {
  15353. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  15354. }
  15355. var stringLen uint64
  15356. for shift := uint(0); ; shift += 7 {
  15357. if shift >= 64 {
  15358. return ErrIntOverflowTypes
  15359. }
  15360. if iNdEx >= l {
  15361. return io.ErrUnexpectedEOF
  15362. }
  15363. b := dAtA[iNdEx]
  15364. iNdEx++
  15365. stringLen |= uint64(b&0x7F) << shift
  15366. if b < 0x80 {
  15367. break
  15368. }
  15369. }
  15370. intStringLen := int(stringLen)
  15371. if intStringLen < 0 {
  15372. return ErrInvalidLengthTypes
  15373. }
  15374. postIndex := iNdEx + intStringLen
  15375. if postIndex < 0 {
  15376. return ErrInvalidLengthTypes
  15377. }
  15378. if postIndex > l {
  15379. return io.ErrUnexpectedEOF
  15380. }
  15381. m.Type = string(dAtA[iNdEx:postIndex])
  15382. iNdEx = postIndex
  15383. case 2:
  15384. if wireType != 2 {
  15385. return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType)
  15386. }
  15387. var msglen int
  15388. for shift := uint(0); ; shift += 7 {
  15389. if shift >= 64 {
  15390. return ErrIntOverflowTypes
  15391. }
  15392. if iNdEx >= l {
  15393. return io.ErrUnexpectedEOF
  15394. }
  15395. b := dAtA[iNdEx]
  15396. iNdEx++
  15397. msglen |= int(b&0x7F) << shift
  15398. if b < 0x80 {
  15399. break
  15400. }
  15401. }
  15402. if msglen < 0 {
  15403. return ErrInvalidLengthTypes
  15404. }
  15405. postIndex := iNdEx + msglen
  15406. if postIndex < 0 {
  15407. return ErrInvalidLengthTypes
  15408. }
  15409. if postIndex > l {
  15410. return io.ErrUnexpectedEOF
  15411. }
  15412. if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  15413. return err
  15414. }
  15415. iNdEx = postIndex
  15416. case 3:
  15417. if wireType != 0 {
  15418. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  15419. }
  15420. m.Height = 0
  15421. for shift := uint(0); ; shift += 7 {
  15422. if shift >= 64 {
  15423. return ErrIntOverflowTypes
  15424. }
  15425. if iNdEx >= l {
  15426. return io.ErrUnexpectedEOF
  15427. }
  15428. b := dAtA[iNdEx]
  15429. iNdEx++
  15430. m.Height |= int64(b&0x7F) << shift
  15431. if b < 0x80 {
  15432. break
  15433. }
  15434. }
  15435. case 4:
  15436. if wireType != 2 {
  15437. return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
  15438. }
  15439. var msglen int
  15440. for shift := uint(0); ; shift += 7 {
  15441. if shift >= 64 {
  15442. return ErrIntOverflowTypes
  15443. }
  15444. if iNdEx >= l {
  15445. return io.ErrUnexpectedEOF
  15446. }
  15447. b := dAtA[iNdEx]
  15448. iNdEx++
  15449. msglen |= int(b&0x7F) << shift
  15450. if b < 0x80 {
  15451. break
  15452. }
  15453. }
  15454. if msglen < 0 {
  15455. return ErrInvalidLengthTypes
  15456. }
  15457. postIndex := iNdEx + msglen
  15458. if postIndex < 0 {
  15459. return ErrInvalidLengthTypes
  15460. }
  15461. if postIndex > l {
  15462. return io.ErrUnexpectedEOF
  15463. }
  15464. if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil {
  15465. return err
  15466. }
  15467. iNdEx = postIndex
  15468. case 5:
  15469. if wireType != 0 {
  15470. return fmt.Errorf("proto: wrong wireType = %d for field TotalVotingPower", wireType)
  15471. }
  15472. m.TotalVotingPower = 0
  15473. for shift := uint(0); ; shift += 7 {
  15474. if shift >= 64 {
  15475. return ErrIntOverflowTypes
  15476. }
  15477. if iNdEx >= l {
  15478. return io.ErrUnexpectedEOF
  15479. }
  15480. b := dAtA[iNdEx]
  15481. iNdEx++
  15482. m.TotalVotingPower |= int64(b&0x7F) << shift
  15483. if b < 0x80 {
  15484. break
  15485. }
  15486. }
  15487. default:
  15488. iNdEx = preIndex
  15489. skippy, err := skipTypes(dAtA[iNdEx:])
  15490. if err != nil {
  15491. return err
  15492. }
  15493. if skippy < 0 {
  15494. return ErrInvalidLengthTypes
  15495. }
  15496. if (iNdEx + skippy) < 0 {
  15497. return ErrInvalidLengthTypes
  15498. }
  15499. if (iNdEx + skippy) > l {
  15500. return io.ErrUnexpectedEOF
  15501. }
  15502. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  15503. iNdEx += skippy
  15504. }
  15505. }
  15506. if iNdEx > l {
  15507. return io.ErrUnexpectedEOF
  15508. }
  15509. return nil
  15510. }
  15511. func skipTypes(dAtA []byte) (n int, err error) {
  15512. l := len(dAtA)
  15513. iNdEx := 0
  15514. depth := 0
  15515. for iNdEx < l {
  15516. var wire uint64
  15517. for shift := uint(0); ; shift += 7 {
  15518. if shift >= 64 {
  15519. return 0, ErrIntOverflowTypes
  15520. }
  15521. if iNdEx >= l {
  15522. return 0, io.ErrUnexpectedEOF
  15523. }
  15524. b := dAtA[iNdEx]
  15525. iNdEx++
  15526. wire |= (uint64(b) & 0x7F) << shift
  15527. if b < 0x80 {
  15528. break
  15529. }
  15530. }
  15531. wireType := int(wire & 0x7)
  15532. switch wireType {
  15533. case 0:
  15534. for shift := uint(0); ; shift += 7 {
  15535. if shift >= 64 {
  15536. return 0, ErrIntOverflowTypes
  15537. }
  15538. if iNdEx >= l {
  15539. return 0, io.ErrUnexpectedEOF
  15540. }
  15541. iNdEx++
  15542. if dAtA[iNdEx-1] < 0x80 {
  15543. break
  15544. }
  15545. }
  15546. case 1:
  15547. iNdEx += 8
  15548. case 2:
  15549. var length int
  15550. for shift := uint(0); ; shift += 7 {
  15551. if shift >= 64 {
  15552. return 0, ErrIntOverflowTypes
  15553. }
  15554. if iNdEx >= l {
  15555. return 0, io.ErrUnexpectedEOF
  15556. }
  15557. b := dAtA[iNdEx]
  15558. iNdEx++
  15559. length |= (int(b) & 0x7F) << shift
  15560. if b < 0x80 {
  15561. break
  15562. }
  15563. }
  15564. if length < 0 {
  15565. return 0, ErrInvalidLengthTypes
  15566. }
  15567. iNdEx += length
  15568. case 3:
  15569. depth++
  15570. case 4:
  15571. if depth == 0 {
  15572. return 0, ErrUnexpectedEndOfGroupTypes
  15573. }
  15574. depth--
  15575. case 5:
  15576. iNdEx += 4
  15577. default:
  15578. return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  15579. }
  15580. if iNdEx < 0 {
  15581. return 0, ErrInvalidLengthTypes
  15582. }
  15583. if depth == 0 {
  15584. return iNdEx, nil
  15585. }
  15586. }
  15587. return 0, io.ErrUnexpectedEOF
  15588. }
  15589. var (
  15590. ErrInvalidLengthTypes = fmt.Errorf("proto: negative length found during unmarshaling")
  15591. ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow")
  15592. ErrUnexpectedEndOfGroupTypes = fmt.Errorf("proto: unexpected end of group")
  15593. )