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.

15855 lines
367 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
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
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
7 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
abci: Refactor tagging events using list of lists (#3643) ## PR This PR introduces a fundamental breaking change to the structure of ABCI response and tx tags and the way they're processed. Namely, the SDK can support more complex and aggregated events for distribution and slashing. In addition, block responses can include duplicate keys in events. Implement new Event type. An event has a type and a list of KV pairs (ie. list-of-lists). Typical events may look like: "rewards": [{"amount": "5000uatom", "validator": "...", "recipient": "..."}] "sender": [{"address": "...", "balance": "100uatom"}] The events are indexed by {even.type}.{even.attribute[i].key}/.... In this case a client would subscribe or query for rewards.recipient='...' ABCI response types and related types now include Events []Event instead of Tags []cmn.KVPair. PubSub logic now publishes/matches against map[string][]string instead of map[string]string to support duplicate keys in response events (from #1385). A match is successful if the value is found in the slice of strings. closes: #1859 closes: #2905 ## Commits: * Implement Event ABCI type and updates responses to use events * Update messages_test.go * Update kvstore.go * Update event_bus.go * Update subscription.go * Update pubsub.go * Update kvstore.go * Update query logic to handle slice of strings in events * Update Empty#Matches and unit tests * Update pubsub logic * Update EventBus#Publish * Update kv tx indexer * Update godocs * Update ResultEvent to use slice of strings; update RPC * Update more tests * Update abci.md * Check for key in validateAndStringifyEvents * Fix KV indexer to skip empty keys * Fix linting errors * Update CHANGELOG_PENDING.md * Update docs/spec/abci/abci.md Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update abci/types/types.proto Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update docs/spec/abci/abci.md Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update libs/pubsub/query/query.go Co-Authored-By: Ethan Buchman <ethan@coinculture.info> * Update match function to match if ANY value matches * Implement TestSubscribeDuplicateKeys * Update TestMatches to include multi-key test cases * Update events.go * Update Query interface godoc * Update match godoc * Add godoc for matchValue * DRY-up tx indexing * Return error from PublishWithEvents in EventBus#Publish * Update PublishEventNewBlockHeader to return an error * Fix build * Update events doc in ABCI * Update ABCI events godoc * Implement TestEventBusPublishEventTxDuplicateKeys * Update TestSubscribeDuplicateKeys to be table-driven * Remove mod file * Remove markdown from events godoc * Implement TestTxSearchDeprecatedIndexing test
6 years ago
  1. // Code generated by protoc-gen-gogo. DO NOT EDIT.
  2. // source: abci/types/types.proto
  3. package types
  4. import proto "github.com/gogo/protobuf/proto"
  5. import golang_proto "github.com/golang/protobuf/proto"
  6. import fmt "fmt"
  7. import math "math"
  8. import _ "github.com/gogo/protobuf/gogoproto"
  9. import _ "github.com/golang/protobuf/ptypes/timestamp"
  10. import merkle "github.com/tendermint/tendermint/crypto/merkle"
  11. import common "github.com/tendermint/tendermint/libs/common"
  12. import time "time"
  13. import bytes "bytes"
  14. import (
  15. context "golang.org/x/net/context"
  16. grpc "google.golang.org/grpc"
  17. )
  18. import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
  19. import io "io"
  20. // Reference imports to suppress errors if they are not otherwise used.
  21. var _ = proto.Marshal
  22. var _ = golang_proto.Marshal
  23. var _ = fmt.Errorf
  24. var _ = math.Inf
  25. var _ = time.Kitchen
  26. // This is a compile-time assertion to ensure that this generated file
  27. // is compatible with the proto package it is being compiled against.
  28. // A compilation error at this line likely means your copy of the
  29. // proto package needs to be updated.
  30. const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
  31. type CheckTxType int32
  32. const (
  33. CheckTxType_New CheckTxType = 0
  34. CheckTxType_Recheck CheckTxType = 1
  35. )
  36. var CheckTxType_name = map[int32]string{
  37. 0: "New",
  38. 1: "Recheck",
  39. }
  40. var CheckTxType_value = map[string]int32{
  41. "New": 0,
  42. "Recheck": 1,
  43. }
  44. func (x CheckTxType) String() string {
  45. return proto.EnumName(CheckTxType_name, int32(x))
  46. }
  47. func (CheckTxType) EnumDescriptor() ([]byte, []int) {
  48. return fileDescriptor_types_30d8160a6576aafe, []int{0}
  49. }
  50. type Request struct {
  51. // Types that are valid to be assigned to Value:
  52. // *Request_Echo
  53. // *Request_Flush
  54. // *Request_Info
  55. // *Request_SetOption
  56. // *Request_InitChain
  57. // *Request_Query
  58. // *Request_BeginBlock
  59. // *Request_CheckTx
  60. // *Request_DeliverTx
  61. // *Request_EndBlock
  62. // *Request_Commit
  63. Value isRequest_Value `protobuf_oneof:"value"`
  64. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  65. XXX_unrecognized []byte `json:"-"`
  66. XXX_sizecache int32 `json:"-"`
  67. }
  68. func (m *Request) Reset() { *m = Request{} }
  69. func (m *Request) String() string { return proto.CompactTextString(m) }
  70. func (*Request) ProtoMessage() {}
  71. func (*Request) Descriptor() ([]byte, []int) {
  72. return fileDescriptor_types_30d8160a6576aafe, []int{0}
  73. }
  74. func (m *Request) XXX_Unmarshal(b []byte) error {
  75. return m.Unmarshal(b)
  76. }
  77. func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  78. if deterministic {
  79. return xxx_messageInfo_Request.Marshal(b, m, deterministic)
  80. } else {
  81. b = b[:cap(b)]
  82. n, err := m.MarshalTo(b)
  83. if err != nil {
  84. return nil, err
  85. }
  86. return b[:n], nil
  87. }
  88. }
  89. func (dst *Request) XXX_Merge(src proto.Message) {
  90. xxx_messageInfo_Request.Merge(dst, src)
  91. }
  92. func (m *Request) XXX_Size() int {
  93. return m.Size()
  94. }
  95. func (m *Request) XXX_DiscardUnknown() {
  96. xxx_messageInfo_Request.DiscardUnknown(m)
  97. }
  98. var xxx_messageInfo_Request proto.InternalMessageInfo
  99. type isRequest_Value interface {
  100. isRequest_Value()
  101. Equal(interface{}) bool
  102. MarshalTo([]byte) (int, error)
  103. Size() int
  104. }
  105. type Request_Echo struct {
  106. Echo *RequestEcho `protobuf:"bytes,2,opt,name=echo,oneof"`
  107. }
  108. type Request_Flush struct {
  109. Flush *RequestFlush `protobuf:"bytes,3,opt,name=flush,oneof"`
  110. }
  111. type Request_Info struct {
  112. Info *RequestInfo `protobuf:"bytes,4,opt,name=info,oneof"`
  113. }
  114. type Request_SetOption struct {
  115. SetOption *RequestSetOption `protobuf:"bytes,5,opt,name=set_option,json=setOption,oneof"`
  116. }
  117. type Request_InitChain struct {
  118. InitChain *RequestInitChain `protobuf:"bytes,6,opt,name=init_chain,json=initChain,oneof"`
  119. }
  120. type Request_Query struct {
  121. Query *RequestQuery `protobuf:"bytes,7,opt,name=query,oneof"`
  122. }
  123. type Request_BeginBlock struct {
  124. BeginBlock *RequestBeginBlock `protobuf:"bytes,8,opt,name=begin_block,json=beginBlock,oneof"`
  125. }
  126. type Request_CheckTx struct {
  127. CheckTx *RequestCheckTx `protobuf:"bytes,9,opt,name=check_tx,json=checkTx,oneof"`
  128. }
  129. type Request_DeliverTx struct {
  130. DeliverTx *RequestDeliverTx `protobuf:"bytes,19,opt,name=deliver_tx,json=deliverTx,oneof"`
  131. }
  132. type Request_EndBlock struct {
  133. EndBlock *RequestEndBlock `protobuf:"bytes,11,opt,name=end_block,json=endBlock,oneof"`
  134. }
  135. type Request_Commit struct {
  136. Commit *RequestCommit `protobuf:"bytes,12,opt,name=commit,oneof"`
  137. }
  138. func (*Request_Echo) isRequest_Value() {}
  139. func (*Request_Flush) isRequest_Value() {}
  140. func (*Request_Info) isRequest_Value() {}
  141. func (*Request_SetOption) isRequest_Value() {}
  142. func (*Request_InitChain) isRequest_Value() {}
  143. func (*Request_Query) isRequest_Value() {}
  144. func (*Request_BeginBlock) isRequest_Value() {}
  145. func (*Request_CheckTx) isRequest_Value() {}
  146. func (*Request_DeliverTx) isRequest_Value() {}
  147. func (*Request_EndBlock) isRequest_Value() {}
  148. func (*Request_Commit) isRequest_Value() {}
  149. func (m *Request) GetValue() isRequest_Value {
  150. if m != nil {
  151. return m.Value
  152. }
  153. return nil
  154. }
  155. func (m *Request) GetEcho() *RequestEcho {
  156. if x, ok := m.GetValue().(*Request_Echo); ok {
  157. return x.Echo
  158. }
  159. return nil
  160. }
  161. func (m *Request) GetFlush() *RequestFlush {
  162. if x, ok := m.GetValue().(*Request_Flush); ok {
  163. return x.Flush
  164. }
  165. return nil
  166. }
  167. func (m *Request) GetInfo() *RequestInfo {
  168. if x, ok := m.GetValue().(*Request_Info); ok {
  169. return x.Info
  170. }
  171. return nil
  172. }
  173. func (m *Request) GetSetOption() *RequestSetOption {
  174. if x, ok := m.GetValue().(*Request_SetOption); ok {
  175. return x.SetOption
  176. }
  177. return nil
  178. }
  179. func (m *Request) GetInitChain() *RequestInitChain {
  180. if x, ok := m.GetValue().(*Request_InitChain); ok {
  181. return x.InitChain
  182. }
  183. return nil
  184. }
  185. func (m *Request) GetQuery() *RequestQuery {
  186. if x, ok := m.GetValue().(*Request_Query); ok {
  187. return x.Query
  188. }
  189. return nil
  190. }
  191. func (m *Request) GetBeginBlock() *RequestBeginBlock {
  192. if x, ok := m.GetValue().(*Request_BeginBlock); ok {
  193. return x.BeginBlock
  194. }
  195. return nil
  196. }
  197. func (m *Request) GetCheckTx() *RequestCheckTx {
  198. if x, ok := m.GetValue().(*Request_CheckTx); ok {
  199. return x.CheckTx
  200. }
  201. return nil
  202. }
  203. func (m *Request) GetDeliverTx() *RequestDeliverTx {
  204. if x, ok := m.GetValue().(*Request_DeliverTx); ok {
  205. return x.DeliverTx
  206. }
  207. return nil
  208. }
  209. func (m *Request) GetEndBlock() *RequestEndBlock {
  210. if x, ok := m.GetValue().(*Request_EndBlock); ok {
  211. return x.EndBlock
  212. }
  213. return nil
  214. }
  215. func (m *Request) GetCommit() *RequestCommit {
  216. if x, ok := m.GetValue().(*Request_Commit); ok {
  217. return x.Commit
  218. }
  219. return nil
  220. }
  221. // XXX_OneofFuncs is for the internal use of the proto package.
  222. func (*Request) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
  223. return _Request_OneofMarshaler, _Request_OneofUnmarshaler, _Request_OneofSizer, []interface{}{
  224. (*Request_Echo)(nil),
  225. (*Request_Flush)(nil),
  226. (*Request_Info)(nil),
  227. (*Request_SetOption)(nil),
  228. (*Request_InitChain)(nil),
  229. (*Request_Query)(nil),
  230. (*Request_BeginBlock)(nil),
  231. (*Request_CheckTx)(nil),
  232. (*Request_DeliverTx)(nil),
  233. (*Request_EndBlock)(nil),
  234. (*Request_Commit)(nil),
  235. }
  236. }
  237. func _Request_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
  238. m := msg.(*Request)
  239. // value
  240. switch x := m.Value.(type) {
  241. case *Request_Echo:
  242. _ = b.EncodeVarint(2<<3 | proto.WireBytes)
  243. if err := b.EncodeMessage(x.Echo); err != nil {
  244. return err
  245. }
  246. case *Request_Flush:
  247. _ = b.EncodeVarint(3<<3 | proto.WireBytes)
  248. if err := b.EncodeMessage(x.Flush); err != nil {
  249. return err
  250. }
  251. case *Request_Info:
  252. _ = b.EncodeVarint(4<<3 | proto.WireBytes)
  253. if err := b.EncodeMessage(x.Info); err != nil {
  254. return err
  255. }
  256. case *Request_SetOption:
  257. _ = b.EncodeVarint(5<<3 | proto.WireBytes)
  258. if err := b.EncodeMessage(x.SetOption); err != nil {
  259. return err
  260. }
  261. case *Request_InitChain:
  262. _ = b.EncodeVarint(6<<3 | proto.WireBytes)
  263. if err := b.EncodeMessage(x.InitChain); err != nil {
  264. return err
  265. }
  266. case *Request_Query:
  267. _ = b.EncodeVarint(7<<3 | proto.WireBytes)
  268. if err := b.EncodeMessage(x.Query); err != nil {
  269. return err
  270. }
  271. case *Request_BeginBlock:
  272. _ = b.EncodeVarint(8<<3 | proto.WireBytes)
  273. if err := b.EncodeMessage(x.BeginBlock); err != nil {
  274. return err
  275. }
  276. case *Request_CheckTx:
  277. _ = b.EncodeVarint(9<<3 | proto.WireBytes)
  278. if err := b.EncodeMessage(x.CheckTx); err != nil {
  279. return err
  280. }
  281. case *Request_DeliverTx:
  282. _ = b.EncodeVarint(19<<3 | proto.WireBytes)
  283. if err := b.EncodeMessage(x.DeliverTx); err != nil {
  284. return err
  285. }
  286. case *Request_EndBlock:
  287. _ = b.EncodeVarint(11<<3 | proto.WireBytes)
  288. if err := b.EncodeMessage(x.EndBlock); err != nil {
  289. return err
  290. }
  291. case *Request_Commit:
  292. _ = b.EncodeVarint(12<<3 | proto.WireBytes)
  293. if err := b.EncodeMessage(x.Commit); err != nil {
  294. return err
  295. }
  296. case nil:
  297. default:
  298. return fmt.Errorf("Request.Value has unexpected type %T", x)
  299. }
  300. return nil
  301. }
  302. func _Request_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
  303. m := msg.(*Request)
  304. switch tag {
  305. case 2: // value.echo
  306. if wire != proto.WireBytes {
  307. return true, proto.ErrInternalBadWireType
  308. }
  309. msg := new(RequestEcho)
  310. err := b.DecodeMessage(msg)
  311. m.Value = &Request_Echo{msg}
  312. return true, err
  313. case 3: // value.flush
  314. if wire != proto.WireBytes {
  315. return true, proto.ErrInternalBadWireType
  316. }
  317. msg := new(RequestFlush)
  318. err := b.DecodeMessage(msg)
  319. m.Value = &Request_Flush{msg}
  320. return true, err
  321. case 4: // value.info
  322. if wire != proto.WireBytes {
  323. return true, proto.ErrInternalBadWireType
  324. }
  325. msg := new(RequestInfo)
  326. err := b.DecodeMessage(msg)
  327. m.Value = &Request_Info{msg}
  328. return true, err
  329. case 5: // value.set_option
  330. if wire != proto.WireBytes {
  331. return true, proto.ErrInternalBadWireType
  332. }
  333. msg := new(RequestSetOption)
  334. err := b.DecodeMessage(msg)
  335. m.Value = &Request_SetOption{msg}
  336. return true, err
  337. case 6: // value.init_chain
  338. if wire != proto.WireBytes {
  339. return true, proto.ErrInternalBadWireType
  340. }
  341. msg := new(RequestInitChain)
  342. err := b.DecodeMessage(msg)
  343. m.Value = &Request_InitChain{msg}
  344. return true, err
  345. case 7: // value.query
  346. if wire != proto.WireBytes {
  347. return true, proto.ErrInternalBadWireType
  348. }
  349. msg := new(RequestQuery)
  350. err := b.DecodeMessage(msg)
  351. m.Value = &Request_Query{msg}
  352. return true, err
  353. case 8: // value.begin_block
  354. if wire != proto.WireBytes {
  355. return true, proto.ErrInternalBadWireType
  356. }
  357. msg := new(RequestBeginBlock)
  358. err := b.DecodeMessage(msg)
  359. m.Value = &Request_BeginBlock{msg}
  360. return true, err
  361. case 9: // value.check_tx
  362. if wire != proto.WireBytes {
  363. return true, proto.ErrInternalBadWireType
  364. }
  365. msg := new(RequestCheckTx)
  366. err := b.DecodeMessage(msg)
  367. m.Value = &Request_CheckTx{msg}
  368. return true, err
  369. case 19: // value.deliver_tx
  370. if wire != proto.WireBytes {
  371. return true, proto.ErrInternalBadWireType
  372. }
  373. msg := new(RequestDeliverTx)
  374. err := b.DecodeMessage(msg)
  375. m.Value = &Request_DeliverTx{msg}
  376. return true, err
  377. case 11: // value.end_block
  378. if wire != proto.WireBytes {
  379. return true, proto.ErrInternalBadWireType
  380. }
  381. msg := new(RequestEndBlock)
  382. err := b.DecodeMessage(msg)
  383. m.Value = &Request_EndBlock{msg}
  384. return true, err
  385. case 12: // value.commit
  386. if wire != proto.WireBytes {
  387. return true, proto.ErrInternalBadWireType
  388. }
  389. msg := new(RequestCommit)
  390. err := b.DecodeMessage(msg)
  391. m.Value = &Request_Commit{msg}
  392. return true, err
  393. default:
  394. return false, nil
  395. }
  396. }
  397. func _Request_OneofSizer(msg proto.Message) (n int) {
  398. m := msg.(*Request)
  399. // value
  400. switch x := m.Value.(type) {
  401. case *Request_Echo:
  402. s := proto.Size(x.Echo)
  403. n += 1 // tag and wire
  404. n += proto.SizeVarint(uint64(s))
  405. n += s
  406. case *Request_Flush:
  407. s := proto.Size(x.Flush)
  408. n += 1 // tag and wire
  409. n += proto.SizeVarint(uint64(s))
  410. n += s
  411. case *Request_Info:
  412. s := proto.Size(x.Info)
  413. n += 1 // tag and wire
  414. n += proto.SizeVarint(uint64(s))
  415. n += s
  416. case *Request_SetOption:
  417. s := proto.Size(x.SetOption)
  418. n += 1 // tag and wire
  419. n += proto.SizeVarint(uint64(s))
  420. n += s
  421. case *Request_InitChain:
  422. s := proto.Size(x.InitChain)
  423. n += 1 // tag and wire
  424. n += proto.SizeVarint(uint64(s))
  425. n += s
  426. case *Request_Query:
  427. s := proto.Size(x.Query)
  428. n += 1 // tag and wire
  429. n += proto.SizeVarint(uint64(s))
  430. n += s
  431. case *Request_BeginBlock:
  432. s := proto.Size(x.BeginBlock)
  433. n += 1 // tag and wire
  434. n += proto.SizeVarint(uint64(s))
  435. n += s
  436. case *Request_CheckTx:
  437. s := proto.Size(x.CheckTx)
  438. n += 1 // tag and wire
  439. n += proto.SizeVarint(uint64(s))
  440. n += s
  441. case *Request_DeliverTx:
  442. s := proto.Size(x.DeliverTx)
  443. n += 2 // tag and wire
  444. n += proto.SizeVarint(uint64(s))
  445. n += s
  446. case *Request_EndBlock:
  447. s := proto.Size(x.EndBlock)
  448. n += 1 // tag and wire
  449. n += proto.SizeVarint(uint64(s))
  450. n += s
  451. case *Request_Commit:
  452. s := proto.Size(x.Commit)
  453. n += 1 // tag and wire
  454. n += proto.SizeVarint(uint64(s))
  455. n += s
  456. case nil:
  457. default:
  458. panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
  459. }
  460. return n
  461. }
  462. type RequestEcho struct {
  463. Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
  464. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  465. XXX_unrecognized []byte `json:"-"`
  466. XXX_sizecache int32 `json:"-"`
  467. }
  468. func (m *RequestEcho) Reset() { *m = RequestEcho{} }
  469. func (m *RequestEcho) String() string { return proto.CompactTextString(m) }
  470. func (*RequestEcho) ProtoMessage() {}
  471. func (*RequestEcho) Descriptor() ([]byte, []int) {
  472. return fileDescriptor_types_30d8160a6576aafe, []int{1}
  473. }
  474. func (m *RequestEcho) XXX_Unmarshal(b []byte) error {
  475. return m.Unmarshal(b)
  476. }
  477. func (m *RequestEcho) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  478. if deterministic {
  479. return xxx_messageInfo_RequestEcho.Marshal(b, m, deterministic)
  480. } else {
  481. b = b[:cap(b)]
  482. n, err := m.MarshalTo(b)
  483. if err != nil {
  484. return nil, err
  485. }
  486. return b[:n], nil
  487. }
  488. }
  489. func (dst *RequestEcho) XXX_Merge(src proto.Message) {
  490. xxx_messageInfo_RequestEcho.Merge(dst, src)
  491. }
  492. func (m *RequestEcho) XXX_Size() int {
  493. return m.Size()
  494. }
  495. func (m *RequestEcho) XXX_DiscardUnknown() {
  496. xxx_messageInfo_RequestEcho.DiscardUnknown(m)
  497. }
  498. var xxx_messageInfo_RequestEcho proto.InternalMessageInfo
  499. func (m *RequestEcho) GetMessage() string {
  500. if m != nil {
  501. return m.Message
  502. }
  503. return ""
  504. }
  505. type RequestFlush struct {
  506. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  507. XXX_unrecognized []byte `json:"-"`
  508. XXX_sizecache int32 `json:"-"`
  509. }
  510. func (m *RequestFlush) Reset() { *m = RequestFlush{} }
  511. func (m *RequestFlush) String() string { return proto.CompactTextString(m) }
  512. func (*RequestFlush) ProtoMessage() {}
  513. func (*RequestFlush) Descriptor() ([]byte, []int) {
  514. return fileDescriptor_types_30d8160a6576aafe, []int{2}
  515. }
  516. func (m *RequestFlush) XXX_Unmarshal(b []byte) error {
  517. return m.Unmarshal(b)
  518. }
  519. func (m *RequestFlush) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  520. if deterministic {
  521. return xxx_messageInfo_RequestFlush.Marshal(b, m, deterministic)
  522. } else {
  523. b = b[:cap(b)]
  524. n, err := m.MarshalTo(b)
  525. if err != nil {
  526. return nil, err
  527. }
  528. return b[:n], nil
  529. }
  530. }
  531. func (dst *RequestFlush) XXX_Merge(src proto.Message) {
  532. xxx_messageInfo_RequestFlush.Merge(dst, src)
  533. }
  534. func (m *RequestFlush) XXX_Size() int {
  535. return m.Size()
  536. }
  537. func (m *RequestFlush) XXX_DiscardUnknown() {
  538. xxx_messageInfo_RequestFlush.DiscardUnknown(m)
  539. }
  540. var xxx_messageInfo_RequestFlush proto.InternalMessageInfo
  541. type RequestInfo struct {
  542. Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
  543. BlockVersion uint64 `protobuf:"varint,2,opt,name=block_version,json=blockVersion,proto3" json:"block_version,omitempty"`
  544. P2PVersion uint64 `protobuf:"varint,3,opt,name=p2p_version,json=p2pVersion,proto3" json:"p2p_version,omitempty"`
  545. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  546. XXX_unrecognized []byte `json:"-"`
  547. XXX_sizecache int32 `json:"-"`
  548. }
  549. func (m *RequestInfo) Reset() { *m = RequestInfo{} }
  550. func (m *RequestInfo) String() string { return proto.CompactTextString(m) }
  551. func (*RequestInfo) ProtoMessage() {}
  552. func (*RequestInfo) Descriptor() ([]byte, []int) {
  553. return fileDescriptor_types_30d8160a6576aafe, []int{3}
  554. }
  555. func (m *RequestInfo) XXX_Unmarshal(b []byte) error {
  556. return m.Unmarshal(b)
  557. }
  558. func (m *RequestInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  559. if deterministic {
  560. return xxx_messageInfo_RequestInfo.Marshal(b, m, deterministic)
  561. } else {
  562. b = b[:cap(b)]
  563. n, err := m.MarshalTo(b)
  564. if err != nil {
  565. return nil, err
  566. }
  567. return b[:n], nil
  568. }
  569. }
  570. func (dst *RequestInfo) XXX_Merge(src proto.Message) {
  571. xxx_messageInfo_RequestInfo.Merge(dst, src)
  572. }
  573. func (m *RequestInfo) XXX_Size() int {
  574. return m.Size()
  575. }
  576. func (m *RequestInfo) XXX_DiscardUnknown() {
  577. xxx_messageInfo_RequestInfo.DiscardUnknown(m)
  578. }
  579. var xxx_messageInfo_RequestInfo proto.InternalMessageInfo
  580. func (m *RequestInfo) GetVersion() string {
  581. if m != nil {
  582. return m.Version
  583. }
  584. return ""
  585. }
  586. func (m *RequestInfo) GetBlockVersion() uint64 {
  587. if m != nil {
  588. return m.BlockVersion
  589. }
  590. return 0
  591. }
  592. func (m *RequestInfo) GetP2PVersion() uint64 {
  593. if m != nil {
  594. return m.P2PVersion
  595. }
  596. return 0
  597. }
  598. // nondeterministic
  599. type RequestSetOption struct {
  600. Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
  601. Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
  602. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  603. XXX_unrecognized []byte `json:"-"`
  604. XXX_sizecache int32 `json:"-"`
  605. }
  606. func (m *RequestSetOption) Reset() { *m = RequestSetOption{} }
  607. func (m *RequestSetOption) String() string { return proto.CompactTextString(m) }
  608. func (*RequestSetOption) ProtoMessage() {}
  609. func (*RequestSetOption) Descriptor() ([]byte, []int) {
  610. return fileDescriptor_types_30d8160a6576aafe, []int{4}
  611. }
  612. func (m *RequestSetOption) XXX_Unmarshal(b []byte) error {
  613. return m.Unmarshal(b)
  614. }
  615. func (m *RequestSetOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  616. if deterministic {
  617. return xxx_messageInfo_RequestSetOption.Marshal(b, m, deterministic)
  618. } else {
  619. b = b[:cap(b)]
  620. n, err := m.MarshalTo(b)
  621. if err != nil {
  622. return nil, err
  623. }
  624. return b[:n], nil
  625. }
  626. }
  627. func (dst *RequestSetOption) XXX_Merge(src proto.Message) {
  628. xxx_messageInfo_RequestSetOption.Merge(dst, src)
  629. }
  630. func (m *RequestSetOption) XXX_Size() int {
  631. return m.Size()
  632. }
  633. func (m *RequestSetOption) XXX_DiscardUnknown() {
  634. xxx_messageInfo_RequestSetOption.DiscardUnknown(m)
  635. }
  636. var xxx_messageInfo_RequestSetOption proto.InternalMessageInfo
  637. func (m *RequestSetOption) GetKey() string {
  638. if m != nil {
  639. return m.Key
  640. }
  641. return ""
  642. }
  643. func (m *RequestSetOption) GetValue() string {
  644. if m != nil {
  645. return m.Value
  646. }
  647. return ""
  648. }
  649. type RequestInitChain struct {
  650. Time time.Time `protobuf:"bytes,1,opt,name=time,stdtime" json:"time"`
  651. ChainId string `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
  652. ConsensusParams *ConsensusParams `protobuf:"bytes,3,opt,name=consensus_params,json=consensusParams" json:"consensus_params,omitempty"`
  653. Validators []ValidatorUpdate `protobuf:"bytes,4,rep,name=validators" json:"validators"`
  654. AppStateBytes []byte `protobuf:"bytes,5,opt,name=app_state_bytes,json=appStateBytes,proto3" json:"app_state_bytes,omitempty"`
  655. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  656. XXX_unrecognized []byte `json:"-"`
  657. XXX_sizecache int32 `json:"-"`
  658. }
  659. func (m *RequestInitChain) Reset() { *m = RequestInitChain{} }
  660. func (m *RequestInitChain) String() string { return proto.CompactTextString(m) }
  661. func (*RequestInitChain) ProtoMessage() {}
  662. func (*RequestInitChain) Descriptor() ([]byte, []int) {
  663. return fileDescriptor_types_30d8160a6576aafe, []int{5}
  664. }
  665. func (m *RequestInitChain) XXX_Unmarshal(b []byte) error {
  666. return m.Unmarshal(b)
  667. }
  668. func (m *RequestInitChain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  669. if deterministic {
  670. return xxx_messageInfo_RequestInitChain.Marshal(b, m, deterministic)
  671. } else {
  672. b = b[:cap(b)]
  673. n, err := m.MarshalTo(b)
  674. if err != nil {
  675. return nil, err
  676. }
  677. return b[:n], nil
  678. }
  679. }
  680. func (dst *RequestInitChain) XXX_Merge(src proto.Message) {
  681. xxx_messageInfo_RequestInitChain.Merge(dst, src)
  682. }
  683. func (m *RequestInitChain) XXX_Size() int {
  684. return m.Size()
  685. }
  686. func (m *RequestInitChain) XXX_DiscardUnknown() {
  687. xxx_messageInfo_RequestInitChain.DiscardUnknown(m)
  688. }
  689. var xxx_messageInfo_RequestInitChain proto.InternalMessageInfo
  690. func (m *RequestInitChain) GetTime() time.Time {
  691. if m != nil {
  692. return m.Time
  693. }
  694. return time.Time{}
  695. }
  696. func (m *RequestInitChain) GetChainId() string {
  697. if m != nil {
  698. return m.ChainId
  699. }
  700. return ""
  701. }
  702. func (m *RequestInitChain) GetConsensusParams() *ConsensusParams {
  703. if m != nil {
  704. return m.ConsensusParams
  705. }
  706. return nil
  707. }
  708. func (m *RequestInitChain) GetValidators() []ValidatorUpdate {
  709. if m != nil {
  710. return m.Validators
  711. }
  712. return nil
  713. }
  714. func (m *RequestInitChain) GetAppStateBytes() []byte {
  715. if m != nil {
  716. return m.AppStateBytes
  717. }
  718. return nil
  719. }
  720. type RequestQuery struct {
  721. Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
  722. Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
  723. Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
  724. Prove bool `protobuf:"varint,4,opt,name=prove,proto3" json:"prove,omitempty"`
  725. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  726. XXX_unrecognized []byte `json:"-"`
  727. XXX_sizecache int32 `json:"-"`
  728. }
  729. func (m *RequestQuery) Reset() { *m = RequestQuery{} }
  730. func (m *RequestQuery) String() string { return proto.CompactTextString(m) }
  731. func (*RequestQuery) ProtoMessage() {}
  732. func (*RequestQuery) Descriptor() ([]byte, []int) {
  733. return fileDescriptor_types_30d8160a6576aafe, []int{6}
  734. }
  735. func (m *RequestQuery) XXX_Unmarshal(b []byte) error {
  736. return m.Unmarshal(b)
  737. }
  738. func (m *RequestQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  739. if deterministic {
  740. return xxx_messageInfo_RequestQuery.Marshal(b, m, deterministic)
  741. } else {
  742. b = b[:cap(b)]
  743. n, err := m.MarshalTo(b)
  744. if err != nil {
  745. return nil, err
  746. }
  747. return b[:n], nil
  748. }
  749. }
  750. func (dst *RequestQuery) XXX_Merge(src proto.Message) {
  751. xxx_messageInfo_RequestQuery.Merge(dst, src)
  752. }
  753. func (m *RequestQuery) XXX_Size() int {
  754. return m.Size()
  755. }
  756. func (m *RequestQuery) XXX_DiscardUnknown() {
  757. xxx_messageInfo_RequestQuery.DiscardUnknown(m)
  758. }
  759. var xxx_messageInfo_RequestQuery proto.InternalMessageInfo
  760. func (m *RequestQuery) GetData() []byte {
  761. if m != nil {
  762. return m.Data
  763. }
  764. return nil
  765. }
  766. func (m *RequestQuery) GetPath() string {
  767. if m != nil {
  768. return m.Path
  769. }
  770. return ""
  771. }
  772. func (m *RequestQuery) GetHeight() int64 {
  773. if m != nil {
  774. return m.Height
  775. }
  776. return 0
  777. }
  778. func (m *RequestQuery) GetProve() bool {
  779. if m != nil {
  780. return m.Prove
  781. }
  782. return false
  783. }
  784. type RequestBeginBlock struct {
  785. Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
  786. Header Header `protobuf:"bytes,2,opt,name=header" json:"header"`
  787. LastCommitInfo LastCommitInfo `protobuf:"bytes,3,opt,name=last_commit_info,json=lastCommitInfo" json:"last_commit_info"`
  788. ByzantineValidators []Evidence `protobuf:"bytes,4,rep,name=byzantine_validators,json=byzantineValidators" json:"byzantine_validators"`
  789. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  790. XXX_unrecognized []byte `json:"-"`
  791. XXX_sizecache int32 `json:"-"`
  792. }
  793. func (m *RequestBeginBlock) Reset() { *m = RequestBeginBlock{} }
  794. func (m *RequestBeginBlock) String() string { return proto.CompactTextString(m) }
  795. func (*RequestBeginBlock) ProtoMessage() {}
  796. func (*RequestBeginBlock) Descriptor() ([]byte, []int) {
  797. return fileDescriptor_types_30d8160a6576aafe, []int{7}
  798. }
  799. func (m *RequestBeginBlock) XXX_Unmarshal(b []byte) error {
  800. return m.Unmarshal(b)
  801. }
  802. func (m *RequestBeginBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  803. if deterministic {
  804. return xxx_messageInfo_RequestBeginBlock.Marshal(b, m, deterministic)
  805. } else {
  806. b = b[:cap(b)]
  807. n, err := m.MarshalTo(b)
  808. if err != nil {
  809. return nil, err
  810. }
  811. return b[:n], nil
  812. }
  813. }
  814. func (dst *RequestBeginBlock) XXX_Merge(src proto.Message) {
  815. xxx_messageInfo_RequestBeginBlock.Merge(dst, src)
  816. }
  817. func (m *RequestBeginBlock) XXX_Size() int {
  818. return m.Size()
  819. }
  820. func (m *RequestBeginBlock) XXX_DiscardUnknown() {
  821. xxx_messageInfo_RequestBeginBlock.DiscardUnknown(m)
  822. }
  823. var xxx_messageInfo_RequestBeginBlock proto.InternalMessageInfo
  824. func (m *RequestBeginBlock) GetHash() []byte {
  825. if m != nil {
  826. return m.Hash
  827. }
  828. return nil
  829. }
  830. func (m *RequestBeginBlock) GetHeader() Header {
  831. if m != nil {
  832. return m.Header
  833. }
  834. return Header{}
  835. }
  836. func (m *RequestBeginBlock) GetLastCommitInfo() LastCommitInfo {
  837. if m != nil {
  838. return m.LastCommitInfo
  839. }
  840. return LastCommitInfo{}
  841. }
  842. func (m *RequestBeginBlock) GetByzantineValidators() []Evidence {
  843. if m != nil {
  844. return m.ByzantineValidators
  845. }
  846. return nil
  847. }
  848. type RequestCheckTx struct {
  849. Tx []byte `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"`
  850. Type CheckTxType `protobuf:"varint,2,opt,name=type,proto3,enum=types.CheckTxType" json:"type,omitempty"`
  851. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  852. XXX_unrecognized []byte `json:"-"`
  853. XXX_sizecache int32 `json:"-"`
  854. }
  855. func (m *RequestCheckTx) Reset() { *m = RequestCheckTx{} }
  856. func (m *RequestCheckTx) String() string { return proto.CompactTextString(m) }
  857. func (*RequestCheckTx) ProtoMessage() {}
  858. func (*RequestCheckTx) Descriptor() ([]byte, []int) {
  859. return fileDescriptor_types_30d8160a6576aafe, []int{8}
  860. }
  861. func (m *RequestCheckTx) XXX_Unmarshal(b []byte) error {
  862. return m.Unmarshal(b)
  863. }
  864. func (m *RequestCheckTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  865. if deterministic {
  866. return xxx_messageInfo_RequestCheckTx.Marshal(b, m, deterministic)
  867. } else {
  868. b = b[:cap(b)]
  869. n, err := m.MarshalTo(b)
  870. if err != nil {
  871. return nil, err
  872. }
  873. return b[:n], nil
  874. }
  875. }
  876. func (dst *RequestCheckTx) XXX_Merge(src proto.Message) {
  877. xxx_messageInfo_RequestCheckTx.Merge(dst, src)
  878. }
  879. func (m *RequestCheckTx) XXX_Size() int {
  880. return m.Size()
  881. }
  882. func (m *RequestCheckTx) XXX_DiscardUnknown() {
  883. xxx_messageInfo_RequestCheckTx.DiscardUnknown(m)
  884. }
  885. var xxx_messageInfo_RequestCheckTx proto.InternalMessageInfo
  886. func (m *RequestCheckTx) GetTx() []byte {
  887. if m != nil {
  888. return m.Tx
  889. }
  890. return nil
  891. }
  892. func (m *RequestCheckTx) GetType() CheckTxType {
  893. if m != nil {
  894. return m.Type
  895. }
  896. return CheckTxType_New
  897. }
  898. type RequestDeliverTx struct {
  899. Tx []byte `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"`
  900. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  901. XXX_unrecognized []byte `json:"-"`
  902. XXX_sizecache int32 `json:"-"`
  903. }
  904. func (m *RequestDeliverTx) Reset() { *m = RequestDeliverTx{} }
  905. func (m *RequestDeliverTx) String() string { return proto.CompactTextString(m) }
  906. func (*RequestDeliverTx) ProtoMessage() {}
  907. func (*RequestDeliverTx) Descriptor() ([]byte, []int) {
  908. return fileDescriptor_types_30d8160a6576aafe, []int{9}
  909. }
  910. func (m *RequestDeliverTx) XXX_Unmarshal(b []byte) error {
  911. return m.Unmarshal(b)
  912. }
  913. func (m *RequestDeliverTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  914. if deterministic {
  915. return xxx_messageInfo_RequestDeliverTx.Marshal(b, m, deterministic)
  916. } else {
  917. b = b[:cap(b)]
  918. n, err := m.MarshalTo(b)
  919. if err != nil {
  920. return nil, err
  921. }
  922. return b[:n], nil
  923. }
  924. }
  925. func (dst *RequestDeliverTx) XXX_Merge(src proto.Message) {
  926. xxx_messageInfo_RequestDeliverTx.Merge(dst, src)
  927. }
  928. func (m *RequestDeliverTx) XXX_Size() int {
  929. return m.Size()
  930. }
  931. func (m *RequestDeliverTx) XXX_DiscardUnknown() {
  932. xxx_messageInfo_RequestDeliverTx.DiscardUnknown(m)
  933. }
  934. var xxx_messageInfo_RequestDeliverTx proto.InternalMessageInfo
  935. func (m *RequestDeliverTx) GetTx() []byte {
  936. if m != nil {
  937. return m.Tx
  938. }
  939. return nil
  940. }
  941. type RequestEndBlock struct {
  942. Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
  943. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  944. XXX_unrecognized []byte `json:"-"`
  945. XXX_sizecache int32 `json:"-"`
  946. }
  947. func (m *RequestEndBlock) Reset() { *m = RequestEndBlock{} }
  948. func (m *RequestEndBlock) String() string { return proto.CompactTextString(m) }
  949. func (*RequestEndBlock) ProtoMessage() {}
  950. func (*RequestEndBlock) Descriptor() ([]byte, []int) {
  951. return fileDescriptor_types_30d8160a6576aafe, []int{10}
  952. }
  953. func (m *RequestEndBlock) XXX_Unmarshal(b []byte) error {
  954. return m.Unmarshal(b)
  955. }
  956. func (m *RequestEndBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  957. if deterministic {
  958. return xxx_messageInfo_RequestEndBlock.Marshal(b, m, deterministic)
  959. } else {
  960. b = b[:cap(b)]
  961. n, err := m.MarshalTo(b)
  962. if err != nil {
  963. return nil, err
  964. }
  965. return b[:n], nil
  966. }
  967. }
  968. func (dst *RequestEndBlock) XXX_Merge(src proto.Message) {
  969. xxx_messageInfo_RequestEndBlock.Merge(dst, src)
  970. }
  971. func (m *RequestEndBlock) XXX_Size() int {
  972. return m.Size()
  973. }
  974. func (m *RequestEndBlock) XXX_DiscardUnknown() {
  975. xxx_messageInfo_RequestEndBlock.DiscardUnknown(m)
  976. }
  977. var xxx_messageInfo_RequestEndBlock proto.InternalMessageInfo
  978. func (m *RequestEndBlock) GetHeight() int64 {
  979. if m != nil {
  980. return m.Height
  981. }
  982. return 0
  983. }
  984. type RequestCommit struct {
  985. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  986. XXX_unrecognized []byte `json:"-"`
  987. XXX_sizecache int32 `json:"-"`
  988. }
  989. func (m *RequestCommit) Reset() { *m = RequestCommit{} }
  990. func (m *RequestCommit) String() string { return proto.CompactTextString(m) }
  991. func (*RequestCommit) ProtoMessage() {}
  992. func (*RequestCommit) Descriptor() ([]byte, []int) {
  993. return fileDescriptor_types_30d8160a6576aafe, []int{11}
  994. }
  995. func (m *RequestCommit) XXX_Unmarshal(b []byte) error {
  996. return m.Unmarshal(b)
  997. }
  998. func (m *RequestCommit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  999. if deterministic {
  1000. return xxx_messageInfo_RequestCommit.Marshal(b, m, deterministic)
  1001. } else {
  1002. b = b[:cap(b)]
  1003. n, err := m.MarshalTo(b)
  1004. if err != nil {
  1005. return nil, err
  1006. }
  1007. return b[:n], nil
  1008. }
  1009. }
  1010. func (dst *RequestCommit) XXX_Merge(src proto.Message) {
  1011. xxx_messageInfo_RequestCommit.Merge(dst, src)
  1012. }
  1013. func (m *RequestCommit) XXX_Size() int {
  1014. return m.Size()
  1015. }
  1016. func (m *RequestCommit) XXX_DiscardUnknown() {
  1017. xxx_messageInfo_RequestCommit.DiscardUnknown(m)
  1018. }
  1019. var xxx_messageInfo_RequestCommit proto.InternalMessageInfo
  1020. type Response struct {
  1021. // Types that are valid to be assigned to Value:
  1022. // *Response_Exception
  1023. // *Response_Echo
  1024. // *Response_Flush
  1025. // *Response_Info
  1026. // *Response_SetOption
  1027. // *Response_InitChain
  1028. // *Response_Query
  1029. // *Response_BeginBlock
  1030. // *Response_CheckTx
  1031. // *Response_DeliverTx
  1032. // *Response_EndBlock
  1033. // *Response_Commit
  1034. Value isResponse_Value `protobuf_oneof:"value"`
  1035. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1036. XXX_unrecognized []byte `json:"-"`
  1037. XXX_sizecache int32 `json:"-"`
  1038. }
  1039. func (m *Response) Reset() { *m = Response{} }
  1040. func (m *Response) String() string { return proto.CompactTextString(m) }
  1041. func (*Response) ProtoMessage() {}
  1042. func (*Response) Descriptor() ([]byte, []int) {
  1043. return fileDescriptor_types_30d8160a6576aafe, []int{12}
  1044. }
  1045. func (m *Response) XXX_Unmarshal(b []byte) error {
  1046. return m.Unmarshal(b)
  1047. }
  1048. func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1049. if deterministic {
  1050. return xxx_messageInfo_Response.Marshal(b, m, deterministic)
  1051. } else {
  1052. b = b[:cap(b)]
  1053. n, err := m.MarshalTo(b)
  1054. if err != nil {
  1055. return nil, err
  1056. }
  1057. return b[:n], nil
  1058. }
  1059. }
  1060. func (dst *Response) XXX_Merge(src proto.Message) {
  1061. xxx_messageInfo_Response.Merge(dst, src)
  1062. }
  1063. func (m *Response) XXX_Size() int {
  1064. return m.Size()
  1065. }
  1066. func (m *Response) XXX_DiscardUnknown() {
  1067. xxx_messageInfo_Response.DiscardUnknown(m)
  1068. }
  1069. var xxx_messageInfo_Response proto.InternalMessageInfo
  1070. type isResponse_Value interface {
  1071. isResponse_Value()
  1072. Equal(interface{}) bool
  1073. MarshalTo([]byte) (int, error)
  1074. Size() int
  1075. }
  1076. type Response_Exception struct {
  1077. Exception *ResponseException `protobuf:"bytes,1,opt,name=exception,oneof"`
  1078. }
  1079. type Response_Echo struct {
  1080. Echo *ResponseEcho `protobuf:"bytes,2,opt,name=echo,oneof"`
  1081. }
  1082. type Response_Flush struct {
  1083. Flush *ResponseFlush `protobuf:"bytes,3,opt,name=flush,oneof"`
  1084. }
  1085. type Response_Info struct {
  1086. Info *ResponseInfo `protobuf:"bytes,4,opt,name=info,oneof"`
  1087. }
  1088. type Response_SetOption struct {
  1089. SetOption *ResponseSetOption `protobuf:"bytes,5,opt,name=set_option,json=setOption,oneof"`
  1090. }
  1091. type Response_InitChain struct {
  1092. InitChain *ResponseInitChain `protobuf:"bytes,6,opt,name=init_chain,json=initChain,oneof"`
  1093. }
  1094. type Response_Query struct {
  1095. Query *ResponseQuery `protobuf:"bytes,7,opt,name=query,oneof"`
  1096. }
  1097. type Response_BeginBlock struct {
  1098. BeginBlock *ResponseBeginBlock `protobuf:"bytes,8,opt,name=begin_block,json=beginBlock,oneof"`
  1099. }
  1100. type Response_CheckTx struct {
  1101. CheckTx *ResponseCheckTx `protobuf:"bytes,9,opt,name=check_tx,json=checkTx,oneof"`
  1102. }
  1103. type Response_DeliverTx struct {
  1104. DeliverTx *ResponseDeliverTx `protobuf:"bytes,10,opt,name=deliver_tx,json=deliverTx,oneof"`
  1105. }
  1106. type Response_EndBlock struct {
  1107. EndBlock *ResponseEndBlock `protobuf:"bytes,11,opt,name=end_block,json=endBlock,oneof"`
  1108. }
  1109. type Response_Commit struct {
  1110. Commit *ResponseCommit `protobuf:"bytes,12,opt,name=commit,oneof"`
  1111. }
  1112. func (*Response_Exception) isResponse_Value() {}
  1113. func (*Response_Echo) isResponse_Value() {}
  1114. func (*Response_Flush) isResponse_Value() {}
  1115. func (*Response_Info) isResponse_Value() {}
  1116. func (*Response_SetOption) isResponse_Value() {}
  1117. func (*Response_InitChain) isResponse_Value() {}
  1118. func (*Response_Query) isResponse_Value() {}
  1119. func (*Response_BeginBlock) isResponse_Value() {}
  1120. func (*Response_CheckTx) isResponse_Value() {}
  1121. func (*Response_DeliverTx) isResponse_Value() {}
  1122. func (*Response_EndBlock) isResponse_Value() {}
  1123. func (*Response_Commit) isResponse_Value() {}
  1124. func (m *Response) GetValue() isResponse_Value {
  1125. if m != nil {
  1126. return m.Value
  1127. }
  1128. return nil
  1129. }
  1130. func (m *Response) GetException() *ResponseException {
  1131. if x, ok := m.GetValue().(*Response_Exception); ok {
  1132. return x.Exception
  1133. }
  1134. return nil
  1135. }
  1136. func (m *Response) GetEcho() *ResponseEcho {
  1137. if x, ok := m.GetValue().(*Response_Echo); ok {
  1138. return x.Echo
  1139. }
  1140. return nil
  1141. }
  1142. func (m *Response) GetFlush() *ResponseFlush {
  1143. if x, ok := m.GetValue().(*Response_Flush); ok {
  1144. return x.Flush
  1145. }
  1146. return nil
  1147. }
  1148. func (m *Response) GetInfo() *ResponseInfo {
  1149. if x, ok := m.GetValue().(*Response_Info); ok {
  1150. return x.Info
  1151. }
  1152. return nil
  1153. }
  1154. func (m *Response) GetSetOption() *ResponseSetOption {
  1155. if x, ok := m.GetValue().(*Response_SetOption); ok {
  1156. return x.SetOption
  1157. }
  1158. return nil
  1159. }
  1160. func (m *Response) GetInitChain() *ResponseInitChain {
  1161. if x, ok := m.GetValue().(*Response_InitChain); ok {
  1162. return x.InitChain
  1163. }
  1164. return nil
  1165. }
  1166. func (m *Response) GetQuery() *ResponseQuery {
  1167. if x, ok := m.GetValue().(*Response_Query); ok {
  1168. return x.Query
  1169. }
  1170. return nil
  1171. }
  1172. func (m *Response) GetBeginBlock() *ResponseBeginBlock {
  1173. if x, ok := m.GetValue().(*Response_BeginBlock); ok {
  1174. return x.BeginBlock
  1175. }
  1176. return nil
  1177. }
  1178. func (m *Response) GetCheckTx() *ResponseCheckTx {
  1179. if x, ok := m.GetValue().(*Response_CheckTx); ok {
  1180. return x.CheckTx
  1181. }
  1182. return nil
  1183. }
  1184. func (m *Response) GetDeliverTx() *ResponseDeliverTx {
  1185. if x, ok := m.GetValue().(*Response_DeliverTx); ok {
  1186. return x.DeliverTx
  1187. }
  1188. return nil
  1189. }
  1190. func (m *Response) GetEndBlock() *ResponseEndBlock {
  1191. if x, ok := m.GetValue().(*Response_EndBlock); ok {
  1192. return x.EndBlock
  1193. }
  1194. return nil
  1195. }
  1196. func (m *Response) GetCommit() *ResponseCommit {
  1197. if x, ok := m.GetValue().(*Response_Commit); ok {
  1198. return x.Commit
  1199. }
  1200. return nil
  1201. }
  1202. // XXX_OneofFuncs is for the internal use of the proto package.
  1203. func (*Response) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
  1204. return _Response_OneofMarshaler, _Response_OneofUnmarshaler, _Response_OneofSizer, []interface{}{
  1205. (*Response_Exception)(nil),
  1206. (*Response_Echo)(nil),
  1207. (*Response_Flush)(nil),
  1208. (*Response_Info)(nil),
  1209. (*Response_SetOption)(nil),
  1210. (*Response_InitChain)(nil),
  1211. (*Response_Query)(nil),
  1212. (*Response_BeginBlock)(nil),
  1213. (*Response_CheckTx)(nil),
  1214. (*Response_DeliverTx)(nil),
  1215. (*Response_EndBlock)(nil),
  1216. (*Response_Commit)(nil),
  1217. }
  1218. }
  1219. func _Response_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
  1220. m := msg.(*Response)
  1221. // value
  1222. switch x := m.Value.(type) {
  1223. case *Response_Exception:
  1224. _ = b.EncodeVarint(1<<3 | proto.WireBytes)
  1225. if err := b.EncodeMessage(x.Exception); err != nil {
  1226. return err
  1227. }
  1228. case *Response_Echo:
  1229. _ = b.EncodeVarint(2<<3 | proto.WireBytes)
  1230. if err := b.EncodeMessage(x.Echo); err != nil {
  1231. return err
  1232. }
  1233. case *Response_Flush:
  1234. _ = b.EncodeVarint(3<<3 | proto.WireBytes)
  1235. if err := b.EncodeMessage(x.Flush); err != nil {
  1236. return err
  1237. }
  1238. case *Response_Info:
  1239. _ = b.EncodeVarint(4<<3 | proto.WireBytes)
  1240. if err := b.EncodeMessage(x.Info); err != nil {
  1241. return err
  1242. }
  1243. case *Response_SetOption:
  1244. _ = b.EncodeVarint(5<<3 | proto.WireBytes)
  1245. if err := b.EncodeMessage(x.SetOption); err != nil {
  1246. return err
  1247. }
  1248. case *Response_InitChain:
  1249. _ = b.EncodeVarint(6<<3 | proto.WireBytes)
  1250. if err := b.EncodeMessage(x.InitChain); err != nil {
  1251. return err
  1252. }
  1253. case *Response_Query:
  1254. _ = b.EncodeVarint(7<<3 | proto.WireBytes)
  1255. if err := b.EncodeMessage(x.Query); err != nil {
  1256. return err
  1257. }
  1258. case *Response_BeginBlock:
  1259. _ = b.EncodeVarint(8<<3 | proto.WireBytes)
  1260. if err := b.EncodeMessage(x.BeginBlock); err != nil {
  1261. return err
  1262. }
  1263. case *Response_CheckTx:
  1264. _ = b.EncodeVarint(9<<3 | proto.WireBytes)
  1265. if err := b.EncodeMessage(x.CheckTx); err != nil {
  1266. return err
  1267. }
  1268. case *Response_DeliverTx:
  1269. _ = b.EncodeVarint(10<<3 | proto.WireBytes)
  1270. if err := b.EncodeMessage(x.DeliverTx); err != nil {
  1271. return err
  1272. }
  1273. case *Response_EndBlock:
  1274. _ = b.EncodeVarint(11<<3 | proto.WireBytes)
  1275. if err := b.EncodeMessage(x.EndBlock); err != nil {
  1276. return err
  1277. }
  1278. case *Response_Commit:
  1279. _ = b.EncodeVarint(12<<3 | proto.WireBytes)
  1280. if err := b.EncodeMessage(x.Commit); err != nil {
  1281. return err
  1282. }
  1283. case nil:
  1284. default:
  1285. return fmt.Errorf("Response.Value has unexpected type %T", x)
  1286. }
  1287. return nil
  1288. }
  1289. func _Response_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
  1290. m := msg.(*Response)
  1291. switch tag {
  1292. case 1: // value.exception
  1293. if wire != proto.WireBytes {
  1294. return true, proto.ErrInternalBadWireType
  1295. }
  1296. msg := new(ResponseException)
  1297. err := b.DecodeMessage(msg)
  1298. m.Value = &Response_Exception{msg}
  1299. return true, err
  1300. case 2: // value.echo
  1301. if wire != proto.WireBytes {
  1302. return true, proto.ErrInternalBadWireType
  1303. }
  1304. msg := new(ResponseEcho)
  1305. err := b.DecodeMessage(msg)
  1306. m.Value = &Response_Echo{msg}
  1307. return true, err
  1308. case 3: // value.flush
  1309. if wire != proto.WireBytes {
  1310. return true, proto.ErrInternalBadWireType
  1311. }
  1312. msg := new(ResponseFlush)
  1313. err := b.DecodeMessage(msg)
  1314. m.Value = &Response_Flush{msg}
  1315. return true, err
  1316. case 4: // value.info
  1317. if wire != proto.WireBytes {
  1318. return true, proto.ErrInternalBadWireType
  1319. }
  1320. msg := new(ResponseInfo)
  1321. err := b.DecodeMessage(msg)
  1322. m.Value = &Response_Info{msg}
  1323. return true, err
  1324. case 5: // value.set_option
  1325. if wire != proto.WireBytes {
  1326. return true, proto.ErrInternalBadWireType
  1327. }
  1328. msg := new(ResponseSetOption)
  1329. err := b.DecodeMessage(msg)
  1330. m.Value = &Response_SetOption{msg}
  1331. return true, err
  1332. case 6: // value.init_chain
  1333. if wire != proto.WireBytes {
  1334. return true, proto.ErrInternalBadWireType
  1335. }
  1336. msg := new(ResponseInitChain)
  1337. err := b.DecodeMessage(msg)
  1338. m.Value = &Response_InitChain{msg}
  1339. return true, err
  1340. case 7: // value.query
  1341. if wire != proto.WireBytes {
  1342. return true, proto.ErrInternalBadWireType
  1343. }
  1344. msg := new(ResponseQuery)
  1345. err := b.DecodeMessage(msg)
  1346. m.Value = &Response_Query{msg}
  1347. return true, err
  1348. case 8: // value.begin_block
  1349. if wire != proto.WireBytes {
  1350. return true, proto.ErrInternalBadWireType
  1351. }
  1352. msg := new(ResponseBeginBlock)
  1353. err := b.DecodeMessage(msg)
  1354. m.Value = &Response_BeginBlock{msg}
  1355. return true, err
  1356. case 9: // value.check_tx
  1357. if wire != proto.WireBytes {
  1358. return true, proto.ErrInternalBadWireType
  1359. }
  1360. msg := new(ResponseCheckTx)
  1361. err := b.DecodeMessage(msg)
  1362. m.Value = &Response_CheckTx{msg}
  1363. return true, err
  1364. case 10: // value.deliver_tx
  1365. if wire != proto.WireBytes {
  1366. return true, proto.ErrInternalBadWireType
  1367. }
  1368. msg := new(ResponseDeliverTx)
  1369. err := b.DecodeMessage(msg)
  1370. m.Value = &Response_DeliverTx{msg}
  1371. return true, err
  1372. case 11: // value.end_block
  1373. if wire != proto.WireBytes {
  1374. return true, proto.ErrInternalBadWireType
  1375. }
  1376. msg := new(ResponseEndBlock)
  1377. err := b.DecodeMessage(msg)
  1378. m.Value = &Response_EndBlock{msg}
  1379. return true, err
  1380. case 12: // value.commit
  1381. if wire != proto.WireBytes {
  1382. return true, proto.ErrInternalBadWireType
  1383. }
  1384. msg := new(ResponseCommit)
  1385. err := b.DecodeMessage(msg)
  1386. m.Value = &Response_Commit{msg}
  1387. return true, err
  1388. default:
  1389. return false, nil
  1390. }
  1391. }
  1392. func _Response_OneofSizer(msg proto.Message) (n int) {
  1393. m := msg.(*Response)
  1394. // value
  1395. switch x := m.Value.(type) {
  1396. case *Response_Exception:
  1397. s := proto.Size(x.Exception)
  1398. n += 1 // tag and wire
  1399. n += proto.SizeVarint(uint64(s))
  1400. n += s
  1401. case *Response_Echo:
  1402. s := proto.Size(x.Echo)
  1403. n += 1 // tag and wire
  1404. n += proto.SizeVarint(uint64(s))
  1405. n += s
  1406. case *Response_Flush:
  1407. s := proto.Size(x.Flush)
  1408. n += 1 // tag and wire
  1409. n += proto.SizeVarint(uint64(s))
  1410. n += s
  1411. case *Response_Info:
  1412. s := proto.Size(x.Info)
  1413. n += 1 // tag and wire
  1414. n += proto.SizeVarint(uint64(s))
  1415. n += s
  1416. case *Response_SetOption:
  1417. s := proto.Size(x.SetOption)
  1418. n += 1 // tag and wire
  1419. n += proto.SizeVarint(uint64(s))
  1420. n += s
  1421. case *Response_InitChain:
  1422. s := proto.Size(x.InitChain)
  1423. n += 1 // tag and wire
  1424. n += proto.SizeVarint(uint64(s))
  1425. n += s
  1426. case *Response_Query:
  1427. s := proto.Size(x.Query)
  1428. n += 1 // tag and wire
  1429. n += proto.SizeVarint(uint64(s))
  1430. n += s
  1431. case *Response_BeginBlock:
  1432. s := proto.Size(x.BeginBlock)
  1433. n += 1 // tag and wire
  1434. n += proto.SizeVarint(uint64(s))
  1435. n += s
  1436. case *Response_CheckTx:
  1437. s := proto.Size(x.CheckTx)
  1438. n += 1 // tag and wire
  1439. n += proto.SizeVarint(uint64(s))
  1440. n += s
  1441. case *Response_DeliverTx:
  1442. s := proto.Size(x.DeliverTx)
  1443. n += 1 // tag and wire
  1444. n += proto.SizeVarint(uint64(s))
  1445. n += s
  1446. case *Response_EndBlock:
  1447. s := proto.Size(x.EndBlock)
  1448. n += 1 // tag and wire
  1449. n += proto.SizeVarint(uint64(s))
  1450. n += s
  1451. case *Response_Commit:
  1452. s := proto.Size(x.Commit)
  1453. n += 1 // tag and wire
  1454. n += proto.SizeVarint(uint64(s))
  1455. n += s
  1456. case nil:
  1457. default:
  1458. panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
  1459. }
  1460. return n
  1461. }
  1462. // nondeterministic
  1463. type ResponseException struct {
  1464. Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
  1465. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1466. XXX_unrecognized []byte `json:"-"`
  1467. XXX_sizecache int32 `json:"-"`
  1468. }
  1469. func (m *ResponseException) Reset() { *m = ResponseException{} }
  1470. func (m *ResponseException) String() string { return proto.CompactTextString(m) }
  1471. func (*ResponseException) ProtoMessage() {}
  1472. func (*ResponseException) Descriptor() ([]byte, []int) {
  1473. return fileDescriptor_types_30d8160a6576aafe, []int{13}
  1474. }
  1475. func (m *ResponseException) XXX_Unmarshal(b []byte) error {
  1476. return m.Unmarshal(b)
  1477. }
  1478. func (m *ResponseException) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1479. if deterministic {
  1480. return xxx_messageInfo_ResponseException.Marshal(b, m, deterministic)
  1481. } else {
  1482. b = b[:cap(b)]
  1483. n, err := m.MarshalTo(b)
  1484. if err != nil {
  1485. return nil, err
  1486. }
  1487. return b[:n], nil
  1488. }
  1489. }
  1490. func (dst *ResponseException) XXX_Merge(src proto.Message) {
  1491. xxx_messageInfo_ResponseException.Merge(dst, src)
  1492. }
  1493. func (m *ResponseException) XXX_Size() int {
  1494. return m.Size()
  1495. }
  1496. func (m *ResponseException) XXX_DiscardUnknown() {
  1497. xxx_messageInfo_ResponseException.DiscardUnknown(m)
  1498. }
  1499. var xxx_messageInfo_ResponseException proto.InternalMessageInfo
  1500. func (m *ResponseException) GetError() string {
  1501. if m != nil {
  1502. return m.Error
  1503. }
  1504. return ""
  1505. }
  1506. type ResponseEcho struct {
  1507. Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
  1508. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1509. XXX_unrecognized []byte `json:"-"`
  1510. XXX_sizecache int32 `json:"-"`
  1511. }
  1512. func (m *ResponseEcho) Reset() { *m = ResponseEcho{} }
  1513. func (m *ResponseEcho) String() string { return proto.CompactTextString(m) }
  1514. func (*ResponseEcho) ProtoMessage() {}
  1515. func (*ResponseEcho) Descriptor() ([]byte, []int) {
  1516. return fileDescriptor_types_30d8160a6576aafe, []int{14}
  1517. }
  1518. func (m *ResponseEcho) XXX_Unmarshal(b []byte) error {
  1519. return m.Unmarshal(b)
  1520. }
  1521. func (m *ResponseEcho) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1522. if deterministic {
  1523. return xxx_messageInfo_ResponseEcho.Marshal(b, m, deterministic)
  1524. } else {
  1525. b = b[:cap(b)]
  1526. n, err := m.MarshalTo(b)
  1527. if err != nil {
  1528. return nil, err
  1529. }
  1530. return b[:n], nil
  1531. }
  1532. }
  1533. func (dst *ResponseEcho) XXX_Merge(src proto.Message) {
  1534. xxx_messageInfo_ResponseEcho.Merge(dst, src)
  1535. }
  1536. func (m *ResponseEcho) XXX_Size() int {
  1537. return m.Size()
  1538. }
  1539. func (m *ResponseEcho) XXX_DiscardUnknown() {
  1540. xxx_messageInfo_ResponseEcho.DiscardUnknown(m)
  1541. }
  1542. var xxx_messageInfo_ResponseEcho proto.InternalMessageInfo
  1543. func (m *ResponseEcho) GetMessage() string {
  1544. if m != nil {
  1545. return m.Message
  1546. }
  1547. return ""
  1548. }
  1549. type ResponseFlush struct {
  1550. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1551. XXX_unrecognized []byte `json:"-"`
  1552. XXX_sizecache int32 `json:"-"`
  1553. }
  1554. func (m *ResponseFlush) Reset() { *m = ResponseFlush{} }
  1555. func (m *ResponseFlush) String() string { return proto.CompactTextString(m) }
  1556. func (*ResponseFlush) ProtoMessage() {}
  1557. func (*ResponseFlush) Descriptor() ([]byte, []int) {
  1558. return fileDescriptor_types_30d8160a6576aafe, []int{15}
  1559. }
  1560. func (m *ResponseFlush) XXX_Unmarshal(b []byte) error {
  1561. return m.Unmarshal(b)
  1562. }
  1563. func (m *ResponseFlush) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1564. if deterministic {
  1565. return xxx_messageInfo_ResponseFlush.Marshal(b, m, deterministic)
  1566. } else {
  1567. b = b[:cap(b)]
  1568. n, err := m.MarshalTo(b)
  1569. if err != nil {
  1570. return nil, err
  1571. }
  1572. return b[:n], nil
  1573. }
  1574. }
  1575. func (dst *ResponseFlush) XXX_Merge(src proto.Message) {
  1576. xxx_messageInfo_ResponseFlush.Merge(dst, src)
  1577. }
  1578. func (m *ResponseFlush) XXX_Size() int {
  1579. return m.Size()
  1580. }
  1581. func (m *ResponseFlush) XXX_DiscardUnknown() {
  1582. xxx_messageInfo_ResponseFlush.DiscardUnknown(m)
  1583. }
  1584. var xxx_messageInfo_ResponseFlush proto.InternalMessageInfo
  1585. type ResponseInfo struct {
  1586. Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
  1587. Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
  1588. AppVersion uint64 `protobuf:"varint,3,opt,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"`
  1589. LastBlockHeight int64 `protobuf:"varint,4,opt,name=last_block_height,json=lastBlockHeight,proto3" json:"last_block_height,omitempty"`
  1590. LastBlockAppHash []byte `protobuf:"bytes,5,opt,name=last_block_app_hash,json=lastBlockAppHash,proto3" json:"last_block_app_hash,omitempty"`
  1591. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1592. XXX_unrecognized []byte `json:"-"`
  1593. XXX_sizecache int32 `json:"-"`
  1594. }
  1595. func (m *ResponseInfo) Reset() { *m = ResponseInfo{} }
  1596. func (m *ResponseInfo) String() string { return proto.CompactTextString(m) }
  1597. func (*ResponseInfo) ProtoMessage() {}
  1598. func (*ResponseInfo) Descriptor() ([]byte, []int) {
  1599. return fileDescriptor_types_30d8160a6576aafe, []int{16}
  1600. }
  1601. func (m *ResponseInfo) XXX_Unmarshal(b []byte) error {
  1602. return m.Unmarshal(b)
  1603. }
  1604. func (m *ResponseInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1605. if deterministic {
  1606. return xxx_messageInfo_ResponseInfo.Marshal(b, m, deterministic)
  1607. } else {
  1608. b = b[:cap(b)]
  1609. n, err := m.MarshalTo(b)
  1610. if err != nil {
  1611. return nil, err
  1612. }
  1613. return b[:n], nil
  1614. }
  1615. }
  1616. func (dst *ResponseInfo) XXX_Merge(src proto.Message) {
  1617. xxx_messageInfo_ResponseInfo.Merge(dst, src)
  1618. }
  1619. func (m *ResponseInfo) XXX_Size() int {
  1620. return m.Size()
  1621. }
  1622. func (m *ResponseInfo) XXX_DiscardUnknown() {
  1623. xxx_messageInfo_ResponseInfo.DiscardUnknown(m)
  1624. }
  1625. var xxx_messageInfo_ResponseInfo proto.InternalMessageInfo
  1626. func (m *ResponseInfo) GetData() string {
  1627. if m != nil {
  1628. return m.Data
  1629. }
  1630. return ""
  1631. }
  1632. func (m *ResponseInfo) GetVersion() string {
  1633. if m != nil {
  1634. return m.Version
  1635. }
  1636. return ""
  1637. }
  1638. func (m *ResponseInfo) GetAppVersion() uint64 {
  1639. if m != nil {
  1640. return m.AppVersion
  1641. }
  1642. return 0
  1643. }
  1644. func (m *ResponseInfo) GetLastBlockHeight() int64 {
  1645. if m != nil {
  1646. return m.LastBlockHeight
  1647. }
  1648. return 0
  1649. }
  1650. func (m *ResponseInfo) GetLastBlockAppHash() []byte {
  1651. if m != nil {
  1652. return m.LastBlockAppHash
  1653. }
  1654. return nil
  1655. }
  1656. // nondeterministic
  1657. type ResponseSetOption struct {
  1658. Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
  1659. // bytes data = 2;
  1660. Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
  1661. Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
  1662. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1663. XXX_unrecognized []byte `json:"-"`
  1664. XXX_sizecache int32 `json:"-"`
  1665. }
  1666. func (m *ResponseSetOption) Reset() { *m = ResponseSetOption{} }
  1667. func (m *ResponseSetOption) String() string { return proto.CompactTextString(m) }
  1668. func (*ResponseSetOption) ProtoMessage() {}
  1669. func (*ResponseSetOption) Descriptor() ([]byte, []int) {
  1670. return fileDescriptor_types_30d8160a6576aafe, []int{17}
  1671. }
  1672. func (m *ResponseSetOption) XXX_Unmarshal(b []byte) error {
  1673. return m.Unmarshal(b)
  1674. }
  1675. func (m *ResponseSetOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1676. if deterministic {
  1677. return xxx_messageInfo_ResponseSetOption.Marshal(b, m, deterministic)
  1678. } else {
  1679. b = b[:cap(b)]
  1680. n, err := m.MarshalTo(b)
  1681. if err != nil {
  1682. return nil, err
  1683. }
  1684. return b[:n], nil
  1685. }
  1686. }
  1687. func (dst *ResponseSetOption) XXX_Merge(src proto.Message) {
  1688. xxx_messageInfo_ResponseSetOption.Merge(dst, src)
  1689. }
  1690. func (m *ResponseSetOption) XXX_Size() int {
  1691. return m.Size()
  1692. }
  1693. func (m *ResponseSetOption) XXX_DiscardUnknown() {
  1694. xxx_messageInfo_ResponseSetOption.DiscardUnknown(m)
  1695. }
  1696. var xxx_messageInfo_ResponseSetOption proto.InternalMessageInfo
  1697. func (m *ResponseSetOption) GetCode() uint32 {
  1698. if m != nil {
  1699. return m.Code
  1700. }
  1701. return 0
  1702. }
  1703. func (m *ResponseSetOption) GetLog() string {
  1704. if m != nil {
  1705. return m.Log
  1706. }
  1707. return ""
  1708. }
  1709. func (m *ResponseSetOption) GetInfo() string {
  1710. if m != nil {
  1711. return m.Info
  1712. }
  1713. return ""
  1714. }
  1715. type ResponseInitChain struct {
  1716. ConsensusParams *ConsensusParams `protobuf:"bytes,1,opt,name=consensus_params,json=consensusParams" json:"consensus_params,omitempty"`
  1717. Validators []ValidatorUpdate `protobuf:"bytes,2,rep,name=validators" json:"validators"`
  1718. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1719. XXX_unrecognized []byte `json:"-"`
  1720. XXX_sizecache int32 `json:"-"`
  1721. }
  1722. func (m *ResponseInitChain) Reset() { *m = ResponseInitChain{} }
  1723. func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) }
  1724. func (*ResponseInitChain) ProtoMessage() {}
  1725. func (*ResponseInitChain) Descriptor() ([]byte, []int) {
  1726. return fileDescriptor_types_30d8160a6576aafe, []int{18}
  1727. }
  1728. func (m *ResponseInitChain) XXX_Unmarshal(b []byte) error {
  1729. return m.Unmarshal(b)
  1730. }
  1731. func (m *ResponseInitChain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1732. if deterministic {
  1733. return xxx_messageInfo_ResponseInitChain.Marshal(b, m, deterministic)
  1734. } else {
  1735. b = b[:cap(b)]
  1736. n, err := m.MarshalTo(b)
  1737. if err != nil {
  1738. return nil, err
  1739. }
  1740. return b[:n], nil
  1741. }
  1742. }
  1743. func (dst *ResponseInitChain) XXX_Merge(src proto.Message) {
  1744. xxx_messageInfo_ResponseInitChain.Merge(dst, src)
  1745. }
  1746. func (m *ResponseInitChain) XXX_Size() int {
  1747. return m.Size()
  1748. }
  1749. func (m *ResponseInitChain) XXX_DiscardUnknown() {
  1750. xxx_messageInfo_ResponseInitChain.DiscardUnknown(m)
  1751. }
  1752. var xxx_messageInfo_ResponseInitChain proto.InternalMessageInfo
  1753. func (m *ResponseInitChain) GetConsensusParams() *ConsensusParams {
  1754. if m != nil {
  1755. return m.ConsensusParams
  1756. }
  1757. return nil
  1758. }
  1759. func (m *ResponseInitChain) GetValidators() []ValidatorUpdate {
  1760. if m != nil {
  1761. return m.Validators
  1762. }
  1763. return nil
  1764. }
  1765. type ResponseQuery struct {
  1766. Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
  1767. // bytes data = 2; // use "value" instead.
  1768. Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
  1769. Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
  1770. Index int64 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"`
  1771. Key []byte `protobuf:"bytes,6,opt,name=key,proto3" json:"key,omitempty"`
  1772. Value []byte `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"`
  1773. Proof *merkle.Proof `protobuf:"bytes,8,opt,name=proof" json:"proof,omitempty"`
  1774. Height int64 `protobuf:"varint,9,opt,name=height,proto3" json:"height,omitempty"`
  1775. Codespace string `protobuf:"bytes,10,opt,name=codespace,proto3" json:"codespace,omitempty"`
  1776. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1777. XXX_unrecognized []byte `json:"-"`
  1778. XXX_sizecache int32 `json:"-"`
  1779. }
  1780. func (m *ResponseQuery) Reset() { *m = ResponseQuery{} }
  1781. func (m *ResponseQuery) String() string { return proto.CompactTextString(m) }
  1782. func (*ResponseQuery) ProtoMessage() {}
  1783. func (*ResponseQuery) Descriptor() ([]byte, []int) {
  1784. return fileDescriptor_types_30d8160a6576aafe, []int{19}
  1785. }
  1786. func (m *ResponseQuery) XXX_Unmarshal(b []byte) error {
  1787. return m.Unmarshal(b)
  1788. }
  1789. func (m *ResponseQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1790. if deterministic {
  1791. return xxx_messageInfo_ResponseQuery.Marshal(b, m, deterministic)
  1792. } else {
  1793. b = b[:cap(b)]
  1794. n, err := m.MarshalTo(b)
  1795. if err != nil {
  1796. return nil, err
  1797. }
  1798. return b[:n], nil
  1799. }
  1800. }
  1801. func (dst *ResponseQuery) XXX_Merge(src proto.Message) {
  1802. xxx_messageInfo_ResponseQuery.Merge(dst, src)
  1803. }
  1804. func (m *ResponseQuery) XXX_Size() int {
  1805. return m.Size()
  1806. }
  1807. func (m *ResponseQuery) XXX_DiscardUnknown() {
  1808. xxx_messageInfo_ResponseQuery.DiscardUnknown(m)
  1809. }
  1810. var xxx_messageInfo_ResponseQuery proto.InternalMessageInfo
  1811. func (m *ResponseQuery) GetCode() uint32 {
  1812. if m != nil {
  1813. return m.Code
  1814. }
  1815. return 0
  1816. }
  1817. func (m *ResponseQuery) GetLog() string {
  1818. if m != nil {
  1819. return m.Log
  1820. }
  1821. return ""
  1822. }
  1823. func (m *ResponseQuery) GetInfo() string {
  1824. if m != nil {
  1825. return m.Info
  1826. }
  1827. return ""
  1828. }
  1829. func (m *ResponseQuery) GetIndex() int64 {
  1830. if m != nil {
  1831. return m.Index
  1832. }
  1833. return 0
  1834. }
  1835. func (m *ResponseQuery) GetKey() []byte {
  1836. if m != nil {
  1837. return m.Key
  1838. }
  1839. return nil
  1840. }
  1841. func (m *ResponseQuery) GetValue() []byte {
  1842. if m != nil {
  1843. return m.Value
  1844. }
  1845. return nil
  1846. }
  1847. func (m *ResponseQuery) GetProof() *merkle.Proof {
  1848. if m != nil {
  1849. return m.Proof
  1850. }
  1851. return nil
  1852. }
  1853. func (m *ResponseQuery) GetHeight() int64 {
  1854. if m != nil {
  1855. return m.Height
  1856. }
  1857. return 0
  1858. }
  1859. func (m *ResponseQuery) GetCodespace() string {
  1860. if m != nil {
  1861. return m.Codespace
  1862. }
  1863. return ""
  1864. }
  1865. type ResponseBeginBlock struct {
  1866. Events []Event `protobuf:"bytes,1,rep,name=events" json:"events,omitempty"`
  1867. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1868. XXX_unrecognized []byte `json:"-"`
  1869. XXX_sizecache int32 `json:"-"`
  1870. }
  1871. func (m *ResponseBeginBlock) Reset() { *m = ResponseBeginBlock{} }
  1872. func (m *ResponseBeginBlock) String() string { return proto.CompactTextString(m) }
  1873. func (*ResponseBeginBlock) ProtoMessage() {}
  1874. func (*ResponseBeginBlock) Descriptor() ([]byte, []int) {
  1875. return fileDescriptor_types_30d8160a6576aafe, []int{20}
  1876. }
  1877. func (m *ResponseBeginBlock) XXX_Unmarshal(b []byte) error {
  1878. return m.Unmarshal(b)
  1879. }
  1880. func (m *ResponseBeginBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1881. if deterministic {
  1882. return xxx_messageInfo_ResponseBeginBlock.Marshal(b, m, deterministic)
  1883. } else {
  1884. b = b[:cap(b)]
  1885. n, err := m.MarshalTo(b)
  1886. if err != nil {
  1887. return nil, err
  1888. }
  1889. return b[:n], nil
  1890. }
  1891. }
  1892. func (dst *ResponseBeginBlock) XXX_Merge(src proto.Message) {
  1893. xxx_messageInfo_ResponseBeginBlock.Merge(dst, src)
  1894. }
  1895. func (m *ResponseBeginBlock) XXX_Size() int {
  1896. return m.Size()
  1897. }
  1898. func (m *ResponseBeginBlock) XXX_DiscardUnknown() {
  1899. xxx_messageInfo_ResponseBeginBlock.DiscardUnknown(m)
  1900. }
  1901. var xxx_messageInfo_ResponseBeginBlock proto.InternalMessageInfo
  1902. func (m *ResponseBeginBlock) GetEvents() []Event {
  1903. if m != nil {
  1904. return m.Events
  1905. }
  1906. return nil
  1907. }
  1908. type ResponseCheckTx struct {
  1909. Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
  1910. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  1911. Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
  1912. Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
  1913. GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"`
  1914. GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
  1915. Events []Event `protobuf:"bytes,7,rep,name=events" json:"events,omitempty"`
  1916. Codespace string `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"`
  1917. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1918. XXX_unrecognized []byte `json:"-"`
  1919. XXX_sizecache int32 `json:"-"`
  1920. }
  1921. func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} }
  1922. func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) }
  1923. func (*ResponseCheckTx) ProtoMessage() {}
  1924. func (*ResponseCheckTx) Descriptor() ([]byte, []int) {
  1925. return fileDescriptor_types_30d8160a6576aafe, []int{21}
  1926. }
  1927. func (m *ResponseCheckTx) XXX_Unmarshal(b []byte) error {
  1928. return m.Unmarshal(b)
  1929. }
  1930. func (m *ResponseCheckTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1931. if deterministic {
  1932. return xxx_messageInfo_ResponseCheckTx.Marshal(b, m, deterministic)
  1933. } else {
  1934. b = b[:cap(b)]
  1935. n, err := m.MarshalTo(b)
  1936. if err != nil {
  1937. return nil, err
  1938. }
  1939. return b[:n], nil
  1940. }
  1941. }
  1942. func (dst *ResponseCheckTx) XXX_Merge(src proto.Message) {
  1943. xxx_messageInfo_ResponseCheckTx.Merge(dst, src)
  1944. }
  1945. func (m *ResponseCheckTx) XXX_Size() int {
  1946. return m.Size()
  1947. }
  1948. func (m *ResponseCheckTx) XXX_DiscardUnknown() {
  1949. xxx_messageInfo_ResponseCheckTx.DiscardUnknown(m)
  1950. }
  1951. var xxx_messageInfo_ResponseCheckTx proto.InternalMessageInfo
  1952. func (m *ResponseCheckTx) GetCode() uint32 {
  1953. if m != nil {
  1954. return m.Code
  1955. }
  1956. return 0
  1957. }
  1958. func (m *ResponseCheckTx) GetData() []byte {
  1959. if m != nil {
  1960. return m.Data
  1961. }
  1962. return nil
  1963. }
  1964. func (m *ResponseCheckTx) GetLog() string {
  1965. if m != nil {
  1966. return m.Log
  1967. }
  1968. return ""
  1969. }
  1970. func (m *ResponseCheckTx) GetInfo() string {
  1971. if m != nil {
  1972. return m.Info
  1973. }
  1974. return ""
  1975. }
  1976. func (m *ResponseCheckTx) GetGasWanted() int64 {
  1977. if m != nil {
  1978. return m.GasWanted
  1979. }
  1980. return 0
  1981. }
  1982. func (m *ResponseCheckTx) GetGasUsed() int64 {
  1983. if m != nil {
  1984. return m.GasUsed
  1985. }
  1986. return 0
  1987. }
  1988. func (m *ResponseCheckTx) GetEvents() []Event {
  1989. if m != nil {
  1990. return m.Events
  1991. }
  1992. return nil
  1993. }
  1994. func (m *ResponseCheckTx) GetCodespace() string {
  1995. if m != nil {
  1996. return m.Codespace
  1997. }
  1998. return ""
  1999. }
  2000. type ResponseDeliverTx struct {
  2001. Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
  2002. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  2003. Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
  2004. Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"`
  2005. GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"`
  2006. GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
  2007. Events []Event `protobuf:"bytes,7,rep,name=events" json:"events,omitempty"`
  2008. Codespace string `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"`
  2009. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2010. XXX_unrecognized []byte `json:"-"`
  2011. XXX_sizecache int32 `json:"-"`
  2012. }
  2013. func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} }
  2014. func (m *ResponseDeliverTx) String() string { return proto.CompactTextString(m) }
  2015. func (*ResponseDeliverTx) ProtoMessage() {}
  2016. func (*ResponseDeliverTx) Descriptor() ([]byte, []int) {
  2017. return fileDescriptor_types_30d8160a6576aafe, []int{22}
  2018. }
  2019. func (m *ResponseDeliverTx) XXX_Unmarshal(b []byte) error {
  2020. return m.Unmarshal(b)
  2021. }
  2022. func (m *ResponseDeliverTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2023. if deterministic {
  2024. return xxx_messageInfo_ResponseDeliverTx.Marshal(b, m, deterministic)
  2025. } else {
  2026. b = b[:cap(b)]
  2027. n, err := m.MarshalTo(b)
  2028. if err != nil {
  2029. return nil, err
  2030. }
  2031. return b[:n], nil
  2032. }
  2033. }
  2034. func (dst *ResponseDeliverTx) XXX_Merge(src proto.Message) {
  2035. xxx_messageInfo_ResponseDeliverTx.Merge(dst, src)
  2036. }
  2037. func (m *ResponseDeliverTx) XXX_Size() int {
  2038. return m.Size()
  2039. }
  2040. func (m *ResponseDeliverTx) XXX_DiscardUnknown() {
  2041. xxx_messageInfo_ResponseDeliverTx.DiscardUnknown(m)
  2042. }
  2043. var xxx_messageInfo_ResponseDeliverTx proto.InternalMessageInfo
  2044. func (m *ResponseDeliverTx) GetCode() uint32 {
  2045. if m != nil {
  2046. return m.Code
  2047. }
  2048. return 0
  2049. }
  2050. func (m *ResponseDeliverTx) GetData() []byte {
  2051. if m != nil {
  2052. return m.Data
  2053. }
  2054. return nil
  2055. }
  2056. func (m *ResponseDeliverTx) GetLog() string {
  2057. if m != nil {
  2058. return m.Log
  2059. }
  2060. return ""
  2061. }
  2062. func (m *ResponseDeliverTx) GetInfo() string {
  2063. if m != nil {
  2064. return m.Info
  2065. }
  2066. return ""
  2067. }
  2068. func (m *ResponseDeliverTx) GetGasWanted() int64 {
  2069. if m != nil {
  2070. return m.GasWanted
  2071. }
  2072. return 0
  2073. }
  2074. func (m *ResponseDeliverTx) GetGasUsed() int64 {
  2075. if m != nil {
  2076. return m.GasUsed
  2077. }
  2078. return 0
  2079. }
  2080. func (m *ResponseDeliverTx) GetEvents() []Event {
  2081. if m != nil {
  2082. return m.Events
  2083. }
  2084. return nil
  2085. }
  2086. func (m *ResponseDeliverTx) GetCodespace() string {
  2087. if m != nil {
  2088. return m.Codespace
  2089. }
  2090. return ""
  2091. }
  2092. type ResponseEndBlock struct {
  2093. ValidatorUpdates []ValidatorUpdate `protobuf:"bytes,1,rep,name=validator_updates,json=validatorUpdates" json:"validator_updates"`
  2094. ConsensusParamUpdates *ConsensusParams `protobuf:"bytes,2,opt,name=consensus_param_updates,json=consensusParamUpdates" json:"consensus_param_updates,omitempty"`
  2095. Events []Event `protobuf:"bytes,3,rep,name=events" json:"events,omitempty"`
  2096. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2097. XXX_unrecognized []byte `json:"-"`
  2098. XXX_sizecache int32 `json:"-"`
  2099. }
  2100. func (m *ResponseEndBlock) Reset() { *m = ResponseEndBlock{} }
  2101. func (m *ResponseEndBlock) String() string { return proto.CompactTextString(m) }
  2102. func (*ResponseEndBlock) ProtoMessage() {}
  2103. func (*ResponseEndBlock) Descriptor() ([]byte, []int) {
  2104. return fileDescriptor_types_30d8160a6576aafe, []int{23}
  2105. }
  2106. func (m *ResponseEndBlock) XXX_Unmarshal(b []byte) error {
  2107. return m.Unmarshal(b)
  2108. }
  2109. func (m *ResponseEndBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2110. if deterministic {
  2111. return xxx_messageInfo_ResponseEndBlock.Marshal(b, m, deterministic)
  2112. } else {
  2113. b = b[:cap(b)]
  2114. n, err := m.MarshalTo(b)
  2115. if err != nil {
  2116. return nil, err
  2117. }
  2118. return b[:n], nil
  2119. }
  2120. }
  2121. func (dst *ResponseEndBlock) XXX_Merge(src proto.Message) {
  2122. xxx_messageInfo_ResponseEndBlock.Merge(dst, src)
  2123. }
  2124. func (m *ResponseEndBlock) XXX_Size() int {
  2125. return m.Size()
  2126. }
  2127. func (m *ResponseEndBlock) XXX_DiscardUnknown() {
  2128. xxx_messageInfo_ResponseEndBlock.DiscardUnknown(m)
  2129. }
  2130. var xxx_messageInfo_ResponseEndBlock proto.InternalMessageInfo
  2131. func (m *ResponseEndBlock) GetValidatorUpdates() []ValidatorUpdate {
  2132. if m != nil {
  2133. return m.ValidatorUpdates
  2134. }
  2135. return nil
  2136. }
  2137. func (m *ResponseEndBlock) GetConsensusParamUpdates() *ConsensusParams {
  2138. if m != nil {
  2139. return m.ConsensusParamUpdates
  2140. }
  2141. return nil
  2142. }
  2143. func (m *ResponseEndBlock) GetEvents() []Event {
  2144. if m != nil {
  2145. return m.Events
  2146. }
  2147. return nil
  2148. }
  2149. type ResponseCommit struct {
  2150. // reserve 1
  2151. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  2152. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2153. XXX_unrecognized []byte `json:"-"`
  2154. XXX_sizecache int32 `json:"-"`
  2155. }
  2156. func (m *ResponseCommit) Reset() { *m = ResponseCommit{} }
  2157. func (m *ResponseCommit) String() string { return proto.CompactTextString(m) }
  2158. func (*ResponseCommit) ProtoMessage() {}
  2159. func (*ResponseCommit) Descriptor() ([]byte, []int) {
  2160. return fileDescriptor_types_30d8160a6576aafe, []int{24}
  2161. }
  2162. func (m *ResponseCommit) XXX_Unmarshal(b []byte) error {
  2163. return m.Unmarshal(b)
  2164. }
  2165. func (m *ResponseCommit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2166. if deterministic {
  2167. return xxx_messageInfo_ResponseCommit.Marshal(b, m, deterministic)
  2168. } else {
  2169. b = b[:cap(b)]
  2170. n, err := m.MarshalTo(b)
  2171. if err != nil {
  2172. return nil, err
  2173. }
  2174. return b[:n], nil
  2175. }
  2176. }
  2177. func (dst *ResponseCommit) XXX_Merge(src proto.Message) {
  2178. xxx_messageInfo_ResponseCommit.Merge(dst, src)
  2179. }
  2180. func (m *ResponseCommit) XXX_Size() int {
  2181. return m.Size()
  2182. }
  2183. func (m *ResponseCommit) XXX_DiscardUnknown() {
  2184. xxx_messageInfo_ResponseCommit.DiscardUnknown(m)
  2185. }
  2186. var xxx_messageInfo_ResponseCommit proto.InternalMessageInfo
  2187. func (m *ResponseCommit) GetData() []byte {
  2188. if m != nil {
  2189. return m.Data
  2190. }
  2191. return nil
  2192. }
  2193. // ConsensusParams contains all consensus-relevant parameters
  2194. // that can be adjusted by the abci app
  2195. type ConsensusParams struct {
  2196. Block *BlockParams `protobuf:"bytes,1,opt,name=block" json:"block,omitempty"`
  2197. Evidence *EvidenceParams `protobuf:"bytes,2,opt,name=evidence" json:"evidence,omitempty"`
  2198. Validator *ValidatorParams `protobuf:"bytes,3,opt,name=validator" json:"validator,omitempty"`
  2199. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2200. XXX_unrecognized []byte `json:"-"`
  2201. XXX_sizecache int32 `json:"-"`
  2202. }
  2203. func (m *ConsensusParams) Reset() { *m = ConsensusParams{} }
  2204. func (m *ConsensusParams) String() string { return proto.CompactTextString(m) }
  2205. func (*ConsensusParams) ProtoMessage() {}
  2206. func (*ConsensusParams) Descriptor() ([]byte, []int) {
  2207. return fileDescriptor_types_30d8160a6576aafe, []int{25}
  2208. }
  2209. func (m *ConsensusParams) XXX_Unmarshal(b []byte) error {
  2210. return m.Unmarshal(b)
  2211. }
  2212. func (m *ConsensusParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2213. if deterministic {
  2214. return xxx_messageInfo_ConsensusParams.Marshal(b, m, deterministic)
  2215. } else {
  2216. b = b[:cap(b)]
  2217. n, err := m.MarshalTo(b)
  2218. if err != nil {
  2219. return nil, err
  2220. }
  2221. return b[:n], nil
  2222. }
  2223. }
  2224. func (dst *ConsensusParams) XXX_Merge(src proto.Message) {
  2225. xxx_messageInfo_ConsensusParams.Merge(dst, src)
  2226. }
  2227. func (m *ConsensusParams) XXX_Size() int {
  2228. return m.Size()
  2229. }
  2230. func (m *ConsensusParams) XXX_DiscardUnknown() {
  2231. xxx_messageInfo_ConsensusParams.DiscardUnknown(m)
  2232. }
  2233. var xxx_messageInfo_ConsensusParams proto.InternalMessageInfo
  2234. func (m *ConsensusParams) GetBlock() *BlockParams {
  2235. if m != nil {
  2236. return m.Block
  2237. }
  2238. return nil
  2239. }
  2240. func (m *ConsensusParams) GetEvidence() *EvidenceParams {
  2241. if m != nil {
  2242. return m.Evidence
  2243. }
  2244. return nil
  2245. }
  2246. func (m *ConsensusParams) GetValidator() *ValidatorParams {
  2247. if m != nil {
  2248. return m.Validator
  2249. }
  2250. return nil
  2251. }
  2252. // BlockParams contains limits on the block size.
  2253. type BlockParams struct {
  2254. // Note: must be greater than 0
  2255. MaxBytes int64 `protobuf:"varint,1,opt,name=max_bytes,json=maxBytes,proto3" json:"max_bytes,omitempty"`
  2256. // Note: must be greater or equal to -1
  2257. MaxGas int64 `protobuf:"varint,2,opt,name=max_gas,json=maxGas,proto3" json:"max_gas,omitempty"`
  2258. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2259. XXX_unrecognized []byte `json:"-"`
  2260. XXX_sizecache int32 `json:"-"`
  2261. }
  2262. func (m *BlockParams) Reset() { *m = BlockParams{} }
  2263. func (m *BlockParams) String() string { return proto.CompactTextString(m) }
  2264. func (*BlockParams) ProtoMessage() {}
  2265. func (*BlockParams) Descriptor() ([]byte, []int) {
  2266. return fileDescriptor_types_30d8160a6576aafe, []int{26}
  2267. }
  2268. func (m *BlockParams) XXX_Unmarshal(b []byte) error {
  2269. return m.Unmarshal(b)
  2270. }
  2271. func (m *BlockParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2272. if deterministic {
  2273. return xxx_messageInfo_BlockParams.Marshal(b, m, deterministic)
  2274. } else {
  2275. b = b[:cap(b)]
  2276. n, err := m.MarshalTo(b)
  2277. if err != nil {
  2278. return nil, err
  2279. }
  2280. return b[:n], nil
  2281. }
  2282. }
  2283. func (dst *BlockParams) XXX_Merge(src proto.Message) {
  2284. xxx_messageInfo_BlockParams.Merge(dst, src)
  2285. }
  2286. func (m *BlockParams) XXX_Size() int {
  2287. return m.Size()
  2288. }
  2289. func (m *BlockParams) XXX_DiscardUnknown() {
  2290. xxx_messageInfo_BlockParams.DiscardUnknown(m)
  2291. }
  2292. var xxx_messageInfo_BlockParams proto.InternalMessageInfo
  2293. func (m *BlockParams) GetMaxBytes() int64 {
  2294. if m != nil {
  2295. return m.MaxBytes
  2296. }
  2297. return 0
  2298. }
  2299. func (m *BlockParams) GetMaxGas() int64 {
  2300. if m != nil {
  2301. return m.MaxGas
  2302. }
  2303. return 0
  2304. }
  2305. // EvidenceParams contains limits on the evidence.
  2306. type EvidenceParams struct {
  2307. // Note: must be greater than 0
  2308. MaxAge int64 `protobuf:"varint,1,opt,name=max_age,json=maxAge,proto3" json:"max_age,omitempty"`
  2309. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2310. XXX_unrecognized []byte `json:"-"`
  2311. XXX_sizecache int32 `json:"-"`
  2312. }
  2313. func (m *EvidenceParams) Reset() { *m = EvidenceParams{} }
  2314. func (m *EvidenceParams) String() string { return proto.CompactTextString(m) }
  2315. func (*EvidenceParams) ProtoMessage() {}
  2316. func (*EvidenceParams) Descriptor() ([]byte, []int) {
  2317. return fileDescriptor_types_30d8160a6576aafe, []int{27}
  2318. }
  2319. func (m *EvidenceParams) XXX_Unmarshal(b []byte) error {
  2320. return m.Unmarshal(b)
  2321. }
  2322. func (m *EvidenceParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2323. if deterministic {
  2324. return xxx_messageInfo_EvidenceParams.Marshal(b, m, deterministic)
  2325. } else {
  2326. b = b[:cap(b)]
  2327. n, err := m.MarshalTo(b)
  2328. if err != nil {
  2329. return nil, err
  2330. }
  2331. return b[:n], nil
  2332. }
  2333. }
  2334. func (dst *EvidenceParams) XXX_Merge(src proto.Message) {
  2335. xxx_messageInfo_EvidenceParams.Merge(dst, src)
  2336. }
  2337. func (m *EvidenceParams) XXX_Size() int {
  2338. return m.Size()
  2339. }
  2340. func (m *EvidenceParams) XXX_DiscardUnknown() {
  2341. xxx_messageInfo_EvidenceParams.DiscardUnknown(m)
  2342. }
  2343. var xxx_messageInfo_EvidenceParams proto.InternalMessageInfo
  2344. func (m *EvidenceParams) GetMaxAge() int64 {
  2345. if m != nil {
  2346. return m.MaxAge
  2347. }
  2348. return 0
  2349. }
  2350. // ValidatorParams contains limits on validators.
  2351. type ValidatorParams struct {
  2352. PubKeyTypes []string `protobuf:"bytes,1,rep,name=pub_key_types,json=pubKeyTypes" json:"pub_key_types,omitempty"`
  2353. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2354. XXX_unrecognized []byte `json:"-"`
  2355. XXX_sizecache int32 `json:"-"`
  2356. }
  2357. func (m *ValidatorParams) Reset() { *m = ValidatorParams{} }
  2358. func (m *ValidatorParams) String() string { return proto.CompactTextString(m) }
  2359. func (*ValidatorParams) ProtoMessage() {}
  2360. func (*ValidatorParams) Descriptor() ([]byte, []int) {
  2361. return fileDescriptor_types_30d8160a6576aafe, []int{28}
  2362. }
  2363. func (m *ValidatorParams) XXX_Unmarshal(b []byte) error {
  2364. return m.Unmarshal(b)
  2365. }
  2366. func (m *ValidatorParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2367. if deterministic {
  2368. return xxx_messageInfo_ValidatorParams.Marshal(b, m, deterministic)
  2369. } else {
  2370. b = b[:cap(b)]
  2371. n, err := m.MarshalTo(b)
  2372. if err != nil {
  2373. return nil, err
  2374. }
  2375. return b[:n], nil
  2376. }
  2377. }
  2378. func (dst *ValidatorParams) XXX_Merge(src proto.Message) {
  2379. xxx_messageInfo_ValidatorParams.Merge(dst, src)
  2380. }
  2381. func (m *ValidatorParams) XXX_Size() int {
  2382. return m.Size()
  2383. }
  2384. func (m *ValidatorParams) XXX_DiscardUnknown() {
  2385. xxx_messageInfo_ValidatorParams.DiscardUnknown(m)
  2386. }
  2387. var xxx_messageInfo_ValidatorParams proto.InternalMessageInfo
  2388. func (m *ValidatorParams) GetPubKeyTypes() []string {
  2389. if m != nil {
  2390. return m.PubKeyTypes
  2391. }
  2392. return nil
  2393. }
  2394. type LastCommitInfo struct {
  2395. Round int32 `protobuf:"varint,1,opt,name=round,proto3" json:"round,omitempty"`
  2396. Votes []VoteInfo `protobuf:"bytes,2,rep,name=votes" json:"votes"`
  2397. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2398. XXX_unrecognized []byte `json:"-"`
  2399. XXX_sizecache int32 `json:"-"`
  2400. }
  2401. func (m *LastCommitInfo) Reset() { *m = LastCommitInfo{} }
  2402. func (m *LastCommitInfo) String() string { return proto.CompactTextString(m) }
  2403. func (*LastCommitInfo) ProtoMessage() {}
  2404. func (*LastCommitInfo) Descriptor() ([]byte, []int) {
  2405. return fileDescriptor_types_30d8160a6576aafe, []int{29}
  2406. }
  2407. func (m *LastCommitInfo) XXX_Unmarshal(b []byte) error {
  2408. return m.Unmarshal(b)
  2409. }
  2410. func (m *LastCommitInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2411. if deterministic {
  2412. return xxx_messageInfo_LastCommitInfo.Marshal(b, m, deterministic)
  2413. } else {
  2414. b = b[:cap(b)]
  2415. n, err := m.MarshalTo(b)
  2416. if err != nil {
  2417. return nil, err
  2418. }
  2419. return b[:n], nil
  2420. }
  2421. }
  2422. func (dst *LastCommitInfo) XXX_Merge(src proto.Message) {
  2423. xxx_messageInfo_LastCommitInfo.Merge(dst, src)
  2424. }
  2425. func (m *LastCommitInfo) XXX_Size() int {
  2426. return m.Size()
  2427. }
  2428. func (m *LastCommitInfo) XXX_DiscardUnknown() {
  2429. xxx_messageInfo_LastCommitInfo.DiscardUnknown(m)
  2430. }
  2431. var xxx_messageInfo_LastCommitInfo proto.InternalMessageInfo
  2432. func (m *LastCommitInfo) GetRound() int32 {
  2433. if m != nil {
  2434. return m.Round
  2435. }
  2436. return 0
  2437. }
  2438. func (m *LastCommitInfo) GetVotes() []VoteInfo {
  2439. if m != nil {
  2440. return m.Votes
  2441. }
  2442. return nil
  2443. }
  2444. type Event struct {
  2445. Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
  2446. Attributes []common.KVPair `protobuf:"bytes,2,rep,name=attributes" json:"attributes,omitempty"`
  2447. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2448. XXX_unrecognized []byte `json:"-"`
  2449. XXX_sizecache int32 `json:"-"`
  2450. }
  2451. func (m *Event) Reset() { *m = Event{} }
  2452. func (m *Event) String() string { return proto.CompactTextString(m) }
  2453. func (*Event) ProtoMessage() {}
  2454. func (*Event) Descriptor() ([]byte, []int) {
  2455. return fileDescriptor_types_30d8160a6576aafe, []int{30}
  2456. }
  2457. func (m *Event) XXX_Unmarshal(b []byte) error {
  2458. return m.Unmarshal(b)
  2459. }
  2460. func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2461. if deterministic {
  2462. return xxx_messageInfo_Event.Marshal(b, m, deterministic)
  2463. } else {
  2464. b = b[:cap(b)]
  2465. n, err := m.MarshalTo(b)
  2466. if err != nil {
  2467. return nil, err
  2468. }
  2469. return b[:n], nil
  2470. }
  2471. }
  2472. func (dst *Event) XXX_Merge(src proto.Message) {
  2473. xxx_messageInfo_Event.Merge(dst, src)
  2474. }
  2475. func (m *Event) XXX_Size() int {
  2476. return m.Size()
  2477. }
  2478. func (m *Event) XXX_DiscardUnknown() {
  2479. xxx_messageInfo_Event.DiscardUnknown(m)
  2480. }
  2481. var xxx_messageInfo_Event proto.InternalMessageInfo
  2482. func (m *Event) GetType() string {
  2483. if m != nil {
  2484. return m.Type
  2485. }
  2486. return ""
  2487. }
  2488. func (m *Event) GetAttributes() []common.KVPair {
  2489. if m != nil {
  2490. return m.Attributes
  2491. }
  2492. return nil
  2493. }
  2494. type Header struct {
  2495. // basic block info
  2496. Version Version `protobuf:"bytes,1,opt,name=version" json:"version"`
  2497. ChainID string `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
  2498. Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
  2499. Time time.Time `protobuf:"bytes,4,opt,name=time,stdtime" json:"time"`
  2500. NumTxs int64 `protobuf:"varint,5,opt,name=num_txs,json=numTxs,proto3" json:"num_txs,omitempty"`
  2501. TotalTxs int64 `protobuf:"varint,6,opt,name=total_txs,json=totalTxs,proto3" json:"total_txs,omitempty"`
  2502. // prev block info
  2503. LastBlockId BlockID `protobuf:"bytes,7,opt,name=last_block_id,json=lastBlockId" json:"last_block_id"`
  2504. // hashes of block data
  2505. LastCommitHash []byte `protobuf:"bytes,8,opt,name=last_commit_hash,json=lastCommitHash,proto3" json:"last_commit_hash,omitempty"`
  2506. DataHash []byte `protobuf:"bytes,9,opt,name=data_hash,json=dataHash,proto3" json:"data_hash,omitempty"`
  2507. // hashes from the app output from the prev block
  2508. ValidatorsHash []byte `protobuf:"bytes,10,opt,name=validators_hash,json=validatorsHash,proto3" json:"validators_hash,omitempty"`
  2509. NextValidatorsHash []byte `protobuf:"bytes,11,opt,name=next_validators_hash,json=nextValidatorsHash,proto3" json:"next_validators_hash,omitempty"`
  2510. ConsensusHash []byte `protobuf:"bytes,12,opt,name=consensus_hash,json=consensusHash,proto3" json:"consensus_hash,omitempty"`
  2511. AppHash []byte `protobuf:"bytes,13,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"`
  2512. LastResultsHash []byte `protobuf:"bytes,14,opt,name=last_results_hash,json=lastResultsHash,proto3" json:"last_results_hash,omitempty"`
  2513. // consensus info
  2514. EvidenceHash []byte `protobuf:"bytes,15,opt,name=evidence_hash,json=evidenceHash,proto3" json:"evidence_hash,omitempty"`
  2515. ProposerAddress []byte `protobuf:"bytes,16,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"`
  2516. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2517. XXX_unrecognized []byte `json:"-"`
  2518. XXX_sizecache int32 `json:"-"`
  2519. }
  2520. func (m *Header) Reset() { *m = Header{} }
  2521. func (m *Header) String() string { return proto.CompactTextString(m) }
  2522. func (*Header) ProtoMessage() {}
  2523. func (*Header) Descriptor() ([]byte, []int) {
  2524. return fileDescriptor_types_30d8160a6576aafe, []int{31}
  2525. }
  2526. func (m *Header) XXX_Unmarshal(b []byte) error {
  2527. return m.Unmarshal(b)
  2528. }
  2529. func (m *Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2530. if deterministic {
  2531. return xxx_messageInfo_Header.Marshal(b, m, deterministic)
  2532. } else {
  2533. b = b[:cap(b)]
  2534. n, err := m.MarshalTo(b)
  2535. if err != nil {
  2536. return nil, err
  2537. }
  2538. return b[:n], nil
  2539. }
  2540. }
  2541. func (dst *Header) XXX_Merge(src proto.Message) {
  2542. xxx_messageInfo_Header.Merge(dst, src)
  2543. }
  2544. func (m *Header) XXX_Size() int {
  2545. return m.Size()
  2546. }
  2547. func (m *Header) XXX_DiscardUnknown() {
  2548. xxx_messageInfo_Header.DiscardUnknown(m)
  2549. }
  2550. var xxx_messageInfo_Header proto.InternalMessageInfo
  2551. func (m *Header) GetVersion() Version {
  2552. if m != nil {
  2553. return m.Version
  2554. }
  2555. return Version{}
  2556. }
  2557. func (m *Header) GetChainID() string {
  2558. if m != nil {
  2559. return m.ChainID
  2560. }
  2561. return ""
  2562. }
  2563. func (m *Header) GetHeight() int64 {
  2564. if m != nil {
  2565. return m.Height
  2566. }
  2567. return 0
  2568. }
  2569. func (m *Header) GetTime() time.Time {
  2570. if m != nil {
  2571. return m.Time
  2572. }
  2573. return time.Time{}
  2574. }
  2575. func (m *Header) GetNumTxs() int64 {
  2576. if m != nil {
  2577. return m.NumTxs
  2578. }
  2579. return 0
  2580. }
  2581. func (m *Header) GetTotalTxs() int64 {
  2582. if m != nil {
  2583. return m.TotalTxs
  2584. }
  2585. return 0
  2586. }
  2587. func (m *Header) GetLastBlockId() BlockID {
  2588. if m != nil {
  2589. return m.LastBlockId
  2590. }
  2591. return BlockID{}
  2592. }
  2593. func (m *Header) GetLastCommitHash() []byte {
  2594. if m != nil {
  2595. return m.LastCommitHash
  2596. }
  2597. return nil
  2598. }
  2599. func (m *Header) GetDataHash() []byte {
  2600. if m != nil {
  2601. return m.DataHash
  2602. }
  2603. return nil
  2604. }
  2605. func (m *Header) GetValidatorsHash() []byte {
  2606. if m != nil {
  2607. return m.ValidatorsHash
  2608. }
  2609. return nil
  2610. }
  2611. func (m *Header) GetNextValidatorsHash() []byte {
  2612. if m != nil {
  2613. return m.NextValidatorsHash
  2614. }
  2615. return nil
  2616. }
  2617. func (m *Header) GetConsensusHash() []byte {
  2618. if m != nil {
  2619. return m.ConsensusHash
  2620. }
  2621. return nil
  2622. }
  2623. func (m *Header) GetAppHash() []byte {
  2624. if m != nil {
  2625. return m.AppHash
  2626. }
  2627. return nil
  2628. }
  2629. func (m *Header) GetLastResultsHash() []byte {
  2630. if m != nil {
  2631. return m.LastResultsHash
  2632. }
  2633. return nil
  2634. }
  2635. func (m *Header) GetEvidenceHash() []byte {
  2636. if m != nil {
  2637. return m.EvidenceHash
  2638. }
  2639. return nil
  2640. }
  2641. func (m *Header) GetProposerAddress() []byte {
  2642. if m != nil {
  2643. return m.ProposerAddress
  2644. }
  2645. return nil
  2646. }
  2647. type Version struct {
  2648. Block uint64 `protobuf:"varint,1,opt,name=Block,proto3" json:"Block,omitempty"`
  2649. App uint64 `protobuf:"varint,2,opt,name=App,proto3" json:"App,omitempty"`
  2650. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2651. XXX_unrecognized []byte `json:"-"`
  2652. XXX_sizecache int32 `json:"-"`
  2653. }
  2654. func (m *Version) Reset() { *m = Version{} }
  2655. func (m *Version) String() string { return proto.CompactTextString(m) }
  2656. func (*Version) ProtoMessage() {}
  2657. func (*Version) Descriptor() ([]byte, []int) {
  2658. return fileDescriptor_types_30d8160a6576aafe, []int{32}
  2659. }
  2660. func (m *Version) XXX_Unmarshal(b []byte) error {
  2661. return m.Unmarshal(b)
  2662. }
  2663. func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2664. if deterministic {
  2665. return xxx_messageInfo_Version.Marshal(b, m, deterministic)
  2666. } else {
  2667. b = b[:cap(b)]
  2668. n, err := m.MarshalTo(b)
  2669. if err != nil {
  2670. return nil, err
  2671. }
  2672. return b[:n], nil
  2673. }
  2674. }
  2675. func (dst *Version) XXX_Merge(src proto.Message) {
  2676. xxx_messageInfo_Version.Merge(dst, src)
  2677. }
  2678. func (m *Version) XXX_Size() int {
  2679. return m.Size()
  2680. }
  2681. func (m *Version) XXX_DiscardUnknown() {
  2682. xxx_messageInfo_Version.DiscardUnknown(m)
  2683. }
  2684. var xxx_messageInfo_Version proto.InternalMessageInfo
  2685. func (m *Version) GetBlock() uint64 {
  2686. if m != nil {
  2687. return m.Block
  2688. }
  2689. return 0
  2690. }
  2691. func (m *Version) GetApp() uint64 {
  2692. if m != nil {
  2693. return m.App
  2694. }
  2695. return 0
  2696. }
  2697. type BlockID struct {
  2698. Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
  2699. PartsHeader PartSetHeader `protobuf:"bytes,2,opt,name=parts_header,json=partsHeader" json:"parts_header"`
  2700. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2701. XXX_unrecognized []byte `json:"-"`
  2702. XXX_sizecache int32 `json:"-"`
  2703. }
  2704. func (m *BlockID) Reset() { *m = BlockID{} }
  2705. func (m *BlockID) String() string { return proto.CompactTextString(m) }
  2706. func (*BlockID) ProtoMessage() {}
  2707. func (*BlockID) Descriptor() ([]byte, []int) {
  2708. return fileDescriptor_types_30d8160a6576aafe, []int{33}
  2709. }
  2710. func (m *BlockID) XXX_Unmarshal(b []byte) error {
  2711. return m.Unmarshal(b)
  2712. }
  2713. func (m *BlockID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2714. if deterministic {
  2715. return xxx_messageInfo_BlockID.Marshal(b, m, deterministic)
  2716. } else {
  2717. b = b[:cap(b)]
  2718. n, err := m.MarshalTo(b)
  2719. if err != nil {
  2720. return nil, err
  2721. }
  2722. return b[:n], nil
  2723. }
  2724. }
  2725. func (dst *BlockID) XXX_Merge(src proto.Message) {
  2726. xxx_messageInfo_BlockID.Merge(dst, src)
  2727. }
  2728. func (m *BlockID) XXX_Size() int {
  2729. return m.Size()
  2730. }
  2731. func (m *BlockID) XXX_DiscardUnknown() {
  2732. xxx_messageInfo_BlockID.DiscardUnknown(m)
  2733. }
  2734. var xxx_messageInfo_BlockID proto.InternalMessageInfo
  2735. func (m *BlockID) GetHash() []byte {
  2736. if m != nil {
  2737. return m.Hash
  2738. }
  2739. return nil
  2740. }
  2741. func (m *BlockID) GetPartsHeader() PartSetHeader {
  2742. if m != nil {
  2743. return m.PartsHeader
  2744. }
  2745. return PartSetHeader{}
  2746. }
  2747. type PartSetHeader struct {
  2748. Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
  2749. Hash []byte `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
  2750. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2751. XXX_unrecognized []byte `json:"-"`
  2752. XXX_sizecache int32 `json:"-"`
  2753. }
  2754. func (m *PartSetHeader) Reset() { *m = PartSetHeader{} }
  2755. func (m *PartSetHeader) String() string { return proto.CompactTextString(m) }
  2756. func (*PartSetHeader) ProtoMessage() {}
  2757. func (*PartSetHeader) Descriptor() ([]byte, []int) {
  2758. return fileDescriptor_types_30d8160a6576aafe, []int{34}
  2759. }
  2760. func (m *PartSetHeader) XXX_Unmarshal(b []byte) error {
  2761. return m.Unmarshal(b)
  2762. }
  2763. func (m *PartSetHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2764. if deterministic {
  2765. return xxx_messageInfo_PartSetHeader.Marshal(b, m, deterministic)
  2766. } else {
  2767. b = b[:cap(b)]
  2768. n, err := m.MarshalTo(b)
  2769. if err != nil {
  2770. return nil, err
  2771. }
  2772. return b[:n], nil
  2773. }
  2774. }
  2775. func (dst *PartSetHeader) XXX_Merge(src proto.Message) {
  2776. xxx_messageInfo_PartSetHeader.Merge(dst, src)
  2777. }
  2778. func (m *PartSetHeader) XXX_Size() int {
  2779. return m.Size()
  2780. }
  2781. func (m *PartSetHeader) XXX_DiscardUnknown() {
  2782. xxx_messageInfo_PartSetHeader.DiscardUnknown(m)
  2783. }
  2784. var xxx_messageInfo_PartSetHeader proto.InternalMessageInfo
  2785. func (m *PartSetHeader) GetTotal() int32 {
  2786. if m != nil {
  2787. return m.Total
  2788. }
  2789. return 0
  2790. }
  2791. func (m *PartSetHeader) GetHash() []byte {
  2792. if m != nil {
  2793. return m.Hash
  2794. }
  2795. return nil
  2796. }
  2797. // Validator
  2798. type Validator struct {
  2799. Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
  2800. // PubKey pub_key = 2 [(gogoproto.nullable)=false];
  2801. Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"`
  2802. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2803. XXX_unrecognized []byte `json:"-"`
  2804. XXX_sizecache int32 `json:"-"`
  2805. }
  2806. func (m *Validator) Reset() { *m = Validator{} }
  2807. func (m *Validator) String() string { return proto.CompactTextString(m) }
  2808. func (*Validator) ProtoMessage() {}
  2809. func (*Validator) Descriptor() ([]byte, []int) {
  2810. return fileDescriptor_types_30d8160a6576aafe, []int{35}
  2811. }
  2812. func (m *Validator) XXX_Unmarshal(b []byte) error {
  2813. return m.Unmarshal(b)
  2814. }
  2815. func (m *Validator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2816. if deterministic {
  2817. return xxx_messageInfo_Validator.Marshal(b, m, deterministic)
  2818. } else {
  2819. b = b[:cap(b)]
  2820. n, err := m.MarshalTo(b)
  2821. if err != nil {
  2822. return nil, err
  2823. }
  2824. return b[:n], nil
  2825. }
  2826. }
  2827. func (dst *Validator) XXX_Merge(src proto.Message) {
  2828. xxx_messageInfo_Validator.Merge(dst, src)
  2829. }
  2830. func (m *Validator) XXX_Size() int {
  2831. return m.Size()
  2832. }
  2833. func (m *Validator) XXX_DiscardUnknown() {
  2834. xxx_messageInfo_Validator.DiscardUnknown(m)
  2835. }
  2836. var xxx_messageInfo_Validator proto.InternalMessageInfo
  2837. func (m *Validator) GetAddress() []byte {
  2838. if m != nil {
  2839. return m.Address
  2840. }
  2841. return nil
  2842. }
  2843. func (m *Validator) GetPower() int64 {
  2844. if m != nil {
  2845. return m.Power
  2846. }
  2847. return 0
  2848. }
  2849. // ValidatorUpdate
  2850. type ValidatorUpdate struct {
  2851. PubKey PubKey `protobuf:"bytes,1,opt,name=pub_key,json=pubKey" json:"pub_key"`
  2852. Power int64 `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"`
  2853. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2854. XXX_unrecognized []byte `json:"-"`
  2855. XXX_sizecache int32 `json:"-"`
  2856. }
  2857. func (m *ValidatorUpdate) Reset() { *m = ValidatorUpdate{} }
  2858. func (m *ValidatorUpdate) String() string { return proto.CompactTextString(m) }
  2859. func (*ValidatorUpdate) ProtoMessage() {}
  2860. func (*ValidatorUpdate) Descriptor() ([]byte, []int) {
  2861. return fileDescriptor_types_30d8160a6576aafe, []int{36}
  2862. }
  2863. func (m *ValidatorUpdate) XXX_Unmarshal(b []byte) error {
  2864. return m.Unmarshal(b)
  2865. }
  2866. func (m *ValidatorUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2867. if deterministic {
  2868. return xxx_messageInfo_ValidatorUpdate.Marshal(b, m, deterministic)
  2869. } else {
  2870. b = b[:cap(b)]
  2871. n, err := m.MarshalTo(b)
  2872. if err != nil {
  2873. return nil, err
  2874. }
  2875. return b[:n], nil
  2876. }
  2877. }
  2878. func (dst *ValidatorUpdate) XXX_Merge(src proto.Message) {
  2879. xxx_messageInfo_ValidatorUpdate.Merge(dst, src)
  2880. }
  2881. func (m *ValidatorUpdate) XXX_Size() int {
  2882. return m.Size()
  2883. }
  2884. func (m *ValidatorUpdate) XXX_DiscardUnknown() {
  2885. xxx_messageInfo_ValidatorUpdate.DiscardUnknown(m)
  2886. }
  2887. var xxx_messageInfo_ValidatorUpdate proto.InternalMessageInfo
  2888. func (m *ValidatorUpdate) GetPubKey() PubKey {
  2889. if m != nil {
  2890. return m.PubKey
  2891. }
  2892. return PubKey{}
  2893. }
  2894. func (m *ValidatorUpdate) GetPower() int64 {
  2895. if m != nil {
  2896. return m.Power
  2897. }
  2898. return 0
  2899. }
  2900. // VoteInfo
  2901. type VoteInfo struct {
  2902. Validator Validator `protobuf:"bytes,1,opt,name=validator" json:"validator"`
  2903. SignedLastBlock bool `protobuf:"varint,2,opt,name=signed_last_block,json=signedLastBlock,proto3" json:"signed_last_block,omitempty"`
  2904. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2905. XXX_unrecognized []byte `json:"-"`
  2906. XXX_sizecache int32 `json:"-"`
  2907. }
  2908. func (m *VoteInfo) Reset() { *m = VoteInfo{} }
  2909. func (m *VoteInfo) String() string { return proto.CompactTextString(m) }
  2910. func (*VoteInfo) ProtoMessage() {}
  2911. func (*VoteInfo) Descriptor() ([]byte, []int) {
  2912. return fileDescriptor_types_30d8160a6576aafe, []int{37}
  2913. }
  2914. func (m *VoteInfo) XXX_Unmarshal(b []byte) error {
  2915. return m.Unmarshal(b)
  2916. }
  2917. func (m *VoteInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2918. if deterministic {
  2919. return xxx_messageInfo_VoteInfo.Marshal(b, m, deterministic)
  2920. } else {
  2921. b = b[:cap(b)]
  2922. n, err := m.MarshalTo(b)
  2923. if err != nil {
  2924. return nil, err
  2925. }
  2926. return b[:n], nil
  2927. }
  2928. }
  2929. func (dst *VoteInfo) XXX_Merge(src proto.Message) {
  2930. xxx_messageInfo_VoteInfo.Merge(dst, src)
  2931. }
  2932. func (m *VoteInfo) XXX_Size() int {
  2933. return m.Size()
  2934. }
  2935. func (m *VoteInfo) XXX_DiscardUnknown() {
  2936. xxx_messageInfo_VoteInfo.DiscardUnknown(m)
  2937. }
  2938. var xxx_messageInfo_VoteInfo proto.InternalMessageInfo
  2939. func (m *VoteInfo) GetValidator() Validator {
  2940. if m != nil {
  2941. return m.Validator
  2942. }
  2943. return Validator{}
  2944. }
  2945. func (m *VoteInfo) GetSignedLastBlock() bool {
  2946. if m != nil {
  2947. return m.SignedLastBlock
  2948. }
  2949. return false
  2950. }
  2951. type PubKey struct {
  2952. Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
  2953. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
  2954. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2955. XXX_unrecognized []byte `json:"-"`
  2956. XXX_sizecache int32 `json:"-"`
  2957. }
  2958. func (m *PubKey) Reset() { *m = PubKey{} }
  2959. func (m *PubKey) String() string { return proto.CompactTextString(m) }
  2960. func (*PubKey) ProtoMessage() {}
  2961. func (*PubKey) Descriptor() ([]byte, []int) {
  2962. return fileDescriptor_types_30d8160a6576aafe, []int{38}
  2963. }
  2964. func (m *PubKey) XXX_Unmarshal(b []byte) error {
  2965. return m.Unmarshal(b)
  2966. }
  2967. func (m *PubKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2968. if deterministic {
  2969. return xxx_messageInfo_PubKey.Marshal(b, m, deterministic)
  2970. } else {
  2971. b = b[:cap(b)]
  2972. n, err := m.MarshalTo(b)
  2973. if err != nil {
  2974. return nil, err
  2975. }
  2976. return b[:n], nil
  2977. }
  2978. }
  2979. func (dst *PubKey) XXX_Merge(src proto.Message) {
  2980. xxx_messageInfo_PubKey.Merge(dst, src)
  2981. }
  2982. func (m *PubKey) XXX_Size() int {
  2983. return m.Size()
  2984. }
  2985. func (m *PubKey) XXX_DiscardUnknown() {
  2986. xxx_messageInfo_PubKey.DiscardUnknown(m)
  2987. }
  2988. var xxx_messageInfo_PubKey proto.InternalMessageInfo
  2989. func (m *PubKey) GetType() string {
  2990. if m != nil {
  2991. return m.Type
  2992. }
  2993. return ""
  2994. }
  2995. func (m *PubKey) GetData() []byte {
  2996. if m != nil {
  2997. return m.Data
  2998. }
  2999. return nil
  3000. }
  3001. type Evidence struct {
  3002. Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
  3003. Validator Validator `protobuf:"bytes,2,opt,name=validator" json:"validator"`
  3004. Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
  3005. Time time.Time `protobuf:"bytes,4,opt,name=time,stdtime" json:"time"`
  3006. TotalVotingPower int64 `protobuf:"varint,5,opt,name=total_voting_power,json=totalVotingPower,proto3" json:"total_voting_power,omitempty"`
  3007. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  3008. XXX_unrecognized []byte `json:"-"`
  3009. XXX_sizecache int32 `json:"-"`
  3010. }
  3011. func (m *Evidence) Reset() { *m = Evidence{} }
  3012. func (m *Evidence) String() string { return proto.CompactTextString(m) }
  3013. func (*Evidence) ProtoMessage() {}
  3014. func (*Evidence) Descriptor() ([]byte, []int) {
  3015. return fileDescriptor_types_30d8160a6576aafe, []int{39}
  3016. }
  3017. func (m *Evidence) XXX_Unmarshal(b []byte) error {
  3018. return m.Unmarshal(b)
  3019. }
  3020. func (m *Evidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  3021. if deterministic {
  3022. return xxx_messageInfo_Evidence.Marshal(b, m, deterministic)
  3023. } else {
  3024. b = b[:cap(b)]
  3025. n, err := m.MarshalTo(b)
  3026. if err != nil {
  3027. return nil, err
  3028. }
  3029. return b[:n], nil
  3030. }
  3031. }
  3032. func (dst *Evidence) XXX_Merge(src proto.Message) {
  3033. xxx_messageInfo_Evidence.Merge(dst, src)
  3034. }
  3035. func (m *Evidence) XXX_Size() int {
  3036. return m.Size()
  3037. }
  3038. func (m *Evidence) XXX_DiscardUnknown() {
  3039. xxx_messageInfo_Evidence.DiscardUnknown(m)
  3040. }
  3041. var xxx_messageInfo_Evidence proto.InternalMessageInfo
  3042. func (m *Evidence) GetType() string {
  3043. if m != nil {
  3044. return m.Type
  3045. }
  3046. return ""
  3047. }
  3048. func (m *Evidence) GetValidator() Validator {
  3049. if m != nil {
  3050. return m.Validator
  3051. }
  3052. return Validator{}
  3053. }
  3054. func (m *Evidence) GetHeight() int64 {
  3055. if m != nil {
  3056. return m.Height
  3057. }
  3058. return 0
  3059. }
  3060. func (m *Evidence) GetTime() time.Time {
  3061. if m != nil {
  3062. return m.Time
  3063. }
  3064. return time.Time{}
  3065. }
  3066. func (m *Evidence) GetTotalVotingPower() int64 {
  3067. if m != nil {
  3068. return m.TotalVotingPower
  3069. }
  3070. return 0
  3071. }
  3072. func init() {
  3073. proto.RegisterType((*Request)(nil), "types.Request")
  3074. golang_proto.RegisterType((*Request)(nil), "types.Request")
  3075. proto.RegisterType((*RequestEcho)(nil), "types.RequestEcho")
  3076. golang_proto.RegisterType((*RequestEcho)(nil), "types.RequestEcho")
  3077. proto.RegisterType((*RequestFlush)(nil), "types.RequestFlush")
  3078. golang_proto.RegisterType((*RequestFlush)(nil), "types.RequestFlush")
  3079. proto.RegisterType((*RequestInfo)(nil), "types.RequestInfo")
  3080. golang_proto.RegisterType((*RequestInfo)(nil), "types.RequestInfo")
  3081. proto.RegisterType((*RequestSetOption)(nil), "types.RequestSetOption")
  3082. golang_proto.RegisterType((*RequestSetOption)(nil), "types.RequestSetOption")
  3083. proto.RegisterType((*RequestInitChain)(nil), "types.RequestInitChain")
  3084. golang_proto.RegisterType((*RequestInitChain)(nil), "types.RequestInitChain")
  3085. proto.RegisterType((*RequestQuery)(nil), "types.RequestQuery")
  3086. golang_proto.RegisterType((*RequestQuery)(nil), "types.RequestQuery")
  3087. proto.RegisterType((*RequestBeginBlock)(nil), "types.RequestBeginBlock")
  3088. golang_proto.RegisterType((*RequestBeginBlock)(nil), "types.RequestBeginBlock")
  3089. proto.RegisterType((*RequestCheckTx)(nil), "types.RequestCheckTx")
  3090. golang_proto.RegisterType((*RequestCheckTx)(nil), "types.RequestCheckTx")
  3091. proto.RegisterType((*RequestDeliverTx)(nil), "types.RequestDeliverTx")
  3092. golang_proto.RegisterType((*RequestDeliverTx)(nil), "types.RequestDeliverTx")
  3093. proto.RegisterType((*RequestEndBlock)(nil), "types.RequestEndBlock")
  3094. golang_proto.RegisterType((*RequestEndBlock)(nil), "types.RequestEndBlock")
  3095. proto.RegisterType((*RequestCommit)(nil), "types.RequestCommit")
  3096. golang_proto.RegisterType((*RequestCommit)(nil), "types.RequestCommit")
  3097. proto.RegisterType((*Response)(nil), "types.Response")
  3098. golang_proto.RegisterType((*Response)(nil), "types.Response")
  3099. proto.RegisterType((*ResponseException)(nil), "types.ResponseException")
  3100. golang_proto.RegisterType((*ResponseException)(nil), "types.ResponseException")
  3101. proto.RegisterType((*ResponseEcho)(nil), "types.ResponseEcho")
  3102. golang_proto.RegisterType((*ResponseEcho)(nil), "types.ResponseEcho")
  3103. proto.RegisterType((*ResponseFlush)(nil), "types.ResponseFlush")
  3104. golang_proto.RegisterType((*ResponseFlush)(nil), "types.ResponseFlush")
  3105. proto.RegisterType((*ResponseInfo)(nil), "types.ResponseInfo")
  3106. golang_proto.RegisterType((*ResponseInfo)(nil), "types.ResponseInfo")
  3107. proto.RegisterType((*ResponseSetOption)(nil), "types.ResponseSetOption")
  3108. golang_proto.RegisterType((*ResponseSetOption)(nil), "types.ResponseSetOption")
  3109. proto.RegisterType((*ResponseInitChain)(nil), "types.ResponseInitChain")
  3110. golang_proto.RegisterType((*ResponseInitChain)(nil), "types.ResponseInitChain")
  3111. proto.RegisterType((*ResponseQuery)(nil), "types.ResponseQuery")
  3112. golang_proto.RegisterType((*ResponseQuery)(nil), "types.ResponseQuery")
  3113. proto.RegisterType((*ResponseBeginBlock)(nil), "types.ResponseBeginBlock")
  3114. golang_proto.RegisterType((*ResponseBeginBlock)(nil), "types.ResponseBeginBlock")
  3115. proto.RegisterType((*ResponseCheckTx)(nil), "types.ResponseCheckTx")
  3116. golang_proto.RegisterType((*ResponseCheckTx)(nil), "types.ResponseCheckTx")
  3117. proto.RegisterType((*ResponseDeliverTx)(nil), "types.ResponseDeliverTx")
  3118. golang_proto.RegisterType((*ResponseDeliverTx)(nil), "types.ResponseDeliverTx")
  3119. proto.RegisterType((*ResponseEndBlock)(nil), "types.ResponseEndBlock")
  3120. golang_proto.RegisterType((*ResponseEndBlock)(nil), "types.ResponseEndBlock")
  3121. proto.RegisterType((*ResponseCommit)(nil), "types.ResponseCommit")
  3122. golang_proto.RegisterType((*ResponseCommit)(nil), "types.ResponseCommit")
  3123. proto.RegisterType((*ConsensusParams)(nil), "types.ConsensusParams")
  3124. golang_proto.RegisterType((*ConsensusParams)(nil), "types.ConsensusParams")
  3125. proto.RegisterType((*BlockParams)(nil), "types.BlockParams")
  3126. golang_proto.RegisterType((*BlockParams)(nil), "types.BlockParams")
  3127. proto.RegisterType((*EvidenceParams)(nil), "types.EvidenceParams")
  3128. golang_proto.RegisterType((*EvidenceParams)(nil), "types.EvidenceParams")
  3129. proto.RegisterType((*ValidatorParams)(nil), "types.ValidatorParams")
  3130. golang_proto.RegisterType((*ValidatorParams)(nil), "types.ValidatorParams")
  3131. proto.RegisterType((*LastCommitInfo)(nil), "types.LastCommitInfo")
  3132. golang_proto.RegisterType((*LastCommitInfo)(nil), "types.LastCommitInfo")
  3133. proto.RegisterType((*Event)(nil), "types.Event")
  3134. golang_proto.RegisterType((*Event)(nil), "types.Event")
  3135. proto.RegisterType((*Header)(nil), "types.Header")
  3136. golang_proto.RegisterType((*Header)(nil), "types.Header")
  3137. proto.RegisterType((*Version)(nil), "types.Version")
  3138. golang_proto.RegisterType((*Version)(nil), "types.Version")
  3139. proto.RegisterType((*BlockID)(nil), "types.BlockID")
  3140. golang_proto.RegisterType((*BlockID)(nil), "types.BlockID")
  3141. proto.RegisterType((*PartSetHeader)(nil), "types.PartSetHeader")
  3142. golang_proto.RegisterType((*PartSetHeader)(nil), "types.PartSetHeader")
  3143. proto.RegisterType((*Validator)(nil), "types.Validator")
  3144. golang_proto.RegisterType((*Validator)(nil), "types.Validator")
  3145. proto.RegisterType((*ValidatorUpdate)(nil), "types.ValidatorUpdate")
  3146. golang_proto.RegisterType((*ValidatorUpdate)(nil), "types.ValidatorUpdate")
  3147. proto.RegisterType((*VoteInfo)(nil), "types.VoteInfo")
  3148. golang_proto.RegisterType((*VoteInfo)(nil), "types.VoteInfo")
  3149. proto.RegisterType((*PubKey)(nil), "types.PubKey")
  3150. golang_proto.RegisterType((*PubKey)(nil), "types.PubKey")
  3151. proto.RegisterType((*Evidence)(nil), "types.Evidence")
  3152. golang_proto.RegisterType((*Evidence)(nil), "types.Evidence")
  3153. proto.RegisterEnum("types.CheckTxType", CheckTxType_name, CheckTxType_value)
  3154. golang_proto.RegisterEnum("types.CheckTxType", CheckTxType_name, CheckTxType_value)
  3155. }
  3156. func (this *Request) Equal(that interface{}) bool {
  3157. if that == nil {
  3158. return this == nil
  3159. }
  3160. that1, ok := that.(*Request)
  3161. if !ok {
  3162. that2, ok := that.(Request)
  3163. if ok {
  3164. that1 = &that2
  3165. } else {
  3166. return false
  3167. }
  3168. }
  3169. if that1 == nil {
  3170. return this == nil
  3171. } else if this == nil {
  3172. return false
  3173. }
  3174. if that1.Value == nil {
  3175. if this.Value != nil {
  3176. return false
  3177. }
  3178. } else if this.Value == nil {
  3179. return false
  3180. } else if !this.Value.Equal(that1.Value) {
  3181. return false
  3182. }
  3183. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3184. return false
  3185. }
  3186. return true
  3187. }
  3188. func (this *Request_Echo) Equal(that interface{}) bool {
  3189. if that == nil {
  3190. return this == nil
  3191. }
  3192. that1, ok := that.(*Request_Echo)
  3193. if !ok {
  3194. that2, ok := that.(Request_Echo)
  3195. if ok {
  3196. that1 = &that2
  3197. } else {
  3198. return false
  3199. }
  3200. }
  3201. if that1 == nil {
  3202. return this == nil
  3203. } else if this == nil {
  3204. return false
  3205. }
  3206. if !this.Echo.Equal(that1.Echo) {
  3207. return false
  3208. }
  3209. return true
  3210. }
  3211. func (this *Request_Flush) Equal(that interface{}) bool {
  3212. if that == nil {
  3213. return this == nil
  3214. }
  3215. that1, ok := that.(*Request_Flush)
  3216. if !ok {
  3217. that2, ok := that.(Request_Flush)
  3218. if ok {
  3219. that1 = &that2
  3220. } else {
  3221. return false
  3222. }
  3223. }
  3224. if that1 == nil {
  3225. return this == nil
  3226. } else if this == nil {
  3227. return false
  3228. }
  3229. if !this.Flush.Equal(that1.Flush) {
  3230. return false
  3231. }
  3232. return true
  3233. }
  3234. func (this *Request_Info) Equal(that interface{}) bool {
  3235. if that == nil {
  3236. return this == nil
  3237. }
  3238. that1, ok := that.(*Request_Info)
  3239. if !ok {
  3240. that2, ok := that.(Request_Info)
  3241. if ok {
  3242. that1 = &that2
  3243. } else {
  3244. return false
  3245. }
  3246. }
  3247. if that1 == nil {
  3248. return this == nil
  3249. } else if this == nil {
  3250. return false
  3251. }
  3252. if !this.Info.Equal(that1.Info) {
  3253. return false
  3254. }
  3255. return true
  3256. }
  3257. func (this *Request_SetOption) Equal(that interface{}) bool {
  3258. if that == nil {
  3259. return this == nil
  3260. }
  3261. that1, ok := that.(*Request_SetOption)
  3262. if !ok {
  3263. that2, ok := that.(Request_SetOption)
  3264. if ok {
  3265. that1 = &that2
  3266. } else {
  3267. return false
  3268. }
  3269. }
  3270. if that1 == nil {
  3271. return this == nil
  3272. } else if this == nil {
  3273. return false
  3274. }
  3275. if !this.SetOption.Equal(that1.SetOption) {
  3276. return false
  3277. }
  3278. return true
  3279. }
  3280. func (this *Request_InitChain) Equal(that interface{}) bool {
  3281. if that == nil {
  3282. return this == nil
  3283. }
  3284. that1, ok := that.(*Request_InitChain)
  3285. if !ok {
  3286. that2, ok := that.(Request_InitChain)
  3287. if ok {
  3288. that1 = &that2
  3289. } else {
  3290. return false
  3291. }
  3292. }
  3293. if that1 == nil {
  3294. return this == nil
  3295. } else if this == nil {
  3296. return false
  3297. }
  3298. if !this.InitChain.Equal(that1.InitChain) {
  3299. return false
  3300. }
  3301. return true
  3302. }
  3303. func (this *Request_Query) Equal(that interface{}) bool {
  3304. if that == nil {
  3305. return this == nil
  3306. }
  3307. that1, ok := that.(*Request_Query)
  3308. if !ok {
  3309. that2, ok := that.(Request_Query)
  3310. if ok {
  3311. that1 = &that2
  3312. } else {
  3313. return false
  3314. }
  3315. }
  3316. if that1 == nil {
  3317. return this == nil
  3318. } else if this == nil {
  3319. return false
  3320. }
  3321. if !this.Query.Equal(that1.Query) {
  3322. return false
  3323. }
  3324. return true
  3325. }
  3326. func (this *Request_BeginBlock) Equal(that interface{}) bool {
  3327. if that == nil {
  3328. return this == nil
  3329. }
  3330. that1, ok := that.(*Request_BeginBlock)
  3331. if !ok {
  3332. that2, ok := that.(Request_BeginBlock)
  3333. if ok {
  3334. that1 = &that2
  3335. } else {
  3336. return false
  3337. }
  3338. }
  3339. if that1 == nil {
  3340. return this == nil
  3341. } else if this == nil {
  3342. return false
  3343. }
  3344. if !this.BeginBlock.Equal(that1.BeginBlock) {
  3345. return false
  3346. }
  3347. return true
  3348. }
  3349. func (this *Request_CheckTx) Equal(that interface{}) bool {
  3350. if that == nil {
  3351. return this == nil
  3352. }
  3353. that1, ok := that.(*Request_CheckTx)
  3354. if !ok {
  3355. that2, ok := that.(Request_CheckTx)
  3356. if ok {
  3357. that1 = &that2
  3358. } else {
  3359. return false
  3360. }
  3361. }
  3362. if that1 == nil {
  3363. return this == nil
  3364. } else if this == nil {
  3365. return false
  3366. }
  3367. if !this.CheckTx.Equal(that1.CheckTx) {
  3368. return false
  3369. }
  3370. return true
  3371. }
  3372. func (this *Request_DeliverTx) Equal(that interface{}) bool {
  3373. if that == nil {
  3374. return this == nil
  3375. }
  3376. that1, ok := that.(*Request_DeliverTx)
  3377. if !ok {
  3378. that2, ok := that.(Request_DeliverTx)
  3379. if ok {
  3380. that1 = &that2
  3381. } else {
  3382. return false
  3383. }
  3384. }
  3385. if that1 == nil {
  3386. return this == nil
  3387. } else if this == nil {
  3388. return false
  3389. }
  3390. if !this.DeliverTx.Equal(that1.DeliverTx) {
  3391. return false
  3392. }
  3393. return true
  3394. }
  3395. func (this *Request_EndBlock) Equal(that interface{}) bool {
  3396. if that == nil {
  3397. return this == nil
  3398. }
  3399. that1, ok := that.(*Request_EndBlock)
  3400. if !ok {
  3401. that2, ok := that.(Request_EndBlock)
  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.EndBlock.Equal(that1.EndBlock) {
  3414. return false
  3415. }
  3416. return true
  3417. }
  3418. func (this *Request_Commit) Equal(that interface{}) bool {
  3419. if that == nil {
  3420. return this == nil
  3421. }
  3422. that1, ok := that.(*Request_Commit)
  3423. if !ok {
  3424. that2, ok := that.(Request_Commit)
  3425. if ok {
  3426. that1 = &that2
  3427. } else {
  3428. return false
  3429. }
  3430. }
  3431. if that1 == nil {
  3432. return this == nil
  3433. } else if this == nil {
  3434. return false
  3435. }
  3436. if !this.Commit.Equal(that1.Commit) {
  3437. return false
  3438. }
  3439. return true
  3440. }
  3441. func (this *RequestEcho) Equal(that interface{}) bool {
  3442. if that == nil {
  3443. return this == nil
  3444. }
  3445. that1, ok := that.(*RequestEcho)
  3446. if !ok {
  3447. that2, ok := that.(RequestEcho)
  3448. if ok {
  3449. that1 = &that2
  3450. } else {
  3451. return false
  3452. }
  3453. }
  3454. if that1 == nil {
  3455. return this == nil
  3456. } else if this == nil {
  3457. return false
  3458. }
  3459. if this.Message != that1.Message {
  3460. return false
  3461. }
  3462. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3463. return false
  3464. }
  3465. return true
  3466. }
  3467. func (this *RequestFlush) Equal(that interface{}) bool {
  3468. if that == nil {
  3469. return this == nil
  3470. }
  3471. that1, ok := that.(*RequestFlush)
  3472. if !ok {
  3473. that2, ok := that.(RequestFlush)
  3474. if ok {
  3475. that1 = &that2
  3476. } else {
  3477. return false
  3478. }
  3479. }
  3480. if that1 == nil {
  3481. return this == nil
  3482. } else if this == nil {
  3483. return false
  3484. }
  3485. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3486. return false
  3487. }
  3488. return true
  3489. }
  3490. func (this *RequestInfo) Equal(that interface{}) bool {
  3491. if that == nil {
  3492. return this == nil
  3493. }
  3494. that1, ok := that.(*RequestInfo)
  3495. if !ok {
  3496. that2, ok := that.(RequestInfo)
  3497. if ok {
  3498. that1 = &that2
  3499. } else {
  3500. return false
  3501. }
  3502. }
  3503. if that1 == nil {
  3504. return this == nil
  3505. } else if this == nil {
  3506. return false
  3507. }
  3508. if this.Version != that1.Version {
  3509. return false
  3510. }
  3511. if this.BlockVersion != that1.BlockVersion {
  3512. return false
  3513. }
  3514. if this.P2PVersion != that1.P2PVersion {
  3515. return false
  3516. }
  3517. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3518. return false
  3519. }
  3520. return true
  3521. }
  3522. func (this *RequestSetOption) Equal(that interface{}) bool {
  3523. if that == nil {
  3524. return this == nil
  3525. }
  3526. that1, ok := that.(*RequestSetOption)
  3527. if !ok {
  3528. that2, ok := that.(RequestSetOption)
  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.Key != that1.Key {
  3541. return false
  3542. }
  3543. if this.Value != that1.Value {
  3544. return false
  3545. }
  3546. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3547. return false
  3548. }
  3549. return true
  3550. }
  3551. func (this *RequestInitChain) Equal(that interface{}) bool {
  3552. if that == nil {
  3553. return this == nil
  3554. }
  3555. that1, ok := that.(*RequestInitChain)
  3556. if !ok {
  3557. that2, ok := that.(RequestInitChain)
  3558. if ok {
  3559. that1 = &that2
  3560. } else {
  3561. return false
  3562. }
  3563. }
  3564. if that1 == nil {
  3565. return this == nil
  3566. } else if this == nil {
  3567. return false
  3568. }
  3569. if !this.Time.Equal(that1.Time) {
  3570. return false
  3571. }
  3572. if this.ChainId != that1.ChainId {
  3573. return false
  3574. }
  3575. if !this.ConsensusParams.Equal(that1.ConsensusParams) {
  3576. return false
  3577. }
  3578. if len(this.Validators) != len(that1.Validators) {
  3579. return false
  3580. }
  3581. for i := range this.Validators {
  3582. if !this.Validators[i].Equal(&that1.Validators[i]) {
  3583. return false
  3584. }
  3585. }
  3586. if !bytes.Equal(this.AppStateBytes, that1.AppStateBytes) {
  3587. return false
  3588. }
  3589. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3590. return false
  3591. }
  3592. return true
  3593. }
  3594. func (this *RequestQuery) Equal(that interface{}) bool {
  3595. if that == nil {
  3596. return this == nil
  3597. }
  3598. that1, ok := that.(*RequestQuery)
  3599. if !ok {
  3600. that2, ok := that.(RequestQuery)
  3601. if ok {
  3602. that1 = &that2
  3603. } else {
  3604. return false
  3605. }
  3606. }
  3607. if that1 == nil {
  3608. return this == nil
  3609. } else if this == nil {
  3610. return false
  3611. }
  3612. if !bytes.Equal(this.Data, that1.Data) {
  3613. return false
  3614. }
  3615. if this.Path != that1.Path {
  3616. return false
  3617. }
  3618. if this.Height != that1.Height {
  3619. return false
  3620. }
  3621. if this.Prove != that1.Prove {
  3622. return false
  3623. }
  3624. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3625. return false
  3626. }
  3627. return true
  3628. }
  3629. func (this *RequestBeginBlock) Equal(that interface{}) bool {
  3630. if that == nil {
  3631. return this == nil
  3632. }
  3633. that1, ok := that.(*RequestBeginBlock)
  3634. if !ok {
  3635. that2, ok := that.(RequestBeginBlock)
  3636. if ok {
  3637. that1 = &that2
  3638. } else {
  3639. return false
  3640. }
  3641. }
  3642. if that1 == nil {
  3643. return this == nil
  3644. } else if this == nil {
  3645. return false
  3646. }
  3647. if !bytes.Equal(this.Hash, that1.Hash) {
  3648. return false
  3649. }
  3650. if !this.Header.Equal(&that1.Header) {
  3651. return false
  3652. }
  3653. if !this.LastCommitInfo.Equal(&that1.LastCommitInfo) {
  3654. return false
  3655. }
  3656. if len(this.ByzantineValidators) != len(that1.ByzantineValidators) {
  3657. return false
  3658. }
  3659. for i := range this.ByzantineValidators {
  3660. if !this.ByzantineValidators[i].Equal(&that1.ByzantineValidators[i]) {
  3661. return false
  3662. }
  3663. }
  3664. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3665. return false
  3666. }
  3667. return true
  3668. }
  3669. func (this *RequestCheckTx) Equal(that interface{}) bool {
  3670. if that == nil {
  3671. return this == nil
  3672. }
  3673. that1, ok := that.(*RequestCheckTx)
  3674. if !ok {
  3675. that2, ok := that.(RequestCheckTx)
  3676. if ok {
  3677. that1 = &that2
  3678. } else {
  3679. return false
  3680. }
  3681. }
  3682. if that1 == nil {
  3683. return this == nil
  3684. } else if this == nil {
  3685. return false
  3686. }
  3687. if !bytes.Equal(this.Tx, that1.Tx) {
  3688. return false
  3689. }
  3690. if this.Type != that1.Type {
  3691. return false
  3692. }
  3693. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3694. return false
  3695. }
  3696. return true
  3697. }
  3698. func (this *RequestDeliverTx) Equal(that interface{}) bool {
  3699. if that == nil {
  3700. return this == nil
  3701. }
  3702. that1, ok := that.(*RequestDeliverTx)
  3703. if !ok {
  3704. that2, ok := that.(RequestDeliverTx)
  3705. if ok {
  3706. that1 = &that2
  3707. } else {
  3708. return false
  3709. }
  3710. }
  3711. if that1 == nil {
  3712. return this == nil
  3713. } else if this == nil {
  3714. return false
  3715. }
  3716. if !bytes.Equal(this.Tx, that1.Tx) {
  3717. return false
  3718. }
  3719. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3720. return false
  3721. }
  3722. return true
  3723. }
  3724. func (this *RequestEndBlock) Equal(that interface{}) bool {
  3725. if that == nil {
  3726. return this == nil
  3727. }
  3728. that1, ok := that.(*RequestEndBlock)
  3729. if !ok {
  3730. that2, ok := that.(RequestEndBlock)
  3731. if ok {
  3732. that1 = &that2
  3733. } else {
  3734. return false
  3735. }
  3736. }
  3737. if that1 == nil {
  3738. return this == nil
  3739. } else if this == nil {
  3740. return false
  3741. }
  3742. if this.Height != that1.Height {
  3743. return false
  3744. }
  3745. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3746. return false
  3747. }
  3748. return true
  3749. }
  3750. func (this *RequestCommit) Equal(that interface{}) bool {
  3751. if that == nil {
  3752. return this == nil
  3753. }
  3754. that1, ok := that.(*RequestCommit)
  3755. if !ok {
  3756. that2, ok := that.(RequestCommit)
  3757. if ok {
  3758. that1 = &that2
  3759. } else {
  3760. return false
  3761. }
  3762. }
  3763. if that1 == nil {
  3764. return this == nil
  3765. } else if this == nil {
  3766. return false
  3767. }
  3768. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3769. return false
  3770. }
  3771. return true
  3772. }
  3773. func (this *Response) Equal(that interface{}) bool {
  3774. if that == nil {
  3775. return this == nil
  3776. }
  3777. that1, ok := that.(*Response)
  3778. if !ok {
  3779. that2, ok := that.(Response)
  3780. if ok {
  3781. that1 = &that2
  3782. } else {
  3783. return false
  3784. }
  3785. }
  3786. if that1 == nil {
  3787. return this == nil
  3788. } else if this == nil {
  3789. return false
  3790. }
  3791. if that1.Value == nil {
  3792. if this.Value != nil {
  3793. return false
  3794. }
  3795. } else if this.Value == nil {
  3796. return false
  3797. } else if !this.Value.Equal(that1.Value) {
  3798. return false
  3799. }
  3800. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  3801. return false
  3802. }
  3803. return true
  3804. }
  3805. func (this *Response_Exception) Equal(that interface{}) bool {
  3806. if that == nil {
  3807. return this == nil
  3808. }
  3809. that1, ok := that.(*Response_Exception)
  3810. if !ok {
  3811. that2, ok := that.(Response_Exception)
  3812. if ok {
  3813. that1 = &that2
  3814. } else {
  3815. return false
  3816. }
  3817. }
  3818. if that1 == nil {
  3819. return this == nil
  3820. } else if this == nil {
  3821. return false
  3822. }
  3823. if !this.Exception.Equal(that1.Exception) {
  3824. return false
  3825. }
  3826. return true
  3827. }
  3828. func (this *Response_Echo) Equal(that interface{}) bool {
  3829. if that == nil {
  3830. return this == nil
  3831. }
  3832. that1, ok := that.(*Response_Echo)
  3833. if !ok {
  3834. that2, ok := that.(Response_Echo)
  3835. if ok {
  3836. that1 = &that2
  3837. } else {
  3838. return false
  3839. }
  3840. }
  3841. if that1 == nil {
  3842. return this == nil
  3843. } else if this == nil {
  3844. return false
  3845. }
  3846. if !this.Echo.Equal(that1.Echo) {
  3847. return false
  3848. }
  3849. return true
  3850. }
  3851. func (this *Response_Flush) Equal(that interface{}) bool {
  3852. if that == nil {
  3853. return this == nil
  3854. }
  3855. that1, ok := that.(*Response_Flush)
  3856. if !ok {
  3857. that2, ok := that.(Response_Flush)
  3858. if ok {
  3859. that1 = &that2
  3860. } else {
  3861. return false
  3862. }
  3863. }
  3864. if that1 == nil {
  3865. return this == nil
  3866. } else if this == nil {
  3867. return false
  3868. }
  3869. if !this.Flush.Equal(that1.Flush) {
  3870. return false
  3871. }
  3872. return true
  3873. }
  3874. func (this *Response_Info) Equal(that interface{}) bool {
  3875. if that == nil {
  3876. return this == nil
  3877. }
  3878. that1, ok := that.(*Response_Info)
  3879. if !ok {
  3880. that2, ok := that.(Response_Info)
  3881. if ok {
  3882. that1 = &that2
  3883. } else {
  3884. return false
  3885. }
  3886. }
  3887. if that1 == nil {
  3888. return this == nil
  3889. } else if this == nil {
  3890. return false
  3891. }
  3892. if !this.Info.Equal(that1.Info) {
  3893. return false
  3894. }
  3895. return true
  3896. }
  3897. func (this *Response_SetOption) Equal(that interface{}) bool {
  3898. if that == nil {
  3899. return this == nil
  3900. }
  3901. that1, ok := that.(*Response_SetOption)
  3902. if !ok {
  3903. that2, ok := that.(Response_SetOption)
  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.SetOption.Equal(that1.SetOption) {
  3916. return false
  3917. }
  3918. return true
  3919. }
  3920. func (this *Response_InitChain) Equal(that interface{}) bool {
  3921. if that == nil {
  3922. return this == nil
  3923. }
  3924. that1, ok := that.(*Response_InitChain)
  3925. if !ok {
  3926. that2, ok := that.(Response_InitChain)
  3927. if ok {
  3928. that1 = &that2
  3929. } else {
  3930. return false
  3931. }
  3932. }
  3933. if that1 == nil {
  3934. return this == nil
  3935. } else if this == nil {
  3936. return false
  3937. }
  3938. if !this.InitChain.Equal(that1.InitChain) {
  3939. return false
  3940. }
  3941. return true
  3942. }
  3943. func (this *Response_Query) Equal(that interface{}) bool {
  3944. if that == nil {
  3945. return this == nil
  3946. }
  3947. that1, ok := that.(*Response_Query)
  3948. if !ok {
  3949. that2, ok := that.(Response_Query)
  3950. if ok {
  3951. that1 = &that2
  3952. } else {
  3953. return false
  3954. }
  3955. }
  3956. if that1 == nil {
  3957. return this == nil
  3958. } else if this == nil {
  3959. return false
  3960. }
  3961. if !this.Query.Equal(that1.Query) {
  3962. return false
  3963. }
  3964. return true
  3965. }
  3966. func (this *Response_BeginBlock) Equal(that interface{}) bool {
  3967. if that == nil {
  3968. return this == nil
  3969. }
  3970. that1, ok := that.(*Response_BeginBlock)
  3971. if !ok {
  3972. that2, ok := that.(Response_BeginBlock)
  3973. if ok {
  3974. that1 = &that2
  3975. } else {
  3976. return false
  3977. }
  3978. }
  3979. if that1 == nil {
  3980. return this == nil
  3981. } else if this == nil {
  3982. return false
  3983. }
  3984. if !this.BeginBlock.Equal(that1.BeginBlock) {
  3985. return false
  3986. }
  3987. return true
  3988. }
  3989. func (this *Response_CheckTx) Equal(that interface{}) bool {
  3990. if that == nil {
  3991. return this == nil
  3992. }
  3993. that1, ok := that.(*Response_CheckTx)
  3994. if !ok {
  3995. that2, ok := that.(Response_CheckTx)
  3996. if ok {
  3997. that1 = &that2
  3998. } else {
  3999. return false
  4000. }
  4001. }
  4002. if that1 == nil {
  4003. return this == nil
  4004. } else if this == nil {
  4005. return false
  4006. }
  4007. if !this.CheckTx.Equal(that1.CheckTx) {
  4008. return false
  4009. }
  4010. return true
  4011. }
  4012. func (this *Response_DeliverTx) Equal(that interface{}) bool {
  4013. if that == nil {
  4014. return this == nil
  4015. }
  4016. that1, ok := that.(*Response_DeliverTx)
  4017. if !ok {
  4018. that2, ok := that.(Response_DeliverTx)
  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.DeliverTx.Equal(that1.DeliverTx) {
  4031. return false
  4032. }
  4033. return true
  4034. }
  4035. func (this *Response_EndBlock) Equal(that interface{}) bool {
  4036. if that == nil {
  4037. return this == nil
  4038. }
  4039. that1, ok := that.(*Response_EndBlock)
  4040. if !ok {
  4041. that2, ok := that.(Response_EndBlock)
  4042. if ok {
  4043. that1 = &that2
  4044. } else {
  4045. return false
  4046. }
  4047. }
  4048. if that1 == nil {
  4049. return this == nil
  4050. } else if this == nil {
  4051. return false
  4052. }
  4053. if !this.EndBlock.Equal(that1.EndBlock) {
  4054. return false
  4055. }
  4056. return true
  4057. }
  4058. func (this *Response_Commit) Equal(that interface{}) bool {
  4059. if that == nil {
  4060. return this == nil
  4061. }
  4062. that1, ok := that.(*Response_Commit)
  4063. if !ok {
  4064. that2, ok := that.(Response_Commit)
  4065. if ok {
  4066. that1 = &that2
  4067. } else {
  4068. return false
  4069. }
  4070. }
  4071. if that1 == nil {
  4072. return this == nil
  4073. } else if this == nil {
  4074. return false
  4075. }
  4076. if !this.Commit.Equal(that1.Commit) {
  4077. return false
  4078. }
  4079. return true
  4080. }
  4081. func (this *ResponseException) Equal(that interface{}) bool {
  4082. if that == nil {
  4083. return this == nil
  4084. }
  4085. that1, ok := that.(*ResponseException)
  4086. if !ok {
  4087. that2, ok := that.(ResponseException)
  4088. if ok {
  4089. that1 = &that2
  4090. } else {
  4091. return false
  4092. }
  4093. }
  4094. if that1 == nil {
  4095. return this == nil
  4096. } else if this == nil {
  4097. return false
  4098. }
  4099. if this.Error != that1.Error {
  4100. return false
  4101. }
  4102. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4103. return false
  4104. }
  4105. return true
  4106. }
  4107. func (this *ResponseEcho) Equal(that interface{}) bool {
  4108. if that == nil {
  4109. return this == nil
  4110. }
  4111. that1, ok := that.(*ResponseEcho)
  4112. if !ok {
  4113. that2, ok := that.(ResponseEcho)
  4114. if ok {
  4115. that1 = &that2
  4116. } else {
  4117. return false
  4118. }
  4119. }
  4120. if that1 == nil {
  4121. return this == nil
  4122. } else if this == nil {
  4123. return false
  4124. }
  4125. if this.Message != that1.Message {
  4126. return false
  4127. }
  4128. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4129. return false
  4130. }
  4131. return true
  4132. }
  4133. func (this *ResponseFlush) Equal(that interface{}) bool {
  4134. if that == nil {
  4135. return this == nil
  4136. }
  4137. that1, ok := that.(*ResponseFlush)
  4138. if !ok {
  4139. that2, ok := that.(ResponseFlush)
  4140. if ok {
  4141. that1 = &that2
  4142. } else {
  4143. return false
  4144. }
  4145. }
  4146. if that1 == nil {
  4147. return this == nil
  4148. } else if this == nil {
  4149. return false
  4150. }
  4151. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4152. return false
  4153. }
  4154. return true
  4155. }
  4156. func (this *ResponseInfo) Equal(that interface{}) bool {
  4157. if that == nil {
  4158. return this == nil
  4159. }
  4160. that1, ok := that.(*ResponseInfo)
  4161. if !ok {
  4162. that2, ok := that.(ResponseInfo)
  4163. if ok {
  4164. that1 = &that2
  4165. } else {
  4166. return false
  4167. }
  4168. }
  4169. if that1 == nil {
  4170. return this == nil
  4171. } else if this == nil {
  4172. return false
  4173. }
  4174. if this.Data != that1.Data {
  4175. return false
  4176. }
  4177. if this.Version != that1.Version {
  4178. return false
  4179. }
  4180. if this.AppVersion != that1.AppVersion {
  4181. return false
  4182. }
  4183. if this.LastBlockHeight != that1.LastBlockHeight {
  4184. return false
  4185. }
  4186. if !bytes.Equal(this.LastBlockAppHash, that1.LastBlockAppHash) {
  4187. return false
  4188. }
  4189. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4190. return false
  4191. }
  4192. return true
  4193. }
  4194. func (this *ResponseSetOption) Equal(that interface{}) bool {
  4195. if that == nil {
  4196. return this == nil
  4197. }
  4198. that1, ok := that.(*ResponseSetOption)
  4199. if !ok {
  4200. that2, ok := that.(ResponseSetOption)
  4201. if ok {
  4202. that1 = &that2
  4203. } else {
  4204. return false
  4205. }
  4206. }
  4207. if that1 == nil {
  4208. return this == nil
  4209. } else if this == nil {
  4210. return false
  4211. }
  4212. if this.Code != that1.Code {
  4213. return false
  4214. }
  4215. if this.Log != that1.Log {
  4216. return false
  4217. }
  4218. if this.Info != that1.Info {
  4219. return false
  4220. }
  4221. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4222. return false
  4223. }
  4224. return true
  4225. }
  4226. func (this *ResponseInitChain) Equal(that interface{}) bool {
  4227. if that == nil {
  4228. return this == nil
  4229. }
  4230. that1, ok := that.(*ResponseInitChain)
  4231. if !ok {
  4232. that2, ok := that.(ResponseInitChain)
  4233. if ok {
  4234. that1 = &that2
  4235. } else {
  4236. return false
  4237. }
  4238. }
  4239. if that1 == nil {
  4240. return this == nil
  4241. } else if this == nil {
  4242. return false
  4243. }
  4244. if !this.ConsensusParams.Equal(that1.ConsensusParams) {
  4245. return false
  4246. }
  4247. if len(this.Validators) != len(that1.Validators) {
  4248. return false
  4249. }
  4250. for i := range this.Validators {
  4251. if !this.Validators[i].Equal(&that1.Validators[i]) {
  4252. return false
  4253. }
  4254. }
  4255. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4256. return false
  4257. }
  4258. return true
  4259. }
  4260. func (this *ResponseQuery) Equal(that interface{}) bool {
  4261. if that == nil {
  4262. return this == nil
  4263. }
  4264. that1, ok := that.(*ResponseQuery)
  4265. if !ok {
  4266. that2, ok := that.(ResponseQuery)
  4267. if ok {
  4268. that1 = &that2
  4269. } else {
  4270. return false
  4271. }
  4272. }
  4273. if that1 == nil {
  4274. return this == nil
  4275. } else if this == nil {
  4276. return false
  4277. }
  4278. if this.Code != that1.Code {
  4279. return false
  4280. }
  4281. if this.Log != that1.Log {
  4282. return false
  4283. }
  4284. if this.Info != that1.Info {
  4285. return false
  4286. }
  4287. if this.Index != that1.Index {
  4288. return false
  4289. }
  4290. if !bytes.Equal(this.Key, that1.Key) {
  4291. return false
  4292. }
  4293. if !bytes.Equal(this.Value, that1.Value) {
  4294. return false
  4295. }
  4296. if !this.Proof.Equal(that1.Proof) {
  4297. return false
  4298. }
  4299. if this.Height != that1.Height {
  4300. return false
  4301. }
  4302. if this.Codespace != that1.Codespace {
  4303. return false
  4304. }
  4305. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4306. return false
  4307. }
  4308. return true
  4309. }
  4310. func (this *ResponseBeginBlock) Equal(that interface{}) bool {
  4311. if that == nil {
  4312. return this == nil
  4313. }
  4314. that1, ok := that.(*ResponseBeginBlock)
  4315. if !ok {
  4316. that2, ok := that.(ResponseBeginBlock)
  4317. if ok {
  4318. that1 = &that2
  4319. } else {
  4320. return false
  4321. }
  4322. }
  4323. if that1 == nil {
  4324. return this == nil
  4325. } else if this == nil {
  4326. return false
  4327. }
  4328. if len(this.Events) != len(that1.Events) {
  4329. return false
  4330. }
  4331. for i := range this.Events {
  4332. if !this.Events[i].Equal(&that1.Events[i]) {
  4333. return false
  4334. }
  4335. }
  4336. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4337. return false
  4338. }
  4339. return true
  4340. }
  4341. func (this *ResponseCheckTx) Equal(that interface{}) bool {
  4342. if that == nil {
  4343. return this == nil
  4344. }
  4345. that1, ok := that.(*ResponseCheckTx)
  4346. if !ok {
  4347. that2, ok := that.(ResponseCheckTx)
  4348. if ok {
  4349. that1 = &that2
  4350. } else {
  4351. return false
  4352. }
  4353. }
  4354. if that1 == nil {
  4355. return this == nil
  4356. } else if this == nil {
  4357. return false
  4358. }
  4359. if this.Code != that1.Code {
  4360. return false
  4361. }
  4362. if !bytes.Equal(this.Data, that1.Data) {
  4363. return false
  4364. }
  4365. if this.Log != that1.Log {
  4366. return false
  4367. }
  4368. if this.Info != that1.Info {
  4369. return false
  4370. }
  4371. if this.GasWanted != that1.GasWanted {
  4372. return false
  4373. }
  4374. if this.GasUsed != that1.GasUsed {
  4375. return false
  4376. }
  4377. if len(this.Events) != len(that1.Events) {
  4378. return false
  4379. }
  4380. for i := range this.Events {
  4381. if !this.Events[i].Equal(&that1.Events[i]) {
  4382. return false
  4383. }
  4384. }
  4385. if this.Codespace != that1.Codespace {
  4386. return false
  4387. }
  4388. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4389. return false
  4390. }
  4391. return true
  4392. }
  4393. func (this *ResponseDeliverTx) Equal(that interface{}) bool {
  4394. if that == nil {
  4395. return this == nil
  4396. }
  4397. that1, ok := that.(*ResponseDeliverTx)
  4398. if !ok {
  4399. that2, ok := that.(ResponseDeliverTx)
  4400. if ok {
  4401. that1 = &that2
  4402. } else {
  4403. return false
  4404. }
  4405. }
  4406. if that1 == nil {
  4407. return this == nil
  4408. } else if this == nil {
  4409. return false
  4410. }
  4411. if this.Code != that1.Code {
  4412. return false
  4413. }
  4414. if !bytes.Equal(this.Data, that1.Data) {
  4415. return false
  4416. }
  4417. if this.Log != that1.Log {
  4418. return false
  4419. }
  4420. if this.Info != that1.Info {
  4421. return false
  4422. }
  4423. if this.GasWanted != that1.GasWanted {
  4424. return false
  4425. }
  4426. if this.GasUsed != that1.GasUsed {
  4427. return false
  4428. }
  4429. if len(this.Events) != len(that1.Events) {
  4430. return false
  4431. }
  4432. for i := range this.Events {
  4433. if !this.Events[i].Equal(&that1.Events[i]) {
  4434. return false
  4435. }
  4436. }
  4437. if this.Codespace != that1.Codespace {
  4438. return false
  4439. }
  4440. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4441. return false
  4442. }
  4443. return true
  4444. }
  4445. func (this *ResponseEndBlock) Equal(that interface{}) bool {
  4446. if that == nil {
  4447. return this == nil
  4448. }
  4449. that1, ok := that.(*ResponseEndBlock)
  4450. if !ok {
  4451. that2, ok := that.(ResponseEndBlock)
  4452. if ok {
  4453. that1 = &that2
  4454. } else {
  4455. return false
  4456. }
  4457. }
  4458. if that1 == nil {
  4459. return this == nil
  4460. } else if this == nil {
  4461. return false
  4462. }
  4463. if len(this.ValidatorUpdates) != len(that1.ValidatorUpdates) {
  4464. return false
  4465. }
  4466. for i := range this.ValidatorUpdates {
  4467. if !this.ValidatorUpdates[i].Equal(&that1.ValidatorUpdates[i]) {
  4468. return false
  4469. }
  4470. }
  4471. if !this.ConsensusParamUpdates.Equal(that1.ConsensusParamUpdates) {
  4472. return false
  4473. }
  4474. if len(this.Events) != len(that1.Events) {
  4475. return false
  4476. }
  4477. for i := range this.Events {
  4478. if !this.Events[i].Equal(&that1.Events[i]) {
  4479. return false
  4480. }
  4481. }
  4482. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4483. return false
  4484. }
  4485. return true
  4486. }
  4487. func (this *ResponseCommit) Equal(that interface{}) bool {
  4488. if that == nil {
  4489. return this == nil
  4490. }
  4491. that1, ok := that.(*ResponseCommit)
  4492. if !ok {
  4493. that2, ok := that.(ResponseCommit)
  4494. if ok {
  4495. that1 = &that2
  4496. } else {
  4497. return false
  4498. }
  4499. }
  4500. if that1 == nil {
  4501. return this == nil
  4502. } else if this == nil {
  4503. return false
  4504. }
  4505. if !bytes.Equal(this.Data, that1.Data) {
  4506. return false
  4507. }
  4508. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4509. return false
  4510. }
  4511. return true
  4512. }
  4513. func (this *ConsensusParams) Equal(that interface{}) bool {
  4514. if that == nil {
  4515. return this == nil
  4516. }
  4517. that1, ok := that.(*ConsensusParams)
  4518. if !ok {
  4519. that2, ok := that.(ConsensusParams)
  4520. if ok {
  4521. that1 = &that2
  4522. } else {
  4523. return false
  4524. }
  4525. }
  4526. if that1 == nil {
  4527. return this == nil
  4528. } else if this == nil {
  4529. return false
  4530. }
  4531. if !this.Block.Equal(that1.Block) {
  4532. return false
  4533. }
  4534. if !this.Evidence.Equal(that1.Evidence) {
  4535. return false
  4536. }
  4537. if !this.Validator.Equal(that1.Validator) {
  4538. return false
  4539. }
  4540. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4541. return false
  4542. }
  4543. return true
  4544. }
  4545. func (this *BlockParams) Equal(that interface{}) bool {
  4546. if that == nil {
  4547. return this == nil
  4548. }
  4549. that1, ok := that.(*BlockParams)
  4550. if !ok {
  4551. that2, ok := that.(BlockParams)
  4552. if ok {
  4553. that1 = &that2
  4554. } else {
  4555. return false
  4556. }
  4557. }
  4558. if that1 == nil {
  4559. return this == nil
  4560. } else if this == nil {
  4561. return false
  4562. }
  4563. if this.MaxBytes != that1.MaxBytes {
  4564. return false
  4565. }
  4566. if this.MaxGas != that1.MaxGas {
  4567. return false
  4568. }
  4569. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4570. return false
  4571. }
  4572. return true
  4573. }
  4574. func (this *EvidenceParams) Equal(that interface{}) bool {
  4575. if that == nil {
  4576. return this == nil
  4577. }
  4578. that1, ok := that.(*EvidenceParams)
  4579. if !ok {
  4580. that2, ok := that.(EvidenceParams)
  4581. if ok {
  4582. that1 = &that2
  4583. } else {
  4584. return false
  4585. }
  4586. }
  4587. if that1 == nil {
  4588. return this == nil
  4589. } else if this == nil {
  4590. return false
  4591. }
  4592. if this.MaxAge != that1.MaxAge {
  4593. return false
  4594. }
  4595. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4596. return false
  4597. }
  4598. return true
  4599. }
  4600. func (this *ValidatorParams) Equal(that interface{}) bool {
  4601. if that == nil {
  4602. return this == nil
  4603. }
  4604. that1, ok := that.(*ValidatorParams)
  4605. if !ok {
  4606. that2, ok := that.(ValidatorParams)
  4607. if ok {
  4608. that1 = &that2
  4609. } else {
  4610. return false
  4611. }
  4612. }
  4613. if that1 == nil {
  4614. return this == nil
  4615. } else if this == nil {
  4616. return false
  4617. }
  4618. if len(this.PubKeyTypes) != len(that1.PubKeyTypes) {
  4619. return false
  4620. }
  4621. for i := range this.PubKeyTypes {
  4622. if this.PubKeyTypes[i] != that1.PubKeyTypes[i] {
  4623. return false
  4624. }
  4625. }
  4626. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4627. return false
  4628. }
  4629. return true
  4630. }
  4631. func (this *LastCommitInfo) Equal(that interface{}) bool {
  4632. if that == nil {
  4633. return this == nil
  4634. }
  4635. that1, ok := that.(*LastCommitInfo)
  4636. if !ok {
  4637. that2, ok := that.(LastCommitInfo)
  4638. if ok {
  4639. that1 = &that2
  4640. } else {
  4641. return false
  4642. }
  4643. }
  4644. if that1 == nil {
  4645. return this == nil
  4646. } else if this == nil {
  4647. return false
  4648. }
  4649. if this.Round != that1.Round {
  4650. return false
  4651. }
  4652. if len(this.Votes) != len(that1.Votes) {
  4653. return false
  4654. }
  4655. for i := range this.Votes {
  4656. if !this.Votes[i].Equal(&that1.Votes[i]) {
  4657. return false
  4658. }
  4659. }
  4660. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4661. return false
  4662. }
  4663. return true
  4664. }
  4665. func (this *Event) Equal(that interface{}) bool {
  4666. if that == nil {
  4667. return this == nil
  4668. }
  4669. that1, ok := that.(*Event)
  4670. if !ok {
  4671. that2, ok := that.(Event)
  4672. if ok {
  4673. that1 = &that2
  4674. } else {
  4675. return false
  4676. }
  4677. }
  4678. if that1 == nil {
  4679. return this == nil
  4680. } else if this == nil {
  4681. return false
  4682. }
  4683. if this.Type != that1.Type {
  4684. return false
  4685. }
  4686. if len(this.Attributes) != len(that1.Attributes) {
  4687. return false
  4688. }
  4689. for i := range this.Attributes {
  4690. if !this.Attributes[i].Equal(&that1.Attributes[i]) {
  4691. return false
  4692. }
  4693. }
  4694. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4695. return false
  4696. }
  4697. return true
  4698. }
  4699. func (this *Header) Equal(that interface{}) bool {
  4700. if that == nil {
  4701. return this == nil
  4702. }
  4703. that1, ok := that.(*Header)
  4704. if !ok {
  4705. that2, ok := that.(Header)
  4706. if ok {
  4707. that1 = &that2
  4708. } else {
  4709. return false
  4710. }
  4711. }
  4712. if that1 == nil {
  4713. return this == nil
  4714. } else if this == nil {
  4715. return false
  4716. }
  4717. if !this.Version.Equal(&that1.Version) {
  4718. return false
  4719. }
  4720. if this.ChainID != that1.ChainID {
  4721. return false
  4722. }
  4723. if this.Height != that1.Height {
  4724. return false
  4725. }
  4726. if !this.Time.Equal(that1.Time) {
  4727. return false
  4728. }
  4729. if this.NumTxs != that1.NumTxs {
  4730. return false
  4731. }
  4732. if this.TotalTxs != that1.TotalTxs {
  4733. return false
  4734. }
  4735. if !this.LastBlockId.Equal(&that1.LastBlockId) {
  4736. return false
  4737. }
  4738. if !bytes.Equal(this.LastCommitHash, that1.LastCommitHash) {
  4739. return false
  4740. }
  4741. if !bytes.Equal(this.DataHash, that1.DataHash) {
  4742. return false
  4743. }
  4744. if !bytes.Equal(this.ValidatorsHash, that1.ValidatorsHash) {
  4745. return false
  4746. }
  4747. if !bytes.Equal(this.NextValidatorsHash, that1.NextValidatorsHash) {
  4748. return false
  4749. }
  4750. if !bytes.Equal(this.ConsensusHash, that1.ConsensusHash) {
  4751. return false
  4752. }
  4753. if !bytes.Equal(this.AppHash, that1.AppHash) {
  4754. return false
  4755. }
  4756. if !bytes.Equal(this.LastResultsHash, that1.LastResultsHash) {
  4757. return false
  4758. }
  4759. if !bytes.Equal(this.EvidenceHash, that1.EvidenceHash) {
  4760. return false
  4761. }
  4762. if !bytes.Equal(this.ProposerAddress, that1.ProposerAddress) {
  4763. return false
  4764. }
  4765. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4766. return false
  4767. }
  4768. return true
  4769. }
  4770. func (this *Version) Equal(that interface{}) bool {
  4771. if that == nil {
  4772. return this == nil
  4773. }
  4774. that1, ok := that.(*Version)
  4775. if !ok {
  4776. that2, ok := that.(Version)
  4777. if ok {
  4778. that1 = &that2
  4779. } else {
  4780. return false
  4781. }
  4782. }
  4783. if that1 == nil {
  4784. return this == nil
  4785. } else if this == nil {
  4786. return false
  4787. }
  4788. if this.Block != that1.Block {
  4789. return false
  4790. }
  4791. if this.App != that1.App {
  4792. return false
  4793. }
  4794. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4795. return false
  4796. }
  4797. return true
  4798. }
  4799. func (this *BlockID) Equal(that interface{}) bool {
  4800. if that == nil {
  4801. return this == nil
  4802. }
  4803. that1, ok := that.(*BlockID)
  4804. if !ok {
  4805. that2, ok := that.(BlockID)
  4806. if ok {
  4807. that1 = &that2
  4808. } else {
  4809. return false
  4810. }
  4811. }
  4812. if that1 == nil {
  4813. return this == nil
  4814. } else if this == nil {
  4815. return false
  4816. }
  4817. if !bytes.Equal(this.Hash, that1.Hash) {
  4818. return false
  4819. }
  4820. if !this.PartsHeader.Equal(&that1.PartsHeader) {
  4821. return false
  4822. }
  4823. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4824. return false
  4825. }
  4826. return true
  4827. }
  4828. func (this *PartSetHeader) Equal(that interface{}) bool {
  4829. if that == nil {
  4830. return this == nil
  4831. }
  4832. that1, ok := that.(*PartSetHeader)
  4833. if !ok {
  4834. that2, ok := that.(PartSetHeader)
  4835. if ok {
  4836. that1 = &that2
  4837. } else {
  4838. return false
  4839. }
  4840. }
  4841. if that1 == nil {
  4842. return this == nil
  4843. } else if this == nil {
  4844. return false
  4845. }
  4846. if this.Total != that1.Total {
  4847. return false
  4848. }
  4849. if !bytes.Equal(this.Hash, that1.Hash) {
  4850. return false
  4851. }
  4852. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4853. return false
  4854. }
  4855. return true
  4856. }
  4857. func (this *Validator) Equal(that interface{}) bool {
  4858. if that == nil {
  4859. return this == nil
  4860. }
  4861. that1, ok := that.(*Validator)
  4862. if !ok {
  4863. that2, ok := that.(Validator)
  4864. if ok {
  4865. that1 = &that2
  4866. } else {
  4867. return false
  4868. }
  4869. }
  4870. if that1 == nil {
  4871. return this == nil
  4872. } else if this == nil {
  4873. return false
  4874. }
  4875. if !bytes.Equal(this.Address, that1.Address) {
  4876. return false
  4877. }
  4878. if this.Power != that1.Power {
  4879. return false
  4880. }
  4881. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4882. return false
  4883. }
  4884. return true
  4885. }
  4886. func (this *ValidatorUpdate) Equal(that interface{}) bool {
  4887. if that == nil {
  4888. return this == nil
  4889. }
  4890. that1, ok := that.(*ValidatorUpdate)
  4891. if !ok {
  4892. that2, ok := that.(ValidatorUpdate)
  4893. if ok {
  4894. that1 = &that2
  4895. } else {
  4896. return false
  4897. }
  4898. }
  4899. if that1 == nil {
  4900. return this == nil
  4901. } else if this == nil {
  4902. return false
  4903. }
  4904. if !this.PubKey.Equal(&that1.PubKey) {
  4905. return false
  4906. }
  4907. if this.Power != that1.Power {
  4908. return false
  4909. }
  4910. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4911. return false
  4912. }
  4913. return true
  4914. }
  4915. func (this *VoteInfo) Equal(that interface{}) bool {
  4916. if that == nil {
  4917. return this == nil
  4918. }
  4919. that1, ok := that.(*VoteInfo)
  4920. if !ok {
  4921. that2, ok := that.(VoteInfo)
  4922. if ok {
  4923. that1 = &that2
  4924. } else {
  4925. return false
  4926. }
  4927. }
  4928. if that1 == nil {
  4929. return this == nil
  4930. } else if this == nil {
  4931. return false
  4932. }
  4933. if !this.Validator.Equal(&that1.Validator) {
  4934. return false
  4935. }
  4936. if this.SignedLastBlock != that1.SignedLastBlock {
  4937. return false
  4938. }
  4939. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4940. return false
  4941. }
  4942. return true
  4943. }
  4944. func (this *PubKey) Equal(that interface{}) bool {
  4945. if that == nil {
  4946. return this == nil
  4947. }
  4948. that1, ok := that.(*PubKey)
  4949. if !ok {
  4950. that2, ok := that.(PubKey)
  4951. if ok {
  4952. that1 = &that2
  4953. } else {
  4954. return false
  4955. }
  4956. }
  4957. if that1 == nil {
  4958. return this == nil
  4959. } else if this == nil {
  4960. return false
  4961. }
  4962. if this.Type != that1.Type {
  4963. return false
  4964. }
  4965. if !bytes.Equal(this.Data, that1.Data) {
  4966. return false
  4967. }
  4968. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  4969. return false
  4970. }
  4971. return true
  4972. }
  4973. func (this *Evidence) Equal(that interface{}) bool {
  4974. if that == nil {
  4975. return this == nil
  4976. }
  4977. that1, ok := that.(*Evidence)
  4978. if !ok {
  4979. that2, ok := that.(Evidence)
  4980. if ok {
  4981. that1 = &that2
  4982. } else {
  4983. return false
  4984. }
  4985. }
  4986. if that1 == nil {
  4987. return this == nil
  4988. } else if this == nil {
  4989. return false
  4990. }
  4991. if this.Type != that1.Type {
  4992. return false
  4993. }
  4994. if !this.Validator.Equal(&that1.Validator) {
  4995. return false
  4996. }
  4997. if this.Height != that1.Height {
  4998. return false
  4999. }
  5000. if !this.Time.Equal(that1.Time) {
  5001. return false
  5002. }
  5003. if this.TotalVotingPower != that1.TotalVotingPower {
  5004. return false
  5005. }
  5006. if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
  5007. return false
  5008. }
  5009. return true
  5010. }
  5011. // Reference imports to suppress errors if they are not otherwise used.
  5012. var _ context.Context
  5013. var _ grpc.ClientConn
  5014. // This is a compile-time assertion to ensure that this generated file
  5015. // is compatible with the grpc package it is being compiled against.
  5016. const _ = grpc.SupportPackageIsVersion4
  5017. // ABCIApplicationClient is the client API for ABCIApplication service.
  5018. //
  5019. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
  5020. type ABCIApplicationClient interface {
  5021. Echo(ctx context.Context, in *RequestEcho, opts ...grpc.CallOption) (*ResponseEcho, error)
  5022. Flush(ctx context.Context, in *RequestFlush, opts ...grpc.CallOption) (*ResponseFlush, error)
  5023. Info(ctx context.Context, in *RequestInfo, opts ...grpc.CallOption) (*ResponseInfo, error)
  5024. SetOption(ctx context.Context, in *RequestSetOption, opts ...grpc.CallOption) (*ResponseSetOption, error)
  5025. DeliverTx(ctx context.Context, in *RequestDeliverTx, opts ...grpc.CallOption) (*ResponseDeliverTx, error)
  5026. CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error)
  5027. Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error)
  5028. Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error)
  5029. InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error)
  5030. BeginBlock(ctx context.Context, in *RequestBeginBlock, opts ...grpc.CallOption) (*ResponseBeginBlock, error)
  5031. EndBlock(ctx context.Context, in *RequestEndBlock, opts ...grpc.CallOption) (*ResponseEndBlock, error)
  5032. }
  5033. type aBCIApplicationClient struct {
  5034. cc *grpc.ClientConn
  5035. }
  5036. func NewABCIApplicationClient(cc *grpc.ClientConn) ABCIApplicationClient {
  5037. return &aBCIApplicationClient{cc}
  5038. }
  5039. func (c *aBCIApplicationClient) Echo(ctx context.Context, in *RequestEcho, opts ...grpc.CallOption) (*ResponseEcho, error) {
  5040. out := new(ResponseEcho)
  5041. err := c.cc.Invoke(ctx, "/types.ABCIApplication/Echo", in, out, opts...)
  5042. if err != nil {
  5043. return nil, err
  5044. }
  5045. return out, nil
  5046. }
  5047. func (c *aBCIApplicationClient) Flush(ctx context.Context, in *RequestFlush, opts ...grpc.CallOption) (*ResponseFlush, error) {
  5048. out := new(ResponseFlush)
  5049. err := c.cc.Invoke(ctx, "/types.ABCIApplication/Flush", in, out, opts...)
  5050. if err != nil {
  5051. return nil, err
  5052. }
  5053. return out, nil
  5054. }
  5055. func (c *aBCIApplicationClient) Info(ctx context.Context, in *RequestInfo, opts ...grpc.CallOption) (*ResponseInfo, error) {
  5056. out := new(ResponseInfo)
  5057. err := c.cc.Invoke(ctx, "/types.ABCIApplication/Info", in, out, opts...)
  5058. if err != nil {
  5059. return nil, err
  5060. }
  5061. return out, nil
  5062. }
  5063. func (c *aBCIApplicationClient) SetOption(ctx context.Context, in *RequestSetOption, opts ...grpc.CallOption) (*ResponseSetOption, error) {
  5064. out := new(ResponseSetOption)
  5065. err := c.cc.Invoke(ctx, "/types.ABCIApplication/SetOption", in, out, opts...)
  5066. if err != nil {
  5067. return nil, err
  5068. }
  5069. return out, nil
  5070. }
  5071. func (c *aBCIApplicationClient) DeliverTx(ctx context.Context, in *RequestDeliverTx, opts ...grpc.CallOption) (*ResponseDeliverTx, error) {
  5072. out := new(ResponseDeliverTx)
  5073. err := c.cc.Invoke(ctx, "/types.ABCIApplication/DeliverTx", in, out, opts...)
  5074. if err != nil {
  5075. return nil, err
  5076. }
  5077. return out, nil
  5078. }
  5079. func (c *aBCIApplicationClient) CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error) {
  5080. out := new(ResponseCheckTx)
  5081. err := c.cc.Invoke(ctx, "/types.ABCIApplication/CheckTx", in, out, opts...)
  5082. if err != nil {
  5083. return nil, err
  5084. }
  5085. return out, nil
  5086. }
  5087. func (c *aBCIApplicationClient) Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error) {
  5088. out := new(ResponseQuery)
  5089. err := c.cc.Invoke(ctx, "/types.ABCIApplication/Query", in, out, opts...)
  5090. if err != nil {
  5091. return nil, err
  5092. }
  5093. return out, nil
  5094. }
  5095. func (c *aBCIApplicationClient) Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error) {
  5096. out := new(ResponseCommit)
  5097. err := c.cc.Invoke(ctx, "/types.ABCIApplication/Commit", in, out, opts...)
  5098. if err != nil {
  5099. return nil, err
  5100. }
  5101. return out, nil
  5102. }
  5103. func (c *aBCIApplicationClient) InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error) {
  5104. out := new(ResponseInitChain)
  5105. err := c.cc.Invoke(ctx, "/types.ABCIApplication/InitChain", in, out, opts...)
  5106. if err != nil {
  5107. return nil, err
  5108. }
  5109. return out, nil
  5110. }
  5111. func (c *aBCIApplicationClient) BeginBlock(ctx context.Context, in *RequestBeginBlock, opts ...grpc.CallOption) (*ResponseBeginBlock, error) {
  5112. out := new(ResponseBeginBlock)
  5113. err := c.cc.Invoke(ctx, "/types.ABCIApplication/BeginBlock", in, out, opts...)
  5114. if err != nil {
  5115. return nil, err
  5116. }
  5117. return out, nil
  5118. }
  5119. func (c *aBCIApplicationClient) EndBlock(ctx context.Context, in *RequestEndBlock, opts ...grpc.CallOption) (*ResponseEndBlock, error) {
  5120. out := new(ResponseEndBlock)
  5121. err := c.cc.Invoke(ctx, "/types.ABCIApplication/EndBlock", in, out, opts...)
  5122. if err != nil {
  5123. return nil, err
  5124. }
  5125. return out, nil
  5126. }
  5127. // ABCIApplicationServer is the server API for ABCIApplication service.
  5128. type ABCIApplicationServer interface {
  5129. Echo(context.Context, *RequestEcho) (*ResponseEcho, error)
  5130. Flush(context.Context, *RequestFlush) (*ResponseFlush, error)
  5131. Info(context.Context, *RequestInfo) (*ResponseInfo, error)
  5132. SetOption(context.Context, *RequestSetOption) (*ResponseSetOption, error)
  5133. DeliverTx(context.Context, *RequestDeliverTx) (*ResponseDeliverTx, error)
  5134. CheckTx(context.Context, *RequestCheckTx) (*ResponseCheckTx, error)
  5135. Query(context.Context, *RequestQuery) (*ResponseQuery, error)
  5136. Commit(context.Context, *RequestCommit) (*ResponseCommit, error)
  5137. InitChain(context.Context, *RequestInitChain) (*ResponseInitChain, error)
  5138. BeginBlock(context.Context, *RequestBeginBlock) (*ResponseBeginBlock, error)
  5139. EndBlock(context.Context, *RequestEndBlock) (*ResponseEndBlock, error)
  5140. }
  5141. func RegisterABCIApplicationServer(s *grpc.Server, srv ABCIApplicationServer) {
  5142. s.RegisterService(&_ABCIApplication_serviceDesc, srv)
  5143. }
  5144. func _ABCIApplication_Echo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5145. in := new(RequestEcho)
  5146. if err := dec(in); err != nil {
  5147. return nil, err
  5148. }
  5149. if interceptor == nil {
  5150. return srv.(ABCIApplicationServer).Echo(ctx, in)
  5151. }
  5152. info := &grpc.UnaryServerInfo{
  5153. Server: srv,
  5154. FullMethod: "/types.ABCIApplication/Echo",
  5155. }
  5156. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5157. return srv.(ABCIApplicationServer).Echo(ctx, req.(*RequestEcho))
  5158. }
  5159. return interceptor(ctx, in, info, handler)
  5160. }
  5161. func _ABCIApplication_Flush_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5162. in := new(RequestFlush)
  5163. if err := dec(in); err != nil {
  5164. return nil, err
  5165. }
  5166. if interceptor == nil {
  5167. return srv.(ABCIApplicationServer).Flush(ctx, in)
  5168. }
  5169. info := &grpc.UnaryServerInfo{
  5170. Server: srv,
  5171. FullMethod: "/types.ABCIApplication/Flush",
  5172. }
  5173. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5174. return srv.(ABCIApplicationServer).Flush(ctx, req.(*RequestFlush))
  5175. }
  5176. return interceptor(ctx, in, info, handler)
  5177. }
  5178. func _ABCIApplication_Info_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5179. in := new(RequestInfo)
  5180. if err := dec(in); err != nil {
  5181. return nil, err
  5182. }
  5183. if interceptor == nil {
  5184. return srv.(ABCIApplicationServer).Info(ctx, in)
  5185. }
  5186. info := &grpc.UnaryServerInfo{
  5187. Server: srv,
  5188. FullMethod: "/types.ABCIApplication/Info",
  5189. }
  5190. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5191. return srv.(ABCIApplicationServer).Info(ctx, req.(*RequestInfo))
  5192. }
  5193. return interceptor(ctx, in, info, handler)
  5194. }
  5195. func _ABCIApplication_SetOption_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5196. in := new(RequestSetOption)
  5197. if err := dec(in); err != nil {
  5198. return nil, err
  5199. }
  5200. if interceptor == nil {
  5201. return srv.(ABCIApplicationServer).SetOption(ctx, in)
  5202. }
  5203. info := &grpc.UnaryServerInfo{
  5204. Server: srv,
  5205. FullMethod: "/types.ABCIApplication/SetOption",
  5206. }
  5207. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5208. return srv.(ABCIApplicationServer).SetOption(ctx, req.(*RequestSetOption))
  5209. }
  5210. return interceptor(ctx, in, info, handler)
  5211. }
  5212. func _ABCIApplication_DeliverTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5213. in := new(RequestDeliverTx)
  5214. if err := dec(in); err != nil {
  5215. return nil, err
  5216. }
  5217. if interceptor == nil {
  5218. return srv.(ABCIApplicationServer).DeliverTx(ctx, in)
  5219. }
  5220. info := &grpc.UnaryServerInfo{
  5221. Server: srv,
  5222. FullMethod: "/types.ABCIApplication/DeliverTx",
  5223. }
  5224. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5225. return srv.(ABCIApplicationServer).DeliverTx(ctx, req.(*RequestDeliverTx))
  5226. }
  5227. return interceptor(ctx, in, info, handler)
  5228. }
  5229. func _ABCIApplication_CheckTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5230. in := new(RequestCheckTx)
  5231. if err := dec(in); err != nil {
  5232. return nil, err
  5233. }
  5234. if interceptor == nil {
  5235. return srv.(ABCIApplicationServer).CheckTx(ctx, in)
  5236. }
  5237. info := &grpc.UnaryServerInfo{
  5238. Server: srv,
  5239. FullMethod: "/types.ABCIApplication/CheckTx",
  5240. }
  5241. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5242. return srv.(ABCIApplicationServer).CheckTx(ctx, req.(*RequestCheckTx))
  5243. }
  5244. return interceptor(ctx, in, info, handler)
  5245. }
  5246. func _ABCIApplication_Query_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5247. in := new(RequestQuery)
  5248. if err := dec(in); err != nil {
  5249. return nil, err
  5250. }
  5251. if interceptor == nil {
  5252. return srv.(ABCIApplicationServer).Query(ctx, in)
  5253. }
  5254. info := &grpc.UnaryServerInfo{
  5255. Server: srv,
  5256. FullMethod: "/types.ABCIApplication/Query",
  5257. }
  5258. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5259. return srv.(ABCIApplicationServer).Query(ctx, req.(*RequestQuery))
  5260. }
  5261. return interceptor(ctx, in, info, handler)
  5262. }
  5263. func _ABCIApplication_Commit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5264. in := new(RequestCommit)
  5265. if err := dec(in); err != nil {
  5266. return nil, err
  5267. }
  5268. if interceptor == nil {
  5269. return srv.(ABCIApplicationServer).Commit(ctx, in)
  5270. }
  5271. info := &grpc.UnaryServerInfo{
  5272. Server: srv,
  5273. FullMethod: "/types.ABCIApplication/Commit",
  5274. }
  5275. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5276. return srv.(ABCIApplicationServer).Commit(ctx, req.(*RequestCommit))
  5277. }
  5278. return interceptor(ctx, in, info, handler)
  5279. }
  5280. func _ABCIApplication_InitChain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5281. in := new(RequestInitChain)
  5282. if err := dec(in); err != nil {
  5283. return nil, err
  5284. }
  5285. if interceptor == nil {
  5286. return srv.(ABCIApplicationServer).InitChain(ctx, in)
  5287. }
  5288. info := &grpc.UnaryServerInfo{
  5289. Server: srv,
  5290. FullMethod: "/types.ABCIApplication/InitChain",
  5291. }
  5292. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5293. return srv.(ABCIApplicationServer).InitChain(ctx, req.(*RequestInitChain))
  5294. }
  5295. return interceptor(ctx, in, info, handler)
  5296. }
  5297. func _ABCIApplication_BeginBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5298. in := new(RequestBeginBlock)
  5299. if err := dec(in); err != nil {
  5300. return nil, err
  5301. }
  5302. if interceptor == nil {
  5303. return srv.(ABCIApplicationServer).BeginBlock(ctx, in)
  5304. }
  5305. info := &grpc.UnaryServerInfo{
  5306. Server: srv,
  5307. FullMethod: "/types.ABCIApplication/BeginBlock",
  5308. }
  5309. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5310. return srv.(ABCIApplicationServer).BeginBlock(ctx, req.(*RequestBeginBlock))
  5311. }
  5312. return interceptor(ctx, in, info, handler)
  5313. }
  5314. func _ABCIApplication_EndBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  5315. in := new(RequestEndBlock)
  5316. if err := dec(in); err != nil {
  5317. return nil, err
  5318. }
  5319. if interceptor == nil {
  5320. return srv.(ABCIApplicationServer).EndBlock(ctx, in)
  5321. }
  5322. info := &grpc.UnaryServerInfo{
  5323. Server: srv,
  5324. FullMethod: "/types.ABCIApplication/EndBlock",
  5325. }
  5326. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  5327. return srv.(ABCIApplicationServer).EndBlock(ctx, req.(*RequestEndBlock))
  5328. }
  5329. return interceptor(ctx, in, info, handler)
  5330. }
  5331. var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
  5332. ServiceName: "types.ABCIApplication",
  5333. HandlerType: (*ABCIApplicationServer)(nil),
  5334. Methods: []grpc.MethodDesc{
  5335. {
  5336. MethodName: "Echo",
  5337. Handler: _ABCIApplication_Echo_Handler,
  5338. },
  5339. {
  5340. MethodName: "Flush",
  5341. Handler: _ABCIApplication_Flush_Handler,
  5342. },
  5343. {
  5344. MethodName: "Info",
  5345. Handler: _ABCIApplication_Info_Handler,
  5346. },
  5347. {
  5348. MethodName: "SetOption",
  5349. Handler: _ABCIApplication_SetOption_Handler,
  5350. },
  5351. {
  5352. MethodName: "DeliverTx",
  5353. Handler: _ABCIApplication_DeliverTx_Handler,
  5354. },
  5355. {
  5356. MethodName: "CheckTx",
  5357. Handler: _ABCIApplication_CheckTx_Handler,
  5358. },
  5359. {
  5360. MethodName: "Query",
  5361. Handler: _ABCIApplication_Query_Handler,
  5362. },
  5363. {
  5364. MethodName: "Commit",
  5365. Handler: _ABCIApplication_Commit_Handler,
  5366. },
  5367. {
  5368. MethodName: "InitChain",
  5369. Handler: _ABCIApplication_InitChain_Handler,
  5370. },
  5371. {
  5372. MethodName: "BeginBlock",
  5373. Handler: _ABCIApplication_BeginBlock_Handler,
  5374. },
  5375. {
  5376. MethodName: "EndBlock",
  5377. Handler: _ABCIApplication_EndBlock_Handler,
  5378. },
  5379. },
  5380. Streams: []grpc.StreamDesc{},
  5381. Metadata: "abci/types/types.proto",
  5382. }
  5383. func (m *Request) Marshal() (dAtA []byte, err error) {
  5384. size := m.Size()
  5385. dAtA = make([]byte, size)
  5386. n, err := m.MarshalTo(dAtA)
  5387. if err != nil {
  5388. return nil, err
  5389. }
  5390. return dAtA[:n], nil
  5391. }
  5392. func (m *Request) MarshalTo(dAtA []byte) (int, error) {
  5393. var i int
  5394. _ = i
  5395. var l int
  5396. _ = l
  5397. if m.Value != nil {
  5398. nn1, err := m.Value.MarshalTo(dAtA[i:])
  5399. if err != nil {
  5400. return 0, err
  5401. }
  5402. i += nn1
  5403. }
  5404. if m.XXX_unrecognized != nil {
  5405. i += copy(dAtA[i:], m.XXX_unrecognized)
  5406. }
  5407. return i, nil
  5408. }
  5409. func (m *Request_Echo) MarshalTo(dAtA []byte) (int, error) {
  5410. i := 0
  5411. if m.Echo != nil {
  5412. dAtA[i] = 0x12
  5413. i++
  5414. i = encodeVarintTypes(dAtA, i, uint64(m.Echo.Size()))
  5415. n2, err := m.Echo.MarshalTo(dAtA[i:])
  5416. if err != nil {
  5417. return 0, err
  5418. }
  5419. i += n2
  5420. }
  5421. return i, nil
  5422. }
  5423. func (m *Request_Flush) MarshalTo(dAtA []byte) (int, error) {
  5424. i := 0
  5425. if m.Flush != nil {
  5426. dAtA[i] = 0x1a
  5427. i++
  5428. i = encodeVarintTypes(dAtA, i, uint64(m.Flush.Size()))
  5429. n3, err := m.Flush.MarshalTo(dAtA[i:])
  5430. if err != nil {
  5431. return 0, err
  5432. }
  5433. i += n3
  5434. }
  5435. return i, nil
  5436. }
  5437. func (m *Request_Info) MarshalTo(dAtA []byte) (int, error) {
  5438. i := 0
  5439. if m.Info != nil {
  5440. dAtA[i] = 0x22
  5441. i++
  5442. i = encodeVarintTypes(dAtA, i, uint64(m.Info.Size()))
  5443. n4, err := m.Info.MarshalTo(dAtA[i:])
  5444. if err != nil {
  5445. return 0, err
  5446. }
  5447. i += n4
  5448. }
  5449. return i, nil
  5450. }
  5451. func (m *Request_SetOption) MarshalTo(dAtA []byte) (int, error) {
  5452. i := 0
  5453. if m.SetOption != nil {
  5454. dAtA[i] = 0x2a
  5455. i++
  5456. i = encodeVarintTypes(dAtA, i, uint64(m.SetOption.Size()))
  5457. n5, err := m.SetOption.MarshalTo(dAtA[i:])
  5458. if err != nil {
  5459. return 0, err
  5460. }
  5461. i += n5
  5462. }
  5463. return i, nil
  5464. }
  5465. func (m *Request_InitChain) MarshalTo(dAtA []byte) (int, error) {
  5466. i := 0
  5467. if m.InitChain != nil {
  5468. dAtA[i] = 0x32
  5469. i++
  5470. i = encodeVarintTypes(dAtA, i, uint64(m.InitChain.Size()))
  5471. n6, err := m.InitChain.MarshalTo(dAtA[i:])
  5472. if err != nil {
  5473. return 0, err
  5474. }
  5475. i += n6
  5476. }
  5477. return i, nil
  5478. }
  5479. func (m *Request_Query) MarshalTo(dAtA []byte) (int, error) {
  5480. i := 0
  5481. if m.Query != nil {
  5482. dAtA[i] = 0x3a
  5483. i++
  5484. i = encodeVarintTypes(dAtA, i, uint64(m.Query.Size()))
  5485. n7, err := m.Query.MarshalTo(dAtA[i:])
  5486. if err != nil {
  5487. return 0, err
  5488. }
  5489. i += n7
  5490. }
  5491. return i, nil
  5492. }
  5493. func (m *Request_BeginBlock) MarshalTo(dAtA []byte) (int, error) {
  5494. i := 0
  5495. if m.BeginBlock != nil {
  5496. dAtA[i] = 0x42
  5497. i++
  5498. i = encodeVarintTypes(dAtA, i, uint64(m.BeginBlock.Size()))
  5499. n8, err := m.BeginBlock.MarshalTo(dAtA[i:])
  5500. if err != nil {
  5501. return 0, err
  5502. }
  5503. i += n8
  5504. }
  5505. return i, nil
  5506. }
  5507. func (m *Request_CheckTx) MarshalTo(dAtA []byte) (int, error) {
  5508. i := 0
  5509. if m.CheckTx != nil {
  5510. dAtA[i] = 0x4a
  5511. i++
  5512. i = encodeVarintTypes(dAtA, i, uint64(m.CheckTx.Size()))
  5513. n9, err := m.CheckTx.MarshalTo(dAtA[i:])
  5514. if err != nil {
  5515. return 0, err
  5516. }
  5517. i += n9
  5518. }
  5519. return i, nil
  5520. }
  5521. func (m *Request_EndBlock) MarshalTo(dAtA []byte) (int, error) {
  5522. i := 0
  5523. if m.EndBlock != nil {
  5524. dAtA[i] = 0x5a
  5525. i++
  5526. i = encodeVarintTypes(dAtA, i, uint64(m.EndBlock.Size()))
  5527. n10, err := m.EndBlock.MarshalTo(dAtA[i:])
  5528. if err != nil {
  5529. return 0, err
  5530. }
  5531. i += n10
  5532. }
  5533. return i, nil
  5534. }
  5535. func (m *Request_Commit) MarshalTo(dAtA []byte) (int, error) {
  5536. i := 0
  5537. if m.Commit != nil {
  5538. dAtA[i] = 0x62
  5539. i++
  5540. i = encodeVarintTypes(dAtA, i, uint64(m.Commit.Size()))
  5541. n11, err := m.Commit.MarshalTo(dAtA[i:])
  5542. if err != nil {
  5543. return 0, err
  5544. }
  5545. i += n11
  5546. }
  5547. return i, nil
  5548. }
  5549. func (m *Request_DeliverTx) MarshalTo(dAtA []byte) (int, error) {
  5550. i := 0
  5551. if m.DeliverTx != nil {
  5552. dAtA[i] = 0x9a
  5553. i++
  5554. dAtA[i] = 0x1
  5555. i++
  5556. i = encodeVarintTypes(dAtA, i, uint64(m.DeliverTx.Size()))
  5557. n12, err := m.DeliverTx.MarshalTo(dAtA[i:])
  5558. if err != nil {
  5559. return 0, err
  5560. }
  5561. i += n12
  5562. }
  5563. return i, nil
  5564. }
  5565. func (m *RequestEcho) Marshal() (dAtA []byte, err error) {
  5566. size := m.Size()
  5567. dAtA = make([]byte, size)
  5568. n, err := m.MarshalTo(dAtA)
  5569. if err != nil {
  5570. return nil, err
  5571. }
  5572. return dAtA[:n], nil
  5573. }
  5574. func (m *RequestEcho) MarshalTo(dAtA []byte) (int, error) {
  5575. var i int
  5576. _ = i
  5577. var l int
  5578. _ = l
  5579. if len(m.Message) > 0 {
  5580. dAtA[i] = 0xa
  5581. i++
  5582. i = encodeVarintTypes(dAtA, i, uint64(len(m.Message)))
  5583. i += copy(dAtA[i:], m.Message)
  5584. }
  5585. if m.XXX_unrecognized != nil {
  5586. i += copy(dAtA[i:], m.XXX_unrecognized)
  5587. }
  5588. return i, nil
  5589. }
  5590. func (m *RequestFlush) Marshal() (dAtA []byte, err error) {
  5591. size := m.Size()
  5592. dAtA = make([]byte, size)
  5593. n, err := m.MarshalTo(dAtA)
  5594. if err != nil {
  5595. return nil, err
  5596. }
  5597. return dAtA[:n], nil
  5598. }
  5599. func (m *RequestFlush) MarshalTo(dAtA []byte) (int, error) {
  5600. var i int
  5601. _ = i
  5602. var l int
  5603. _ = l
  5604. if m.XXX_unrecognized != nil {
  5605. i += copy(dAtA[i:], m.XXX_unrecognized)
  5606. }
  5607. return i, nil
  5608. }
  5609. func (m *RequestInfo) Marshal() (dAtA []byte, err error) {
  5610. size := m.Size()
  5611. dAtA = make([]byte, size)
  5612. n, err := m.MarshalTo(dAtA)
  5613. if err != nil {
  5614. return nil, err
  5615. }
  5616. return dAtA[:n], nil
  5617. }
  5618. func (m *RequestInfo) MarshalTo(dAtA []byte) (int, error) {
  5619. var i int
  5620. _ = i
  5621. var l int
  5622. _ = l
  5623. if len(m.Version) > 0 {
  5624. dAtA[i] = 0xa
  5625. i++
  5626. i = encodeVarintTypes(dAtA, i, uint64(len(m.Version)))
  5627. i += copy(dAtA[i:], m.Version)
  5628. }
  5629. if m.BlockVersion != 0 {
  5630. dAtA[i] = 0x10
  5631. i++
  5632. i = encodeVarintTypes(dAtA, i, uint64(m.BlockVersion))
  5633. }
  5634. if m.P2PVersion != 0 {
  5635. dAtA[i] = 0x18
  5636. i++
  5637. i = encodeVarintTypes(dAtA, i, uint64(m.P2PVersion))
  5638. }
  5639. if m.XXX_unrecognized != nil {
  5640. i += copy(dAtA[i:], m.XXX_unrecognized)
  5641. }
  5642. return i, nil
  5643. }
  5644. func (m *RequestSetOption) Marshal() (dAtA []byte, err error) {
  5645. size := m.Size()
  5646. dAtA = make([]byte, size)
  5647. n, err := m.MarshalTo(dAtA)
  5648. if err != nil {
  5649. return nil, err
  5650. }
  5651. return dAtA[:n], nil
  5652. }
  5653. func (m *RequestSetOption) MarshalTo(dAtA []byte) (int, error) {
  5654. var i int
  5655. _ = i
  5656. var l int
  5657. _ = l
  5658. if len(m.Key) > 0 {
  5659. dAtA[i] = 0xa
  5660. i++
  5661. i = encodeVarintTypes(dAtA, i, uint64(len(m.Key)))
  5662. i += copy(dAtA[i:], m.Key)
  5663. }
  5664. if len(m.Value) > 0 {
  5665. dAtA[i] = 0x12
  5666. i++
  5667. i = encodeVarintTypes(dAtA, i, uint64(len(m.Value)))
  5668. i += copy(dAtA[i:], m.Value)
  5669. }
  5670. if m.XXX_unrecognized != nil {
  5671. i += copy(dAtA[i:], m.XXX_unrecognized)
  5672. }
  5673. return i, nil
  5674. }
  5675. func (m *RequestInitChain) Marshal() (dAtA []byte, err error) {
  5676. size := m.Size()
  5677. dAtA = make([]byte, size)
  5678. n, err := m.MarshalTo(dAtA)
  5679. if err != nil {
  5680. return nil, err
  5681. }
  5682. return dAtA[:n], nil
  5683. }
  5684. func (m *RequestInitChain) MarshalTo(dAtA []byte) (int, error) {
  5685. var i int
  5686. _ = i
  5687. var l int
  5688. _ = l
  5689. dAtA[i] = 0xa
  5690. i++
  5691. i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)))
  5692. n13, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i:])
  5693. if err != nil {
  5694. return 0, err
  5695. }
  5696. i += n13
  5697. if len(m.ChainId) > 0 {
  5698. dAtA[i] = 0x12
  5699. i++
  5700. i = encodeVarintTypes(dAtA, i, uint64(len(m.ChainId)))
  5701. i += copy(dAtA[i:], m.ChainId)
  5702. }
  5703. if m.ConsensusParams != nil {
  5704. dAtA[i] = 0x1a
  5705. i++
  5706. i = encodeVarintTypes(dAtA, i, uint64(m.ConsensusParams.Size()))
  5707. n14, err := m.ConsensusParams.MarshalTo(dAtA[i:])
  5708. if err != nil {
  5709. return 0, err
  5710. }
  5711. i += n14
  5712. }
  5713. if len(m.Validators) > 0 {
  5714. for _, msg := range m.Validators {
  5715. dAtA[i] = 0x22
  5716. i++
  5717. i = encodeVarintTypes(dAtA, i, uint64(msg.Size()))
  5718. n, err := msg.MarshalTo(dAtA[i:])
  5719. if err != nil {
  5720. return 0, err
  5721. }
  5722. i += n
  5723. }
  5724. }
  5725. if len(m.AppStateBytes) > 0 {
  5726. dAtA[i] = 0x2a
  5727. i++
  5728. i = encodeVarintTypes(dAtA, i, uint64(len(m.AppStateBytes)))
  5729. i += copy(dAtA[i:], m.AppStateBytes)
  5730. }
  5731. if m.XXX_unrecognized != nil {
  5732. i += copy(dAtA[i:], m.XXX_unrecognized)
  5733. }
  5734. return i, nil
  5735. }
  5736. func (m *RequestQuery) Marshal() (dAtA []byte, err error) {
  5737. size := m.Size()
  5738. dAtA = make([]byte, size)
  5739. n, err := m.MarshalTo(dAtA)
  5740. if err != nil {
  5741. return nil, err
  5742. }
  5743. return dAtA[:n], nil
  5744. }
  5745. func (m *RequestQuery) MarshalTo(dAtA []byte) (int, error) {
  5746. var i int
  5747. _ = i
  5748. var l int
  5749. _ = l
  5750. if len(m.Data) > 0 {
  5751. dAtA[i] = 0xa
  5752. i++
  5753. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  5754. i += copy(dAtA[i:], m.Data)
  5755. }
  5756. if len(m.Path) > 0 {
  5757. dAtA[i] = 0x12
  5758. i++
  5759. i = encodeVarintTypes(dAtA, i, uint64(len(m.Path)))
  5760. i += copy(dAtA[i:], m.Path)
  5761. }
  5762. if m.Height != 0 {
  5763. dAtA[i] = 0x18
  5764. i++
  5765. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  5766. }
  5767. if m.Prove {
  5768. dAtA[i] = 0x20
  5769. i++
  5770. if m.Prove {
  5771. dAtA[i] = 1
  5772. } else {
  5773. dAtA[i] = 0
  5774. }
  5775. i++
  5776. }
  5777. if m.XXX_unrecognized != nil {
  5778. i += copy(dAtA[i:], m.XXX_unrecognized)
  5779. }
  5780. return i, nil
  5781. }
  5782. func (m *RequestBeginBlock) Marshal() (dAtA []byte, err error) {
  5783. size := m.Size()
  5784. dAtA = make([]byte, size)
  5785. n, err := m.MarshalTo(dAtA)
  5786. if err != nil {
  5787. return nil, err
  5788. }
  5789. return dAtA[:n], nil
  5790. }
  5791. func (m *RequestBeginBlock) MarshalTo(dAtA []byte) (int, error) {
  5792. var i int
  5793. _ = i
  5794. var l int
  5795. _ = l
  5796. if len(m.Hash) > 0 {
  5797. dAtA[i] = 0xa
  5798. i++
  5799. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  5800. i += copy(dAtA[i:], m.Hash)
  5801. }
  5802. dAtA[i] = 0x12
  5803. i++
  5804. i = encodeVarintTypes(dAtA, i, uint64(m.Header.Size()))
  5805. n15, err := m.Header.MarshalTo(dAtA[i:])
  5806. if err != nil {
  5807. return 0, err
  5808. }
  5809. i += n15
  5810. dAtA[i] = 0x1a
  5811. i++
  5812. i = encodeVarintTypes(dAtA, i, uint64(m.LastCommitInfo.Size()))
  5813. n16, err := m.LastCommitInfo.MarshalTo(dAtA[i:])
  5814. if err != nil {
  5815. return 0, err
  5816. }
  5817. i += n16
  5818. if len(m.ByzantineValidators) > 0 {
  5819. for _, msg := range m.ByzantineValidators {
  5820. dAtA[i] = 0x22
  5821. i++
  5822. i = encodeVarintTypes(dAtA, i, uint64(msg.Size()))
  5823. n, err := msg.MarshalTo(dAtA[i:])
  5824. if err != nil {
  5825. return 0, err
  5826. }
  5827. i += n
  5828. }
  5829. }
  5830. if m.XXX_unrecognized != nil {
  5831. i += copy(dAtA[i:], m.XXX_unrecognized)
  5832. }
  5833. return i, nil
  5834. }
  5835. func (m *RequestCheckTx) Marshal() (dAtA []byte, err error) {
  5836. size := m.Size()
  5837. dAtA = make([]byte, size)
  5838. n, err := m.MarshalTo(dAtA)
  5839. if err != nil {
  5840. return nil, err
  5841. }
  5842. return dAtA[:n], nil
  5843. }
  5844. func (m *RequestCheckTx) MarshalTo(dAtA []byte) (int, error) {
  5845. var i int
  5846. _ = i
  5847. var l int
  5848. _ = l
  5849. if len(m.Tx) > 0 {
  5850. dAtA[i] = 0xa
  5851. i++
  5852. i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx)))
  5853. i += copy(dAtA[i:], m.Tx)
  5854. }
  5855. if m.Type != 0 {
  5856. dAtA[i] = 0x10
  5857. i++
  5858. i = encodeVarintTypes(dAtA, i, uint64(m.Type))
  5859. }
  5860. if m.XXX_unrecognized != nil {
  5861. i += copy(dAtA[i:], m.XXX_unrecognized)
  5862. }
  5863. return i, nil
  5864. }
  5865. func (m *RequestDeliverTx) Marshal() (dAtA []byte, err error) {
  5866. size := m.Size()
  5867. dAtA = make([]byte, size)
  5868. n, err := m.MarshalTo(dAtA)
  5869. if err != nil {
  5870. return nil, err
  5871. }
  5872. return dAtA[:n], nil
  5873. }
  5874. func (m *RequestDeliverTx) MarshalTo(dAtA []byte) (int, error) {
  5875. var i int
  5876. _ = i
  5877. var l int
  5878. _ = l
  5879. if len(m.Tx) > 0 {
  5880. dAtA[i] = 0xa
  5881. i++
  5882. i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx)))
  5883. i += copy(dAtA[i:], m.Tx)
  5884. }
  5885. if m.XXX_unrecognized != nil {
  5886. i += copy(dAtA[i:], m.XXX_unrecognized)
  5887. }
  5888. return i, nil
  5889. }
  5890. func (m *RequestEndBlock) Marshal() (dAtA []byte, err error) {
  5891. size := m.Size()
  5892. dAtA = make([]byte, size)
  5893. n, err := m.MarshalTo(dAtA)
  5894. if err != nil {
  5895. return nil, err
  5896. }
  5897. return dAtA[:n], nil
  5898. }
  5899. func (m *RequestEndBlock) MarshalTo(dAtA []byte) (int, error) {
  5900. var i int
  5901. _ = i
  5902. var l int
  5903. _ = l
  5904. if m.Height != 0 {
  5905. dAtA[i] = 0x8
  5906. i++
  5907. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  5908. }
  5909. if m.XXX_unrecognized != nil {
  5910. i += copy(dAtA[i:], m.XXX_unrecognized)
  5911. }
  5912. return i, nil
  5913. }
  5914. func (m *RequestCommit) Marshal() (dAtA []byte, err error) {
  5915. size := m.Size()
  5916. dAtA = make([]byte, size)
  5917. n, err := m.MarshalTo(dAtA)
  5918. if err != nil {
  5919. return nil, err
  5920. }
  5921. return dAtA[:n], nil
  5922. }
  5923. func (m *RequestCommit) MarshalTo(dAtA []byte) (int, error) {
  5924. var i int
  5925. _ = i
  5926. var l int
  5927. _ = l
  5928. if m.XXX_unrecognized != nil {
  5929. i += copy(dAtA[i:], m.XXX_unrecognized)
  5930. }
  5931. return i, nil
  5932. }
  5933. func (m *Response) Marshal() (dAtA []byte, err error) {
  5934. size := m.Size()
  5935. dAtA = make([]byte, size)
  5936. n, err := m.MarshalTo(dAtA)
  5937. if err != nil {
  5938. return nil, err
  5939. }
  5940. return dAtA[:n], nil
  5941. }
  5942. func (m *Response) MarshalTo(dAtA []byte) (int, error) {
  5943. var i int
  5944. _ = i
  5945. var l int
  5946. _ = l
  5947. if m.Value != nil {
  5948. nn17, err := m.Value.MarshalTo(dAtA[i:])
  5949. if err != nil {
  5950. return 0, err
  5951. }
  5952. i += nn17
  5953. }
  5954. if m.XXX_unrecognized != nil {
  5955. i += copy(dAtA[i:], m.XXX_unrecognized)
  5956. }
  5957. return i, nil
  5958. }
  5959. func (m *Response_Exception) MarshalTo(dAtA []byte) (int, error) {
  5960. i := 0
  5961. if m.Exception != nil {
  5962. dAtA[i] = 0xa
  5963. i++
  5964. i = encodeVarintTypes(dAtA, i, uint64(m.Exception.Size()))
  5965. n18, err := m.Exception.MarshalTo(dAtA[i:])
  5966. if err != nil {
  5967. return 0, err
  5968. }
  5969. i += n18
  5970. }
  5971. return i, nil
  5972. }
  5973. func (m *Response_Echo) MarshalTo(dAtA []byte) (int, error) {
  5974. i := 0
  5975. if m.Echo != nil {
  5976. dAtA[i] = 0x12
  5977. i++
  5978. i = encodeVarintTypes(dAtA, i, uint64(m.Echo.Size()))
  5979. n19, err := m.Echo.MarshalTo(dAtA[i:])
  5980. if err != nil {
  5981. return 0, err
  5982. }
  5983. i += n19
  5984. }
  5985. return i, nil
  5986. }
  5987. func (m *Response_Flush) MarshalTo(dAtA []byte) (int, error) {
  5988. i := 0
  5989. if m.Flush != nil {
  5990. dAtA[i] = 0x1a
  5991. i++
  5992. i = encodeVarintTypes(dAtA, i, uint64(m.Flush.Size()))
  5993. n20, err := m.Flush.MarshalTo(dAtA[i:])
  5994. if err != nil {
  5995. return 0, err
  5996. }
  5997. i += n20
  5998. }
  5999. return i, nil
  6000. }
  6001. func (m *Response_Info) MarshalTo(dAtA []byte) (int, error) {
  6002. i := 0
  6003. if m.Info != nil {
  6004. dAtA[i] = 0x22
  6005. i++
  6006. i = encodeVarintTypes(dAtA, i, uint64(m.Info.Size()))
  6007. n21, err := m.Info.MarshalTo(dAtA[i:])
  6008. if err != nil {
  6009. return 0, err
  6010. }
  6011. i += n21
  6012. }
  6013. return i, nil
  6014. }
  6015. func (m *Response_SetOption) MarshalTo(dAtA []byte) (int, error) {
  6016. i := 0
  6017. if m.SetOption != nil {
  6018. dAtA[i] = 0x2a
  6019. i++
  6020. i = encodeVarintTypes(dAtA, i, uint64(m.SetOption.Size()))
  6021. n22, err := m.SetOption.MarshalTo(dAtA[i:])
  6022. if err != nil {
  6023. return 0, err
  6024. }
  6025. i += n22
  6026. }
  6027. return i, nil
  6028. }
  6029. func (m *Response_InitChain) MarshalTo(dAtA []byte) (int, error) {
  6030. i := 0
  6031. if m.InitChain != nil {
  6032. dAtA[i] = 0x32
  6033. i++
  6034. i = encodeVarintTypes(dAtA, i, uint64(m.InitChain.Size()))
  6035. n23, err := m.InitChain.MarshalTo(dAtA[i:])
  6036. if err != nil {
  6037. return 0, err
  6038. }
  6039. i += n23
  6040. }
  6041. return i, nil
  6042. }
  6043. func (m *Response_Query) MarshalTo(dAtA []byte) (int, error) {
  6044. i := 0
  6045. if m.Query != nil {
  6046. dAtA[i] = 0x3a
  6047. i++
  6048. i = encodeVarintTypes(dAtA, i, uint64(m.Query.Size()))
  6049. n24, err := m.Query.MarshalTo(dAtA[i:])
  6050. if err != nil {
  6051. return 0, err
  6052. }
  6053. i += n24
  6054. }
  6055. return i, nil
  6056. }
  6057. func (m *Response_BeginBlock) MarshalTo(dAtA []byte) (int, error) {
  6058. i := 0
  6059. if m.BeginBlock != nil {
  6060. dAtA[i] = 0x42
  6061. i++
  6062. i = encodeVarintTypes(dAtA, i, uint64(m.BeginBlock.Size()))
  6063. n25, err := m.BeginBlock.MarshalTo(dAtA[i:])
  6064. if err != nil {
  6065. return 0, err
  6066. }
  6067. i += n25
  6068. }
  6069. return i, nil
  6070. }
  6071. func (m *Response_CheckTx) MarshalTo(dAtA []byte) (int, error) {
  6072. i := 0
  6073. if m.CheckTx != nil {
  6074. dAtA[i] = 0x4a
  6075. i++
  6076. i = encodeVarintTypes(dAtA, i, uint64(m.CheckTx.Size()))
  6077. n26, err := m.CheckTx.MarshalTo(dAtA[i:])
  6078. if err != nil {
  6079. return 0, err
  6080. }
  6081. i += n26
  6082. }
  6083. return i, nil
  6084. }
  6085. func (m *Response_DeliverTx) MarshalTo(dAtA []byte) (int, error) {
  6086. i := 0
  6087. if m.DeliverTx != nil {
  6088. dAtA[i] = 0x52
  6089. i++
  6090. i = encodeVarintTypes(dAtA, i, uint64(m.DeliverTx.Size()))
  6091. n27, err := m.DeliverTx.MarshalTo(dAtA[i:])
  6092. if err != nil {
  6093. return 0, err
  6094. }
  6095. i += n27
  6096. }
  6097. return i, nil
  6098. }
  6099. func (m *Response_EndBlock) MarshalTo(dAtA []byte) (int, error) {
  6100. i := 0
  6101. if m.EndBlock != nil {
  6102. dAtA[i] = 0x5a
  6103. i++
  6104. i = encodeVarintTypes(dAtA, i, uint64(m.EndBlock.Size()))
  6105. n28, err := m.EndBlock.MarshalTo(dAtA[i:])
  6106. if err != nil {
  6107. return 0, err
  6108. }
  6109. i += n28
  6110. }
  6111. return i, nil
  6112. }
  6113. func (m *Response_Commit) MarshalTo(dAtA []byte) (int, error) {
  6114. i := 0
  6115. if m.Commit != nil {
  6116. dAtA[i] = 0x62
  6117. i++
  6118. i = encodeVarintTypes(dAtA, i, uint64(m.Commit.Size()))
  6119. n29, err := m.Commit.MarshalTo(dAtA[i:])
  6120. if err != nil {
  6121. return 0, err
  6122. }
  6123. i += n29
  6124. }
  6125. return i, nil
  6126. }
  6127. func (m *ResponseException) Marshal() (dAtA []byte, err error) {
  6128. size := m.Size()
  6129. dAtA = make([]byte, size)
  6130. n, err := m.MarshalTo(dAtA)
  6131. if err != nil {
  6132. return nil, err
  6133. }
  6134. return dAtA[:n], nil
  6135. }
  6136. func (m *ResponseException) MarshalTo(dAtA []byte) (int, error) {
  6137. var i int
  6138. _ = i
  6139. var l int
  6140. _ = l
  6141. if len(m.Error) > 0 {
  6142. dAtA[i] = 0xa
  6143. i++
  6144. i = encodeVarintTypes(dAtA, i, uint64(len(m.Error)))
  6145. i += copy(dAtA[i:], m.Error)
  6146. }
  6147. if m.XXX_unrecognized != nil {
  6148. i += copy(dAtA[i:], m.XXX_unrecognized)
  6149. }
  6150. return i, nil
  6151. }
  6152. func (m *ResponseEcho) Marshal() (dAtA []byte, err error) {
  6153. size := m.Size()
  6154. dAtA = make([]byte, size)
  6155. n, err := m.MarshalTo(dAtA)
  6156. if err != nil {
  6157. return nil, err
  6158. }
  6159. return dAtA[:n], nil
  6160. }
  6161. func (m *ResponseEcho) MarshalTo(dAtA []byte) (int, error) {
  6162. var i int
  6163. _ = i
  6164. var l int
  6165. _ = l
  6166. if len(m.Message) > 0 {
  6167. dAtA[i] = 0xa
  6168. i++
  6169. i = encodeVarintTypes(dAtA, i, uint64(len(m.Message)))
  6170. i += copy(dAtA[i:], m.Message)
  6171. }
  6172. if m.XXX_unrecognized != nil {
  6173. i += copy(dAtA[i:], m.XXX_unrecognized)
  6174. }
  6175. return i, nil
  6176. }
  6177. func (m *ResponseFlush) Marshal() (dAtA []byte, err error) {
  6178. size := m.Size()
  6179. dAtA = make([]byte, size)
  6180. n, err := m.MarshalTo(dAtA)
  6181. if err != nil {
  6182. return nil, err
  6183. }
  6184. return dAtA[:n], nil
  6185. }
  6186. func (m *ResponseFlush) MarshalTo(dAtA []byte) (int, error) {
  6187. var i int
  6188. _ = i
  6189. var l int
  6190. _ = l
  6191. if m.XXX_unrecognized != nil {
  6192. i += copy(dAtA[i:], m.XXX_unrecognized)
  6193. }
  6194. return i, nil
  6195. }
  6196. func (m *ResponseInfo) Marshal() (dAtA []byte, err error) {
  6197. size := m.Size()
  6198. dAtA = make([]byte, size)
  6199. n, err := m.MarshalTo(dAtA)
  6200. if err != nil {
  6201. return nil, err
  6202. }
  6203. return dAtA[:n], nil
  6204. }
  6205. func (m *ResponseInfo) MarshalTo(dAtA []byte) (int, error) {
  6206. var i int
  6207. _ = i
  6208. var l int
  6209. _ = l
  6210. if len(m.Data) > 0 {
  6211. dAtA[i] = 0xa
  6212. i++
  6213. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6214. i += copy(dAtA[i:], m.Data)
  6215. }
  6216. if len(m.Version) > 0 {
  6217. dAtA[i] = 0x12
  6218. i++
  6219. i = encodeVarintTypes(dAtA, i, uint64(len(m.Version)))
  6220. i += copy(dAtA[i:], m.Version)
  6221. }
  6222. if m.AppVersion != 0 {
  6223. dAtA[i] = 0x18
  6224. i++
  6225. i = encodeVarintTypes(dAtA, i, uint64(m.AppVersion))
  6226. }
  6227. if m.LastBlockHeight != 0 {
  6228. dAtA[i] = 0x20
  6229. i++
  6230. i = encodeVarintTypes(dAtA, i, uint64(m.LastBlockHeight))
  6231. }
  6232. if len(m.LastBlockAppHash) > 0 {
  6233. dAtA[i] = 0x2a
  6234. i++
  6235. i = encodeVarintTypes(dAtA, i, uint64(len(m.LastBlockAppHash)))
  6236. i += copy(dAtA[i:], m.LastBlockAppHash)
  6237. }
  6238. if m.XXX_unrecognized != nil {
  6239. i += copy(dAtA[i:], m.XXX_unrecognized)
  6240. }
  6241. return i, nil
  6242. }
  6243. func (m *ResponseSetOption) Marshal() (dAtA []byte, err error) {
  6244. size := m.Size()
  6245. dAtA = make([]byte, size)
  6246. n, err := m.MarshalTo(dAtA)
  6247. if err != nil {
  6248. return nil, err
  6249. }
  6250. return dAtA[:n], nil
  6251. }
  6252. func (m *ResponseSetOption) MarshalTo(dAtA []byte) (int, error) {
  6253. var i int
  6254. _ = i
  6255. var l int
  6256. _ = l
  6257. if m.Code != 0 {
  6258. dAtA[i] = 0x8
  6259. i++
  6260. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6261. }
  6262. if len(m.Log) > 0 {
  6263. dAtA[i] = 0x1a
  6264. i++
  6265. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6266. i += copy(dAtA[i:], m.Log)
  6267. }
  6268. if len(m.Info) > 0 {
  6269. dAtA[i] = 0x22
  6270. i++
  6271. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6272. i += copy(dAtA[i:], m.Info)
  6273. }
  6274. if m.XXX_unrecognized != nil {
  6275. i += copy(dAtA[i:], m.XXX_unrecognized)
  6276. }
  6277. return i, nil
  6278. }
  6279. func (m *ResponseInitChain) Marshal() (dAtA []byte, err error) {
  6280. size := m.Size()
  6281. dAtA = make([]byte, size)
  6282. n, err := m.MarshalTo(dAtA)
  6283. if err != nil {
  6284. return nil, err
  6285. }
  6286. return dAtA[:n], nil
  6287. }
  6288. func (m *ResponseInitChain) MarshalTo(dAtA []byte) (int, error) {
  6289. var i int
  6290. _ = i
  6291. var l int
  6292. _ = l
  6293. if m.ConsensusParams != nil {
  6294. dAtA[i] = 0xa
  6295. i++
  6296. i = encodeVarintTypes(dAtA, i, uint64(m.ConsensusParams.Size()))
  6297. n30, err := m.ConsensusParams.MarshalTo(dAtA[i:])
  6298. if err != nil {
  6299. return 0, err
  6300. }
  6301. i += n30
  6302. }
  6303. if len(m.Validators) > 0 {
  6304. for _, msg := range m.Validators {
  6305. dAtA[i] = 0x12
  6306. i++
  6307. i = encodeVarintTypes(dAtA, i, uint64(msg.Size()))
  6308. n, err := msg.MarshalTo(dAtA[i:])
  6309. if err != nil {
  6310. return 0, err
  6311. }
  6312. i += n
  6313. }
  6314. }
  6315. if m.XXX_unrecognized != nil {
  6316. i += copy(dAtA[i:], m.XXX_unrecognized)
  6317. }
  6318. return i, nil
  6319. }
  6320. func (m *ResponseQuery) Marshal() (dAtA []byte, err error) {
  6321. size := m.Size()
  6322. dAtA = make([]byte, size)
  6323. n, err := m.MarshalTo(dAtA)
  6324. if err != nil {
  6325. return nil, err
  6326. }
  6327. return dAtA[:n], nil
  6328. }
  6329. func (m *ResponseQuery) MarshalTo(dAtA []byte) (int, error) {
  6330. var i int
  6331. _ = i
  6332. var l int
  6333. _ = l
  6334. if m.Code != 0 {
  6335. dAtA[i] = 0x8
  6336. i++
  6337. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6338. }
  6339. if len(m.Log) > 0 {
  6340. dAtA[i] = 0x1a
  6341. i++
  6342. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6343. i += copy(dAtA[i:], m.Log)
  6344. }
  6345. if len(m.Info) > 0 {
  6346. dAtA[i] = 0x22
  6347. i++
  6348. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6349. i += copy(dAtA[i:], m.Info)
  6350. }
  6351. if m.Index != 0 {
  6352. dAtA[i] = 0x28
  6353. i++
  6354. i = encodeVarintTypes(dAtA, i, uint64(m.Index))
  6355. }
  6356. if len(m.Key) > 0 {
  6357. dAtA[i] = 0x32
  6358. i++
  6359. i = encodeVarintTypes(dAtA, i, uint64(len(m.Key)))
  6360. i += copy(dAtA[i:], m.Key)
  6361. }
  6362. if len(m.Value) > 0 {
  6363. dAtA[i] = 0x3a
  6364. i++
  6365. i = encodeVarintTypes(dAtA, i, uint64(len(m.Value)))
  6366. i += copy(dAtA[i:], m.Value)
  6367. }
  6368. if m.Proof != nil {
  6369. dAtA[i] = 0x42
  6370. i++
  6371. i = encodeVarintTypes(dAtA, i, uint64(m.Proof.Size()))
  6372. n31, err := m.Proof.MarshalTo(dAtA[i:])
  6373. if err != nil {
  6374. return 0, err
  6375. }
  6376. i += n31
  6377. }
  6378. if m.Height != 0 {
  6379. dAtA[i] = 0x48
  6380. i++
  6381. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  6382. }
  6383. if len(m.Codespace) > 0 {
  6384. dAtA[i] = 0x52
  6385. i++
  6386. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6387. i += copy(dAtA[i:], m.Codespace)
  6388. }
  6389. if m.XXX_unrecognized != nil {
  6390. i += copy(dAtA[i:], m.XXX_unrecognized)
  6391. }
  6392. return i, nil
  6393. }
  6394. func (m *ResponseBeginBlock) Marshal() (dAtA []byte, err error) {
  6395. size := m.Size()
  6396. dAtA = make([]byte, size)
  6397. n, err := m.MarshalTo(dAtA)
  6398. if err != nil {
  6399. return nil, err
  6400. }
  6401. return dAtA[:n], nil
  6402. }
  6403. func (m *ResponseBeginBlock) MarshalTo(dAtA []byte) (int, error) {
  6404. var i int
  6405. _ = i
  6406. var l int
  6407. _ = l
  6408. if len(m.Events) > 0 {
  6409. for _, msg := range m.Events {
  6410. dAtA[i] = 0xa
  6411. i++
  6412. i = encodeVarintTypes(dAtA, i, uint64(msg.Size()))
  6413. n, err := msg.MarshalTo(dAtA[i:])
  6414. if err != nil {
  6415. return 0, err
  6416. }
  6417. i += n
  6418. }
  6419. }
  6420. if m.XXX_unrecognized != nil {
  6421. i += copy(dAtA[i:], m.XXX_unrecognized)
  6422. }
  6423. return i, nil
  6424. }
  6425. func (m *ResponseCheckTx) Marshal() (dAtA []byte, err error) {
  6426. size := m.Size()
  6427. dAtA = make([]byte, size)
  6428. n, err := m.MarshalTo(dAtA)
  6429. if err != nil {
  6430. return nil, err
  6431. }
  6432. return dAtA[:n], nil
  6433. }
  6434. func (m *ResponseCheckTx) MarshalTo(dAtA []byte) (int, error) {
  6435. var i int
  6436. _ = i
  6437. var l int
  6438. _ = l
  6439. if m.Code != 0 {
  6440. dAtA[i] = 0x8
  6441. i++
  6442. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6443. }
  6444. if len(m.Data) > 0 {
  6445. dAtA[i] = 0x12
  6446. i++
  6447. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6448. i += copy(dAtA[i:], m.Data)
  6449. }
  6450. if len(m.Log) > 0 {
  6451. dAtA[i] = 0x1a
  6452. i++
  6453. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6454. i += copy(dAtA[i:], m.Log)
  6455. }
  6456. if len(m.Info) > 0 {
  6457. dAtA[i] = 0x22
  6458. i++
  6459. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6460. i += copy(dAtA[i:], m.Info)
  6461. }
  6462. if m.GasWanted != 0 {
  6463. dAtA[i] = 0x28
  6464. i++
  6465. i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted))
  6466. }
  6467. if m.GasUsed != 0 {
  6468. dAtA[i] = 0x30
  6469. i++
  6470. i = encodeVarintTypes(dAtA, i, uint64(m.GasUsed))
  6471. }
  6472. if len(m.Events) > 0 {
  6473. for _, msg := range m.Events {
  6474. dAtA[i] = 0x3a
  6475. i++
  6476. i = encodeVarintTypes(dAtA, i, uint64(msg.Size()))
  6477. n, err := msg.MarshalTo(dAtA[i:])
  6478. if err != nil {
  6479. return 0, err
  6480. }
  6481. i += n
  6482. }
  6483. }
  6484. if len(m.Codespace) > 0 {
  6485. dAtA[i] = 0x42
  6486. i++
  6487. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6488. i += copy(dAtA[i:], m.Codespace)
  6489. }
  6490. if m.XXX_unrecognized != nil {
  6491. i += copy(dAtA[i:], m.XXX_unrecognized)
  6492. }
  6493. return 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.MarshalTo(dAtA)
  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. var i int
  6506. _ = i
  6507. var l int
  6508. _ = l
  6509. if m.Code != 0 {
  6510. dAtA[i] = 0x8
  6511. i++
  6512. i = encodeVarintTypes(dAtA, i, uint64(m.Code))
  6513. }
  6514. if len(m.Data) > 0 {
  6515. dAtA[i] = 0x12
  6516. i++
  6517. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6518. i += copy(dAtA[i:], m.Data)
  6519. }
  6520. if len(m.Log) > 0 {
  6521. dAtA[i] = 0x1a
  6522. i++
  6523. i = encodeVarintTypes(dAtA, i, uint64(len(m.Log)))
  6524. i += copy(dAtA[i:], m.Log)
  6525. }
  6526. if len(m.Info) > 0 {
  6527. dAtA[i] = 0x22
  6528. i++
  6529. i = encodeVarintTypes(dAtA, i, uint64(len(m.Info)))
  6530. i += copy(dAtA[i:], m.Info)
  6531. }
  6532. if m.GasWanted != 0 {
  6533. dAtA[i] = 0x28
  6534. i++
  6535. i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted))
  6536. }
  6537. if m.GasUsed != 0 {
  6538. dAtA[i] = 0x30
  6539. i++
  6540. i = encodeVarintTypes(dAtA, i, uint64(m.GasUsed))
  6541. }
  6542. if len(m.Events) > 0 {
  6543. for _, msg := range m.Events {
  6544. dAtA[i] = 0x3a
  6545. i++
  6546. i = encodeVarintTypes(dAtA, i, uint64(msg.Size()))
  6547. n, err := msg.MarshalTo(dAtA[i:])
  6548. if err != nil {
  6549. return 0, err
  6550. }
  6551. i += n
  6552. }
  6553. }
  6554. if len(m.Codespace) > 0 {
  6555. dAtA[i] = 0x42
  6556. i++
  6557. i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace)))
  6558. i += copy(dAtA[i:], m.Codespace)
  6559. }
  6560. if m.XXX_unrecognized != nil {
  6561. i += copy(dAtA[i:], m.XXX_unrecognized)
  6562. }
  6563. return i, nil
  6564. }
  6565. func (m *ResponseEndBlock) Marshal() (dAtA []byte, err error) {
  6566. size := m.Size()
  6567. dAtA = make([]byte, size)
  6568. n, err := m.MarshalTo(dAtA)
  6569. if err != nil {
  6570. return nil, err
  6571. }
  6572. return dAtA[:n], nil
  6573. }
  6574. func (m *ResponseEndBlock) MarshalTo(dAtA []byte) (int, error) {
  6575. var i int
  6576. _ = i
  6577. var l int
  6578. _ = l
  6579. if len(m.ValidatorUpdates) > 0 {
  6580. for _, msg := range m.ValidatorUpdates {
  6581. dAtA[i] = 0xa
  6582. i++
  6583. i = encodeVarintTypes(dAtA, i, uint64(msg.Size()))
  6584. n, err := msg.MarshalTo(dAtA[i:])
  6585. if err != nil {
  6586. return 0, err
  6587. }
  6588. i += n
  6589. }
  6590. }
  6591. if m.ConsensusParamUpdates != nil {
  6592. dAtA[i] = 0x12
  6593. i++
  6594. i = encodeVarintTypes(dAtA, i, uint64(m.ConsensusParamUpdates.Size()))
  6595. n32, err := m.ConsensusParamUpdates.MarshalTo(dAtA[i:])
  6596. if err != nil {
  6597. return 0, err
  6598. }
  6599. i += n32
  6600. }
  6601. if len(m.Events) > 0 {
  6602. for _, msg := range m.Events {
  6603. dAtA[i] = 0x1a
  6604. i++
  6605. i = encodeVarintTypes(dAtA, i, uint64(msg.Size()))
  6606. n, err := msg.MarshalTo(dAtA[i:])
  6607. if err != nil {
  6608. return 0, err
  6609. }
  6610. i += n
  6611. }
  6612. }
  6613. if m.XXX_unrecognized != nil {
  6614. i += copy(dAtA[i:], m.XXX_unrecognized)
  6615. }
  6616. return i, nil
  6617. }
  6618. func (m *ResponseCommit) Marshal() (dAtA []byte, err error) {
  6619. size := m.Size()
  6620. dAtA = make([]byte, size)
  6621. n, err := m.MarshalTo(dAtA)
  6622. if err != nil {
  6623. return nil, err
  6624. }
  6625. return dAtA[:n], nil
  6626. }
  6627. func (m *ResponseCommit) MarshalTo(dAtA []byte) (int, error) {
  6628. var i int
  6629. _ = i
  6630. var l int
  6631. _ = l
  6632. if len(m.Data) > 0 {
  6633. dAtA[i] = 0x12
  6634. i++
  6635. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  6636. i += copy(dAtA[i:], m.Data)
  6637. }
  6638. if m.XXX_unrecognized != nil {
  6639. i += copy(dAtA[i:], m.XXX_unrecognized)
  6640. }
  6641. return i, nil
  6642. }
  6643. func (m *ConsensusParams) Marshal() (dAtA []byte, err error) {
  6644. size := m.Size()
  6645. dAtA = make([]byte, size)
  6646. n, err := m.MarshalTo(dAtA)
  6647. if err != nil {
  6648. return nil, err
  6649. }
  6650. return dAtA[:n], nil
  6651. }
  6652. func (m *ConsensusParams) MarshalTo(dAtA []byte) (int, error) {
  6653. var i int
  6654. _ = i
  6655. var l int
  6656. _ = l
  6657. if m.Block != nil {
  6658. dAtA[i] = 0xa
  6659. i++
  6660. i = encodeVarintTypes(dAtA, i, uint64(m.Block.Size()))
  6661. n33, err := m.Block.MarshalTo(dAtA[i:])
  6662. if err != nil {
  6663. return 0, err
  6664. }
  6665. i += n33
  6666. }
  6667. if m.Evidence != nil {
  6668. dAtA[i] = 0x12
  6669. i++
  6670. i = encodeVarintTypes(dAtA, i, uint64(m.Evidence.Size()))
  6671. n34, err := m.Evidence.MarshalTo(dAtA[i:])
  6672. if err != nil {
  6673. return 0, err
  6674. }
  6675. i += n34
  6676. }
  6677. if m.Validator != nil {
  6678. dAtA[i] = 0x1a
  6679. i++
  6680. i = encodeVarintTypes(dAtA, i, uint64(m.Validator.Size()))
  6681. n35, err := m.Validator.MarshalTo(dAtA[i:])
  6682. if err != nil {
  6683. return 0, err
  6684. }
  6685. i += n35
  6686. }
  6687. if m.XXX_unrecognized != nil {
  6688. i += copy(dAtA[i:], m.XXX_unrecognized)
  6689. }
  6690. return i, nil
  6691. }
  6692. func (m *BlockParams) Marshal() (dAtA []byte, err error) {
  6693. size := m.Size()
  6694. dAtA = make([]byte, size)
  6695. n, err := m.MarshalTo(dAtA)
  6696. if err != nil {
  6697. return nil, err
  6698. }
  6699. return dAtA[:n], nil
  6700. }
  6701. func (m *BlockParams) MarshalTo(dAtA []byte) (int, error) {
  6702. var i int
  6703. _ = i
  6704. var l int
  6705. _ = l
  6706. if m.MaxBytes != 0 {
  6707. dAtA[i] = 0x8
  6708. i++
  6709. i = encodeVarintTypes(dAtA, i, uint64(m.MaxBytes))
  6710. }
  6711. if m.MaxGas != 0 {
  6712. dAtA[i] = 0x10
  6713. i++
  6714. i = encodeVarintTypes(dAtA, i, uint64(m.MaxGas))
  6715. }
  6716. if m.XXX_unrecognized != nil {
  6717. i += copy(dAtA[i:], m.XXX_unrecognized)
  6718. }
  6719. return i, nil
  6720. }
  6721. func (m *EvidenceParams) Marshal() (dAtA []byte, err error) {
  6722. size := m.Size()
  6723. dAtA = make([]byte, size)
  6724. n, err := m.MarshalTo(dAtA)
  6725. if err != nil {
  6726. return nil, err
  6727. }
  6728. return dAtA[:n], nil
  6729. }
  6730. func (m *EvidenceParams) MarshalTo(dAtA []byte) (int, error) {
  6731. var i int
  6732. _ = i
  6733. var l int
  6734. _ = l
  6735. if m.MaxAge != 0 {
  6736. dAtA[i] = 0x8
  6737. i++
  6738. i = encodeVarintTypes(dAtA, i, uint64(m.MaxAge))
  6739. }
  6740. if m.XXX_unrecognized != nil {
  6741. i += copy(dAtA[i:], m.XXX_unrecognized)
  6742. }
  6743. return i, nil
  6744. }
  6745. func (m *ValidatorParams) Marshal() (dAtA []byte, err error) {
  6746. size := m.Size()
  6747. dAtA = make([]byte, size)
  6748. n, err := m.MarshalTo(dAtA)
  6749. if err != nil {
  6750. return nil, err
  6751. }
  6752. return dAtA[:n], nil
  6753. }
  6754. func (m *ValidatorParams) MarshalTo(dAtA []byte) (int, error) {
  6755. var i int
  6756. _ = i
  6757. var l int
  6758. _ = l
  6759. if len(m.PubKeyTypes) > 0 {
  6760. for _, s := range m.PubKeyTypes {
  6761. dAtA[i] = 0xa
  6762. i++
  6763. l = len(s)
  6764. for l >= 1<<7 {
  6765. dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
  6766. l >>= 7
  6767. i++
  6768. }
  6769. dAtA[i] = uint8(l)
  6770. i++
  6771. i += copy(dAtA[i:], s)
  6772. }
  6773. }
  6774. if m.XXX_unrecognized != nil {
  6775. i += copy(dAtA[i:], m.XXX_unrecognized)
  6776. }
  6777. return i, nil
  6778. }
  6779. func (m *LastCommitInfo) Marshal() (dAtA []byte, err error) {
  6780. size := m.Size()
  6781. dAtA = make([]byte, size)
  6782. n, err := m.MarshalTo(dAtA)
  6783. if err != nil {
  6784. return nil, err
  6785. }
  6786. return dAtA[:n], nil
  6787. }
  6788. func (m *LastCommitInfo) MarshalTo(dAtA []byte) (int, error) {
  6789. var i int
  6790. _ = i
  6791. var l int
  6792. _ = l
  6793. if m.Round != 0 {
  6794. dAtA[i] = 0x8
  6795. i++
  6796. i = encodeVarintTypes(dAtA, i, uint64(m.Round))
  6797. }
  6798. if len(m.Votes) > 0 {
  6799. for _, msg := range m.Votes {
  6800. dAtA[i] = 0x12
  6801. i++
  6802. i = encodeVarintTypes(dAtA, i, uint64(msg.Size()))
  6803. n, err := msg.MarshalTo(dAtA[i:])
  6804. if err != nil {
  6805. return 0, err
  6806. }
  6807. i += n
  6808. }
  6809. }
  6810. if m.XXX_unrecognized != nil {
  6811. i += copy(dAtA[i:], m.XXX_unrecognized)
  6812. }
  6813. return i, nil
  6814. }
  6815. func (m *Event) Marshal() (dAtA []byte, err error) {
  6816. size := m.Size()
  6817. dAtA = make([]byte, size)
  6818. n, err := m.MarshalTo(dAtA)
  6819. if err != nil {
  6820. return nil, err
  6821. }
  6822. return dAtA[:n], nil
  6823. }
  6824. func (m *Event) MarshalTo(dAtA []byte) (int, error) {
  6825. var i int
  6826. _ = i
  6827. var l int
  6828. _ = l
  6829. if len(m.Type) > 0 {
  6830. dAtA[i] = 0xa
  6831. i++
  6832. i = encodeVarintTypes(dAtA, i, uint64(len(m.Type)))
  6833. i += copy(dAtA[i:], m.Type)
  6834. }
  6835. if len(m.Attributes) > 0 {
  6836. for _, msg := range m.Attributes {
  6837. dAtA[i] = 0x12
  6838. i++
  6839. i = encodeVarintTypes(dAtA, i, uint64(msg.Size()))
  6840. n, err := msg.MarshalTo(dAtA[i:])
  6841. if err != nil {
  6842. return 0, err
  6843. }
  6844. i += n
  6845. }
  6846. }
  6847. if m.XXX_unrecognized != nil {
  6848. i += copy(dAtA[i:], m.XXX_unrecognized)
  6849. }
  6850. return i, nil
  6851. }
  6852. func (m *Header) Marshal() (dAtA []byte, err error) {
  6853. size := m.Size()
  6854. dAtA = make([]byte, size)
  6855. n, err := m.MarshalTo(dAtA)
  6856. if err != nil {
  6857. return nil, err
  6858. }
  6859. return dAtA[:n], nil
  6860. }
  6861. func (m *Header) MarshalTo(dAtA []byte) (int, error) {
  6862. var i int
  6863. _ = i
  6864. var l int
  6865. _ = l
  6866. dAtA[i] = 0xa
  6867. i++
  6868. i = encodeVarintTypes(dAtA, i, uint64(m.Version.Size()))
  6869. n36, err := m.Version.MarshalTo(dAtA[i:])
  6870. if err != nil {
  6871. return 0, err
  6872. }
  6873. i += n36
  6874. if len(m.ChainID) > 0 {
  6875. dAtA[i] = 0x12
  6876. i++
  6877. i = encodeVarintTypes(dAtA, i, uint64(len(m.ChainID)))
  6878. i += copy(dAtA[i:], m.ChainID)
  6879. }
  6880. if m.Height != 0 {
  6881. dAtA[i] = 0x18
  6882. i++
  6883. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  6884. }
  6885. dAtA[i] = 0x22
  6886. i++
  6887. i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)))
  6888. n37, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i:])
  6889. if err != nil {
  6890. return 0, err
  6891. }
  6892. i += n37
  6893. if m.NumTxs != 0 {
  6894. dAtA[i] = 0x28
  6895. i++
  6896. i = encodeVarintTypes(dAtA, i, uint64(m.NumTxs))
  6897. }
  6898. if m.TotalTxs != 0 {
  6899. dAtA[i] = 0x30
  6900. i++
  6901. i = encodeVarintTypes(dAtA, i, uint64(m.TotalTxs))
  6902. }
  6903. dAtA[i] = 0x3a
  6904. i++
  6905. i = encodeVarintTypes(dAtA, i, uint64(m.LastBlockId.Size()))
  6906. n38, err := m.LastBlockId.MarshalTo(dAtA[i:])
  6907. if err != nil {
  6908. return 0, err
  6909. }
  6910. i += n38
  6911. if len(m.LastCommitHash) > 0 {
  6912. dAtA[i] = 0x42
  6913. i++
  6914. i = encodeVarintTypes(dAtA, i, uint64(len(m.LastCommitHash)))
  6915. i += copy(dAtA[i:], m.LastCommitHash)
  6916. }
  6917. if len(m.DataHash) > 0 {
  6918. dAtA[i] = 0x4a
  6919. i++
  6920. i = encodeVarintTypes(dAtA, i, uint64(len(m.DataHash)))
  6921. i += copy(dAtA[i:], m.DataHash)
  6922. }
  6923. if len(m.ValidatorsHash) > 0 {
  6924. dAtA[i] = 0x52
  6925. i++
  6926. i = encodeVarintTypes(dAtA, i, uint64(len(m.ValidatorsHash)))
  6927. i += copy(dAtA[i:], m.ValidatorsHash)
  6928. }
  6929. if len(m.NextValidatorsHash) > 0 {
  6930. dAtA[i] = 0x5a
  6931. i++
  6932. i = encodeVarintTypes(dAtA, i, uint64(len(m.NextValidatorsHash)))
  6933. i += copy(dAtA[i:], m.NextValidatorsHash)
  6934. }
  6935. if len(m.ConsensusHash) > 0 {
  6936. dAtA[i] = 0x62
  6937. i++
  6938. i = encodeVarintTypes(dAtA, i, uint64(len(m.ConsensusHash)))
  6939. i += copy(dAtA[i:], m.ConsensusHash)
  6940. }
  6941. if len(m.AppHash) > 0 {
  6942. dAtA[i] = 0x6a
  6943. i++
  6944. i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash)))
  6945. i += copy(dAtA[i:], m.AppHash)
  6946. }
  6947. if len(m.LastResultsHash) > 0 {
  6948. dAtA[i] = 0x72
  6949. i++
  6950. i = encodeVarintTypes(dAtA, i, uint64(len(m.LastResultsHash)))
  6951. i += copy(dAtA[i:], m.LastResultsHash)
  6952. }
  6953. if len(m.EvidenceHash) > 0 {
  6954. dAtA[i] = 0x7a
  6955. i++
  6956. i = encodeVarintTypes(dAtA, i, uint64(len(m.EvidenceHash)))
  6957. i += copy(dAtA[i:], m.EvidenceHash)
  6958. }
  6959. if len(m.ProposerAddress) > 0 {
  6960. dAtA[i] = 0x82
  6961. i++
  6962. dAtA[i] = 0x1
  6963. i++
  6964. i = encodeVarintTypes(dAtA, i, uint64(len(m.ProposerAddress)))
  6965. i += copy(dAtA[i:], m.ProposerAddress)
  6966. }
  6967. if m.XXX_unrecognized != nil {
  6968. i += copy(dAtA[i:], m.XXX_unrecognized)
  6969. }
  6970. return i, nil
  6971. }
  6972. func (m *Version) Marshal() (dAtA []byte, err error) {
  6973. size := m.Size()
  6974. dAtA = make([]byte, size)
  6975. n, err := m.MarshalTo(dAtA)
  6976. if err != nil {
  6977. return nil, err
  6978. }
  6979. return dAtA[:n], nil
  6980. }
  6981. func (m *Version) MarshalTo(dAtA []byte) (int, error) {
  6982. var i int
  6983. _ = i
  6984. var l int
  6985. _ = l
  6986. if m.Block != 0 {
  6987. dAtA[i] = 0x8
  6988. i++
  6989. i = encodeVarintTypes(dAtA, i, uint64(m.Block))
  6990. }
  6991. if m.App != 0 {
  6992. dAtA[i] = 0x10
  6993. i++
  6994. i = encodeVarintTypes(dAtA, i, uint64(m.App))
  6995. }
  6996. if m.XXX_unrecognized != nil {
  6997. i += copy(dAtA[i:], m.XXX_unrecognized)
  6998. }
  6999. return i, nil
  7000. }
  7001. func (m *BlockID) Marshal() (dAtA []byte, err error) {
  7002. size := m.Size()
  7003. dAtA = make([]byte, size)
  7004. n, err := m.MarshalTo(dAtA)
  7005. if err != nil {
  7006. return nil, err
  7007. }
  7008. return dAtA[:n], nil
  7009. }
  7010. func (m *BlockID) MarshalTo(dAtA []byte) (int, error) {
  7011. var i int
  7012. _ = i
  7013. var l int
  7014. _ = l
  7015. if len(m.Hash) > 0 {
  7016. dAtA[i] = 0xa
  7017. i++
  7018. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  7019. i += copy(dAtA[i:], m.Hash)
  7020. }
  7021. dAtA[i] = 0x12
  7022. i++
  7023. i = encodeVarintTypes(dAtA, i, uint64(m.PartsHeader.Size()))
  7024. n39, err := m.PartsHeader.MarshalTo(dAtA[i:])
  7025. if err != nil {
  7026. return 0, err
  7027. }
  7028. i += n39
  7029. if m.XXX_unrecognized != nil {
  7030. i += copy(dAtA[i:], m.XXX_unrecognized)
  7031. }
  7032. return i, nil
  7033. }
  7034. func (m *PartSetHeader) Marshal() (dAtA []byte, err error) {
  7035. size := m.Size()
  7036. dAtA = make([]byte, size)
  7037. n, err := m.MarshalTo(dAtA)
  7038. if err != nil {
  7039. return nil, err
  7040. }
  7041. return dAtA[:n], nil
  7042. }
  7043. func (m *PartSetHeader) MarshalTo(dAtA []byte) (int, error) {
  7044. var i int
  7045. _ = i
  7046. var l int
  7047. _ = l
  7048. if m.Total != 0 {
  7049. dAtA[i] = 0x8
  7050. i++
  7051. i = encodeVarintTypes(dAtA, i, uint64(m.Total))
  7052. }
  7053. if len(m.Hash) > 0 {
  7054. dAtA[i] = 0x12
  7055. i++
  7056. i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash)))
  7057. i += copy(dAtA[i:], m.Hash)
  7058. }
  7059. if m.XXX_unrecognized != nil {
  7060. i += copy(dAtA[i:], m.XXX_unrecognized)
  7061. }
  7062. return i, nil
  7063. }
  7064. func (m *Validator) Marshal() (dAtA []byte, err error) {
  7065. size := m.Size()
  7066. dAtA = make([]byte, size)
  7067. n, err := m.MarshalTo(dAtA)
  7068. if err != nil {
  7069. return nil, err
  7070. }
  7071. return dAtA[:n], nil
  7072. }
  7073. func (m *Validator) MarshalTo(dAtA []byte) (int, error) {
  7074. var i int
  7075. _ = i
  7076. var l int
  7077. _ = l
  7078. if len(m.Address) > 0 {
  7079. dAtA[i] = 0xa
  7080. i++
  7081. i = encodeVarintTypes(dAtA, i, uint64(len(m.Address)))
  7082. i += copy(dAtA[i:], m.Address)
  7083. }
  7084. if m.Power != 0 {
  7085. dAtA[i] = 0x18
  7086. i++
  7087. i = encodeVarintTypes(dAtA, i, uint64(m.Power))
  7088. }
  7089. if m.XXX_unrecognized != nil {
  7090. i += copy(dAtA[i:], m.XXX_unrecognized)
  7091. }
  7092. return i, nil
  7093. }
  7094. func (m *ValidatorUpdate) Marshal() (dAtA []byte, err error) {
  7095. size := m.Size()
  7096. dAtA = make([]byte, size)
  7097. n, err := m.MarshalTo(dAtA)
  7098. if err != nil {
  7099. return nil, err
  7100. }
  7101. return dAtA[:n], nil
  7102. }
  7103. func (m *ValidatorUpdate) MarshalTo(dAtA []byte) (int, error) {
  7104. var i int
  7105. _ = i
  7106. var l int
  7107. _ = l
  7108. dAtA[i] = 0xa
  7109. i++
  7110. i = encodeVarintTypes(dAtA, i, uint64(m.PubKey.Size()))
  7111. n40, err := m.PubKey.MarshalTo(dAtA[i:])
  7112. if err != nil {
  7113. return 0, err
  7114. }
  7115. i += n40
  7116. if m.Power != 0 {
  7117. dAtA[i] = 0x10
  7118. i++
  7119. i = encodeVarintTypes(dAtA, i, uint64(m.Power))
  7120. }
  7121. if m.XXX_unrecognized != nil {
  7122. i += copy(dAtA[i:], m.XXX_unrecognized)
  7123. }
  7124. return i, nil
  7125. }
  7126. func (m *VoteInfo) Marshal() (dAtA []byte, err error) {
  7127. size := m.Size()
  7128. dAtA = make([]byte, size)
  7129. n, err := m.MarshalTo(dAtA)
  7130. if err != nil {
  7131. return nil, err
  7132. }
  7133. return dAtA[:n], nil
  7134. }
  7135. func (m *VoteInfo) MarshalTo(dAtA []byte) (int, error) {
  7136. var i int
  7137. _ = i
  7138. var l int
  7139. _ = l
  7140. dAtA[i] = 0xa
  7141. i++
  7142. i = encodeVarintTypes(dAtA, i, uint64(m.Validator.Size()))
  7143. n41, err := m.Validator.MarshalTo(dAtA[i:])
  7144. if err != nil {
  7145. return 0, err
  7146. }
  7147. i += n41
  7148. if m.SignedLastBlock {
  7149. dAtA[i] = 0x10
  7150. i++
  7151. if m.SignedLastBlock {
  7152. dAtA[i] = 1
  7153. } else {
  7154. dAtA[i] = 0
  7155. }
  7156. i++
  7157. }
  7158. if m.XXX_unrecognized != nil {
  7159. i += copy(dAtA[i:], m.XXX_unrecognized)
  7160. }
  7161. return i, nil
  7162. }
  7163. func (m *PubKey) Marshal() (dAtA []byte, err error) {
  7164. size := m.Size()
  7165. dAtA = make([]byte, size)
  7166. n, err := m.MarshalTo(dAtA)
  7167. if err != nil {
  7168. return nil, err
  7169. }
  7170. return dAtA[:n], nil
  7171. }
  7172. func (m *PubKey) MarshalTo(dAtA []byte) (int, error) {
  7173. var i int
  7174. _ = i
  7175. var l int
  7176. _ = l
  7177. if len(m.Type) > 0 {
  7178. dAtA[i] = 0xa
  7179. i++
  7180. i = encodeVarintTypes(dAtA, i, uint64(len(m.Type)))
  7181. i += copy(dAtA[i:], m.Type)
  7182. }
  7183. if len(m.Data) > 0 {
  7184. dAtA[i] = 0x12
  7185. i++
  7186. i = encodeVarintTypes(dAtA, i, uint64(len(m.Data)))
  7187. i += copy(dAtA[i:], m.Data)
  7188. }
  7189. if m.XXX_unrecognized != nil {
  7190. i += copy(dAtA[i:], m.XXX_unrecognized)
  7191. }
  7192. return i, nil
  7193. }
  7194. func (m *Evidence) Marshal() (dAtA []byte, err error) {
  7195. size := m.Size()
  7196. dAtA = make([]byte, size)
  7197. n, err := m.MarshalTo(dAtA)
  7198. if err != nil {
  7199. return nil, err
  7200. }
  7201. return dAtA[:n], nil
  7202. }
  7203. func (m *Evidence) MarshalTo(dAtA []byte) (int, error) {
  7204. var i int
  7205. _ = i
  7206. var l int
  7207. _ = l
  7208. if len(m.Type) > 0 {
  7209. dAtA[i] = 0xa
  7210. i++
  7211. i = encodeVarintTypes(dAtA, i, uint64(len(m.Type)))
  7212. i += copy(dAtA[i:], m.Type)
  7213. }
  7214. dAtA[i] = 0x12
  7215. i++
  7216. i = encodeVarintTypes(dAtA, i, uint64(m.Validator.Size()))
  7217. n42, err := m.Validator.MarshalTo(dAtA[i:])
  7218. if err != nil {
  7219. return 0, err
  7220. }
  7221. i += n42
  7222. if m.Height != 0 {
  7223. dAtA[i] = 0x18
  7224. i++
  7225. i = encodeVarintTypes(dAtA, i, uint64(m.Height))
  7226. }
  7227. dAtA[i] = 0x22
  7228. i++
  7229. i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)))
  7230. n43, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i:])
  7231. if err != nil {
  7232. return 0, err
  7233. }
  7234. i += n43
  7235. if m.TotalVotingPower != 0 {
  7236. dAtA[i] = 0x28
  7237. i++
  7238. i = encodeVarintTypes(dAtA, i, uint64(m.TotalVotingPower))
  7239. }
  7240. if m.XXX_unrecognized != nil {
  7241. i += copy(dAtA[i:], m.XXX_unrecognized)
  7242. }
  7243. return i, nil
  7244. }
  7245. func encodeVarintTypes(dAtA []byte, offset int, v uint64) int {
  7246. for v >= 1<<7 {
  7247. dAtA[offset] = uint8(v&0x7f | 0x80)
  7248. v >>= 7
  7249. offset++
  7250. }
  7251. dAtA[offset] = uint8(v)
  7252. return offset + 1
  7253. }
  7254. func NewPopulatedRequest(r randyTypes, easy bool) *Request {
  7255. this := &Request{}
  7256. oneofNumber_Value := []int32{2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 19}[r.Intn(11)]
  7257. switch oneofNumber_Value {
  7258. case 2:
  7259. this.Value = NewPopulatedRequest_Echo(r, easy)
  7260. case 3:
  7261. this.Value = NewPopulatedRequest_Flush(r, easy)
  7262. case 4:
  7263. this.Value = NewPopulatedRequest_Info(r, easy)
  7264. case 5:
  7265. this.Value = NewPopulatedRequest_SetOption(r, easy)
  7266. case 6:
  7267. this.Value = NewPopulatedRequest_InitChain(r, easy)
  7268. case 7:
  7269. this.Value = NewPopulatedRequest_Query(r, easy)
  7270. case 8:
  7271. this.Value = NewPopulatedRequest_BeginBlock(r, easy)
  7272. case 9:
  7273. this.Value = NewPopulatedRequest_CheckTx(r, easy)
  7274. case 11:
  7275. this.Value = NewPopulatedRequest_EndBlock(r, easy)
  7276. case 12:
  7277. this.Value = NewPopulatedRequest_Commit(r, easy)
  7278. case 19:
  7279. this.Value = NewPopulatedRequest_DeliverTx(r, easy)
  7280. }
  7281. if !easy && r.Intn(10) != 0 {
  7282. this.XXX_unrecognized = randUnrecognizedTypes(r, 20)
  7283. }
  7284. return this
  7285. }
  7286. func NewPopulatedRequest_Echo(r randyTypes, easy bool) *Request_Echo {
  7287. this := &Request_Echo{}
  7288. this.Echo = NewPopulatedRequestEcho(r, easy)
  7289. return this
  7290. }
  7291. func NewPopulatedRequest_Flush(r randyTypes, easy bool) *Request_Flush {
  7292. this := &Request_Flush{}
  7293. this.Flush = NewPopulatedRequestFlush(r, easy)
  7294. return this
  7295. }
  7296. func NewPopulatedRequest_Info(r randyTypes, easy bool) *Request_Info {
  7297. this := &Request_Info{}
  7298. this.Info = NewPopulatedRequestInfo(r, easy)
  7299. return this
  7300. }
  7301. func NewPopulatedRequest_SetOption(r randyTypes, easy bool) *Request_SetOption {
  7302. this := &Request_SetOption{}
  7303. this.SetOption = NewPopulatedRequestSetOption(r, easy)
  7304. return this
  7305. }
  7306. func NewPopulatedRequest_InitChain(r randyTypes, easy bool) *Request_InitChain {
  7307. this := &Request_InitChain{}
  7308. this.InitChain = NewPopulatedRequestInitChain(r, easy)
  7309. return this
  7310. }
  7311. func NewPopulatedRequest_Query(r randyTypes, easy bool) *Request_Query {
  7312. this := &Request_Query{}
  7313. this.Query = NewPopulatedRequestQuery(r, easy)
  7314. return this
  7315. }
  7316. func NewPopulatedRequest_BeginBlock(r randyTypes, easy bool) *Request_BeginBlock {
  7317. this := &Request_BeginBlock{}
  7318. this.BeginBlock = NewPopulatedRequestBeginBlock(r, easy)
  7319. return this
  7320. }
  7321. func NewPopulatedRequest_CheckTx(r randyTypes, easy bool) *Request_CheckTx {
  7322. this := &Request_CheckTx{}
  7323. this.CheckTx = NewPopulatedRequestCheckTx(r, easy)
  7324. return this
  7325. }
  7326. func NewPopulatedRequest_EndBlock(r randyTypes, easy bool) *Request_EndBlock {
  7327. this := &Request_EndBlock{}
  7328. this.EndBlock = NewPopulatedRequestEndBlock(r, easy)
  7329. return this
  7330. }
  7331. func NewPopulatedRequest_Commit(r randyTypes, easy bool) *Request_Commit {
  7332. this := &Request_Commit{}
  7333. this.Commit = NewPopulatedRequestCommit(r, easy)
  7334. return this
  7335. }
  7336. func NewPopulatedRequest_DeliverTx(r randyTypes, easy bool) *Request_DeliverTx {
  7337. this := &Request_DeliverTx{}
  7338. this.DeliverTx = NewPopulatedRequestDeliverTx(r, easy)
  7339. return this
  7340. }
  7341. func NewPopulatedRequestEcho(r randyTypes, easy bool) *RequestEcho {
  7342. this := &RequestEcho{}
  7343. this.Message = string(randStringTypes(r))
  7344. if !easy && r.Intn(10) != 0 {
  7345. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7346. }
  7347. return this
  7348. }
  7349. func NewPopulatedRequestFlush(r randyTypes, easy bool) *RequestFlush {
  7350. this := &RequestFlush{}
  7351. if !easy && r.Intn(10) != 0 {
  7352. this.XXX_unrecognized = randUnrecognizedTypes(r, 1)
  7353. }
  7354. return this
  7355. }
  7356. func NewPopulatedRequestInfo(r randyTypes, easy bool) *RequestInfo {
  7357. this := &RequestInfo{}
  7358. this.Version = string(randStringTypes(r))
  7359. this.BlockVersion = uint64(uint64(r.Uint32()))
  7360. this.P2PVersion = uint64(uint64(r.Uint32()))
  7361. if !easy && r.Intn(10) != 0 {
  7362. this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
  7363. }
  7364. return this
  7365. }
  7366. func NewPopulatedRequestSetOption(r randyTypes, easy bool) *RequestSetOption {
  7367. this := &RequestSetOption{}
  7368. this.Key = string(randStringTypes(r))
  7369. this.Value = string(randStringTypes(r))
  7370. if !easy && r.Intn(10) != 0 {
  7371. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7372. }
  7373. return this
  7374. }
  7375. func NewPopulatedRequestInitChain(r randyTypes, easy bool) *RequestInitChain {
  7376. this := &RequestInitChain{}
  7377. v1 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy)
  7378. this.Time = *v1
  7379. this.ChainId = string(randStringTypes(r))
  7380. if r.Intn(10) != 0 {
  7381. this.ConsensusParams = NewPopulatedConsensusParams(r, easy)
  7382. }
  7383. if r.Intn(10) != 0 {
  7384. v2 := r.Intn(5)
  7385. this.Validators = make([]ValidatorUpdate, v2)
  7386. for i := 0; i < v2; i++ {
  7387. v3 := NewPopulatedValidatorUpdate(r, easy)
  7388. this.Validators[i] = *v3
  7389. }
  7390. }
  7391. v4 := r.Intn(100)
  7392. this.AppStateBytes = make([]byte, v4)
  7393. for i := 0; i < v4; i++ {
  7394. this.AppStateBytes[i] = byte(r.Intn(256))
  7395. }
  7396. if !easy && r.Intn(10) != 0 {
  7397. this.XXX_unrecognized = randUnrecognizedTypes(r, 6)
  7398. }
  7399. return this
  7400. }
  7401. func NewPopulatedRequestQuery(r randyTypes, easy bool) *RequestQuery {
  7402. this := &RequestQuery{}
  7403. v5 := r.Intn(100)
  7404. this.Data = make([]byte, v5)
  7405. for i := 0; i < v5; i++ {
  7406. this.Data[i] = byte(r.Intn(256))
  7407. }
  7408. this.Path = string(randStringTypes(r))
  7409. this.Height = int64(r.Int63())
  7410. if r.Intn(2) == 0 {
  7411. this.Height *= -1
  7412. }
  7413. this.Prove = bool(bool(r.Intn(2) == 0))
  7414. if !easy && r.Intn(10) != 0 {
  7415. this.XXX_unrecognized = randUnrecognizedTypes(r, 5)
  7416. }
  7417. return this
  7418. }
  7419. func NewPopulatedRequestBeginBlock(r randyTypes, easy bool) *RequestBeginBlock {
  7420. this := &RequestBeginBlock{}
  7421. v6 := r.Intn(100)
  7422. this.Hash = make([]byte, v6)
  7423. for i := 0; i < v6; i++ {
  7424. this.Hash[i] = byte(r.Intn(256))
  7425. }
  7426. v7 := NewPopulatedHeader(r, easy)
  7427. this.Header = *v7
  7428. v8 := NewPopulatedLastCommitInfo(r, easy)
  7429. this.LastCommitInfo = *v8
  7430. if r.Intn(10) != 0 {
  7431. v9 := r.Intn(5)
  7432. this.ByzantineValidators = make([]Evidence, v9)
  7433. for i := 0; i < v9; i++ {
  7434. v10 := NewPopulatedEvidence(r, easy)
  7435. this.ByzantineValidators[i] = *v10
  7436. }
  7437. }
  7438. if !easy && r.Intn(10) != 0 {
  7439. this.XXX_unrecognized = randUnrecognizedTypes(r, 5)
  7440. }
  7441. return this
  7442. }
  7443. func NewPopulatedRequestCheckTx(r randyTypes, easy bool) *RequestCheckTx {
  7444. this := &RequestCheckTx{}
  7445. v11 := r.Intn(100)
  7446. this.Tx = make([]byte, v11)
  7447. for i := 0; i < v11; i++ {
  7448. this.Tx[i] = byte(r.Intn(256))
  7449. }
  7450. this.Type = CheckTxType([]int32{0, 1}[r.Intn(2)])
  7451. if !easy && r.Intn(10) != 0 {
  7452. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7453. }
  7454. return this
  7455. }
  7456. func NewPopulatedRequestDeliverTx(r randyTypes, easy bool) *RequestDeliverTx {
  7457. this := &RequestDeliverTx{}
  7458. v12 := r.Intn(100)
  7459. this.Tx = make([]byte, v12)
  7460. for i := 0; i < v12; i++ {
  7461. this.Tx[i] = byte(r.Intn(256))
  7462. }
  7463. if !easy && r.Intn(10) != 0 {
  7464. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7465. }
  7466. return this
  7467. }
  7468. func NewPopulatedRequestEndBlock(r randyTypes, easy bool) *RequestEndBlock {
  7469. this := &RequestEndBlock{}
  7470. this.Height = int64(r.Int63())
  7471. if r.Intn(2) == 0 {
  7472. this.Height *= -1
  7473. }
  7474. if !easy && r.Intn(10) != 0 {
  7475. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7476. }
  7477. return this
  7478. }
  7479. func NewPopulatedRequestCommit(r randyTypes, easy bool) *RequestCommit {
  7480. this := &RequestCommit{}
  7481. if !easy && r.Intn(10) != 0 {
  7482. this.XXX_unrecognized = randUnrecognizedTypes(r, 1)
  7483. }
  7484. return this
  7485. }
  7486. func NewPopulatedResponse(r randyTypes, easy bool) *Response {
  7487. this := &Response{}
  7488. oneofNumber_Value := []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}[r.Intn(12)]
  7489. switch oneofNumber_Value {
  7490. case 1:
  7491. this.Value = NewPopulatedResponse_Exception(r, easy)
  7492. case 2:
  7493. this.Value = NewPopulatedResponse_Echo(r, easy)
  7494. case 3:
  7495. this.Value = NewPopulatedResponse_Flush(r, easy)
  7496. case 4:
  7497. this.Value = NewPopulatedResponse_Info(r, easy)
  7498. case 5:
  7499. this.Value = NewPopulatedResponse_SetOption(r, easy)
  7500. case 6:
  7501. this.Value = NewPopulatedResponse_InitChain(r, easy)
  7502. case 7:
  7503. this.Value = NewPopulatedResponse_Query(r, easy)
  7504. case 8:
  7505. this.Value = NewPopulatedResponse_BeginBlock(r, easy)
  7506. case 9:
  7507. this.Value = NewPopulatedResponse_CheckTx(r, easy)
  7508. case 10:
  7509. this.Value = NewPopulatedResponse_DeliverTx(r, easy)
  7510. case 11:
  7511. this.Value = NewPopulatedResponse_EndBlock(r, easy)
  7512. case 12:
  7513. this.Value = NewPopulatedResponse_Commit(r, easy)
  7514. }
  7515. if !easy && r.Intn(10) != 0 {
  7516. this.XXX_unrecognized = randUnrecognizedTypes(r, 13)
  7517. }
  7518. return this
  7519. }
  7520. func NewPopulatedResponse_Exception(r randyTypes, easy bool) *Response_Exception {
  7521. this := &Response_Exception{}
  7522. this.Exception = NewPopulatedResponseException(r, easy)
  7523. return this
  7524. }
  7525. func NewPopulatedResponse_Echo(r randyTypes, easy bool) *Response_Echo {
  7526. this := &Response_Echo{}
  7527. this.Echo = NewPopulatedResponseEcho(r, easy)
  7528. return this
  7529. }
  7530. func NewPopulatedResponse_Flush(r randyTypes, easy bool) *Response_Flush {
  7531. this := &Response_Flush{}
  7532. this.Flush = NewPopulatedResponseFlush(r, easy)
  7533. return this
  7534. }
  7535. func NewPopulatedResponse_Info(r randyTypes, easy bool) *Response_Info {
  7536. this := &Response_Info{}
  7537. this.Info = NewPopulatedResponseInfo(r, easy)
  7538. return this
  7539. }
  7540. func NewPopulatedResponse_SetOption(r randyTypes, easy bool) *Response_SetOption {
  7541. this := &Response_SetOption{}
  7542. this.SetOption = NewPopulatedResponseSetOption(r, easy)
  7543. return this
  7544. }
  7545. func NewPopulatedResponse_InitChain(r randyTypes, easy bool) *Response_InitChain {
  7546. this := &Response_InitChain{}
  7547. this.InitChain = NewPopulatedResponseInitChain(r, easy)
  7548. return this
  7549. }
  7550. func NewPopulatedResponse_Query(r randyTypes, easy bool) *Response_Query {
  7551. this := &Response_Query{}
  7552. this.Query = NewPopulatedResponseQuery(r, easy)
  7553. return this
  7554. }
  7555. func NewPopulatedResponse_BeginBlock(r randyTypes, easy bool) *Response_BeginBlock {
  7556. this := &Response_BeginBlock{}
  7557. this.BeginBlock = NewPopulatedResponseBeginBlock(r, easy)
  7558. return this
  7559. }
  7560. func NewPopulatedResponse_CheckTx(r randyTypes, easy bool) *Response_CheckTx {
  7561. this := &Response_CheckTx{}
  7562. this.CheckTx = NewPopulatedResponseCheckTx(r, easy)
  7563. return this
  7564. }
  7565. func NewPopulatedResponse_DeliverTx(r randyTypes, easy bool) *Response_DeliverTx {
  7566. this := &Response_DeliverTx{}
  7567. this.DeliverTx = NewPopulatedResponseDeliverTx(r, easy)
  7568. return this
  7569. }
  7570. func NewPopulatedResponse_EndBlock(r randyTypes, easy bool) *Response_EndBlock {
  7571. this := &Response_EndBlock{}
  7572. this.EndBlock = NewPopulatedResponseEndBlock(r, easy)
  7573. return this
  7574. }
  7575. func NewPopulatedResponse_Commit(r randyTypes, easy bool) *Response_Commit {
  7576. this := &Response_Commit{}
  7577. this.Commit = NewPopulatedResponseCommit(r, easy)
  7578. return this
  7579. }
  7580. func NewPopulatedResponseException(r randyTypes, easy bool) *ResponseException {
  7581. this := &ResponseException{}
  7582. this.Error = string(randStringTypes(r))
  7583. if !easy && r.Intn(10) != 0 {
  7584. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7585. }
  7586. return this
  7587. }
  7588. func NewPopulatedResponseEcho(r randyTypes, easy bool) *ResponseEcho {
  7589. this := &ResponseEcho{}
  7590. this.Message = string(randStringTypes(r))
  7591. if !easy && r.Intn(10) != 0 {
  7592. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7593. }
  7594. return this
  7595. }
  7596. func NewPopulatedResponseFlush(r randyTypes, easy bool) *ResponseFlush {
  7597. this := &ResponseFlush{}
  7598. if !easy && r.Intn(10) != 0 {
  7599. this.XXX_unrecognized = randUnrecognizedTypes(r, 1)
  7600. }
  7601. return this
  7602. }
  7603. func NewPopulatedResponseInfo(r randyTypes, easy bool) *ResponseInfo {
  7604. this := &ResponseInfo{}
  7605. this.Data = string(randStringTypes(r))
  7606. this.Version = string(randStringTypes(r))
  7607. this.AppVersion = uint64(uint64(r.Uint32()))
  7608. this.LastBlockHeight = int64(r.Int63())
  7609. if r.Intn(2) == 0 {
  7610. this.LastBlockHeight *= -1
  7611. }
  7612. v13 := r.Intn(100)
  7613. this.LastBlockAppHash = make([]byte, v13)
  7614. for i := 0; i < v13; i++ {
  7615. this.LastBlockAppHash[i] = byte(r.Intn(256))
  7616. }
  7617. if !easy && r.Intn(10) != 0 {
  7618. this.XXX_unrecognized = randUnrecognizedTypes(r, 6)
  7619. }
  7620. return this
  7621. }
  7622. func NewPopulatedResponseSetOption(r randyTypes, easy bool) *ResponseSetOption {
  7623. this := &ResponseSetOption{}
  7624. this.Code = uint32(r.Uint32())
  7625. this.Log = string(randStringTypes(r))
  7626. this.Info = string(randStringTypes(r))
  7627. if !easy && r.Intn(10) != 0 {
  7628. this.XXX_unrecognized = randUnrecognizedTypes(r, 5)
  7629. }
  7630. return this
  7631. }
  7632. func NewPopulatedResponseInitChain(r randyTypes, easy bool) *ResponseInitChain {
  7633. this := &ResponseInitChain{}
  7634. if r.Intn(10) != 0 {
  7635. this.ConsensusParams = NewPopulatedConsensusParams(r, easy)
  7636. }
  7637. if r.Intn(10) != 0 {
  7638. v14 := r.Intn(5)
  7639. this.Validators = make([]ValidatorUpdate, v14)
  7640. for i := 0; i < v14; i++ {
  7641. v15 := NewPopulatedValidatorUpdate(r, easy)
  7642. this.Validators[i] = *v15
  7643. }
  7644. }
  7645. if !easy && r.Intn(10) != 0 {
  7646. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7647. }
  7648. return this
  7649. }
  7650. func NewPopulatedResponseQuery(r randyTypes, easy bool) *ResponseQuery {
  7651. this := &ResponseQuery{}
  7652. this.Code = uint32(r.Uint32())
  7653. this.Log = string(randStringTypes(r))
  7654. this.Info = string(randStringTypes(r))
  7655. this.Index = int64(r.Int63())
  7656. if r.Intn(2) == 0 {
  7657. this.Index *= -1
  7658. }
  7659. v16 := r.Intn(100)
  7660. this.Key = make([]byte, v16)
  7661. for i := 0; i < v16; i++ {
  7662. this.Key[i] = byte(r.Intn(256))
  7663. }
  7664. v17 := r.Intn(100)
  7665. this.Value = make([]byte, v17)
  7666. for i := 0; i < v17; i++ {
  7667. this.Value[i] = byte(r.Intn(256))
  7668. }
  7669. if r.Intn(10) != 0 {
  7670. this.Proof = merkle.NewPopulatedProof(r, easy)
  7671. }
  7672. this.Height = int64(r.Int63())
  7673. if r.Intn(2) == 0 {
  7674. this.Height *= -1
  7675. }
  7676. this.Codespace = string(randStringTypes(r))
  7677. if !easy && r.Intn(10) != 0 {
  7678. this.XXX_unrecognized = randUnrecognizedTypes(r, 11)
  7679. }
  7680. return this
  7681. }
  7682. func NewPopulatedResponseBeginBlock(r randyTypes, easy bool) *ResponseBeginBlock {
  7683. this := &ResponseBeginBlock{}
  7684. if r.Intn(10) != 0 {
  7685. v18 := r.Intn(5)
  7686. this.Events = make([]Event, v18)
  7687. for i := 0; i < v18; i++ {
  7688. v19 := NewPopulatedEvent(r, easy)
  7689. this.Events[i] = *v19
  7690. }
  7691. }
  7692. if !easy && r.Intn(10) != 0 {
  7693. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7694. }
  7695. return this
  7696. }
  7697. func NewPopulatedResponseCheckTx(r randyTypes, easy bool) *ResponseCheckTx {
  7698. this := &ResponseCheckTx{}
  7699. this.Code = uint32(r.Uint32())
  7700. v20 := r.Intn(100)
  7701. this.Data = make([]byte, v20)
  7702. for i := 0; i < v20; i++ {
  7703. this.Data[i] = byte(r.Intn(256))
  7704. }
  7705. this.Log = string(randStringTypes(r))
  7706. this.Info = string(randStringTypes(r))
  7707. this.GasWanted = int64(r.Int63())
  7708. if r.Intn(2) == 0 {
  7709. this.GasWanted *= -1
  7710. }
  7711. this.GasUsed = int64(r.Int63())
  7712. if r.Intn(2) == 0 {
  7713. this.GasUsed *= -1
  7714. }
  7715. if r.Intn(10) != 0 {
  7716. v21 := r.Intn(5)
  7717. this.Events = make([]Event, v21)
  7718. for i := 0; i < v21; i++ {
  7719. v22 := NewPopulatedEvent(r, easy)
  7720. this.Events[i] = *v22
  7721. }
  7722. }
  7723. this.Codespace = string(randStringTypes(r))
  7724. if !easy && r.Intn(10) != 0 {
  7725. this.XXX_unrecognized = randUnrecognizedTypes(r, 9)
  7726. }
  7727. return this
  7728. }
  7729. func NewPopulatedResponseDeliverTx(r randyTypes, easy bool) *ResponseDeliverTx {
  7730. this := &ResponseDeliverTx{}
  7731. this.Code = uint32(r.Uint32())
  7732. v23 := r.Intn(100)
  7733. this.Data = make([]byte, v23)
  7734. for i := 0; i < v23; i++ {
  7735. this.Data[i] = byte(r.Intn(256))
  7736. }
  7737. this.Log = string(randStringTypes(r))
  7738. this.Info = string(randStringTypes(r))
  7739. this.GasWanted = int64(r.Int63())
  7740. if r.Intn(2) == 0 {
  7741. this.GasWanted *= -1
  7742. }
  7743. this.GasUsed = int64(r.Int63())
  7744. if r.Intn(2) == 0 {
  7745. this.GasUsed *= -1
  7746. }
  7747. if r.Intn(10) != 0 {
  7748. v24 := r.Intn(5)
  7749. this.Events = make([]Event, v24)
  7750. for i := 0; i < v24; i++ {
  7751. v25 := NewPopulatedEvent(r, easy)
  7752. this.Events[i] = *v25
  7753. }
  7754. }
  7755. this.Codespace = string(randStringTypes(r))
  7756. if !easy && r.Intn(10) != 0 {
  7757. this.XXX_unrecognized = randUnrecognizedTypes(r, 9)
  7758. }
  7759. return this
  7760. }
  7761. func NewPopulatedResponseEndBlock(r randyTypes, easy bool) *ResponseEndBlock {
  7762. this := &ResponseEndBlock{}
  7763. if r.Intn(10) != 0 {
  7764. v26 := r.Intn(5)
  7765. this.ValidatorUpdates = make([]ValidatorUpdate, v26)
  7766. for i := 0; i < v26; i++ {
  7767. v27 := NewPopulatedValidatorUpdate(r, easy)
  7768. this.ValidatorUpdates[i] = *v27
  7769. }
  7770. }
  7771. if r.Intn(10) != 0 {
  7772. this.ConsensusParamUpdates = NewPopulatedConsensusParams(r, easy)
  7773. }
  7774. if r.Intn(10) != 0 {
  7775. v28 := r.Intn(5)
  7776. this.Events = make([]Event, v28)
  7777. for i := 0; i < v28; i++ {
  7778. v29 := NewPopulatedEvent(r, easy)
  7779. this.Events[i] = *v29
  7780. }
  7781. }
  7782. if !easy && r.Intn(10) != 0 {
  7783. this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
  7784. }
  7785. return this
  7786. }
  7787. func NewPopulatedResponseCommit(r randyTypes, easy bool) *ResponseCommit {
  7788. this := &ResponseCommit{}
  7789. v30 := r.Intn(100)
  7790. this.Data = make([]byte, v30)
  7791. for i := 0; i < v30; i++ {
  7792. this.Data[i] = byte(r.Intn(256))
  7793. }
  7794. if !easy && r.Intn(10) != 0 {
  7795. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7796. }
  7797. return this
  7798. }
  7799. func NewPopulatedConsensusParams(r randyTypes, easy bool) *ConsensusParams {
  7800. this := &ConsensusParams{}
  7801. if r.Intn(10) != 0 {
  7802. this.Block = NewPopulatedBlockParams(r, easy)
  7803. }
  7804. if r.Intn(10) != 0 {
  7805. this.Evidence = NewPopulatedEvidenceParams(r, easy)
  7806. }
  7807. if r.Intn(10) != 0 {
  7808. this.Validator = NewPopulatedValidatorParams(r, easy)
  7809. }
  7810. if !easy && r.Intn(10) != 0 {
  7811. this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
  7812. }
  7813. return this
  7814. }
  7815. func NewPopulatedBlockParams(r randyTypes, easy bool) *BlockParams {
  7816. this := &BlockParams{}
  7817. this.MaxBytes = int64(r.Int63())
  7818. if r.Intn(2) == 0 {
  7819. this.MaxBytes *= -1
  7820. }
  7821. this.MaxGas = int64(r.Int63())
  7822. if r.Intn(2) == 0 {
  7823. this.MaxGas *= -1
  7824. }
  7825. if !easy && r.Intn(10) != 0 {
  7826. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7827. }
  7828. return this
  7829. }
  7830. func NewPopulatedEvidenceParams(r randyTypes, easy bool) *EvidenceParams {
  7831. this := &EvidenceParams{}
  7832. this.MaxAge = int64(r.Int63())
  7833. if r.Intn(2) == 0 {
  7834. this.MaxAge *= -1
  7835. }
  7836. if !easy && r.Intn(10) != 0 {
  7837. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7838. }
  7839. return this
  7840. }
  7841. func NewPopulatedValidatorParams(r randyTypes, easy bool) *ValidatorParams {
  7842. this := &ValidatorParams{}
  7843. v31 := r.Intn(10)
  7844. this.PubKeyTypes = make([]string, v31)
  7845. for i := 0; i < v31; i++ {
  7846. this.PubKeyTypes[i] = string(randStringTypes(r))
  7847. }
  7848. if !easy && r.Intn(10) != 0 {
  7849. this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
  7850. }
  7851. return this
  7852. }
  7853. func NewPopulatedLastCommitInfo(r randyTypes, easy bool) *LastCommitInfo {
  7854. this := &LastCommitInfo{}
  7855. this.Round = int32(r.Int31())
  7856. if r.Intn(2) == 0 {
  7857. this.Round *= -1
  7858. }
  7859. if r.Intn(10) != 0 {
  7860. v32 := r.Intn(5)
  7861. this.Votes = make([]VoteInfo, v32)
  7862. for i := 0; i < v32; i++ {
  7863. v33 := NewPopulatedVoteInfo(r, easy)
  7864. this.Votes[i] = *v33
  7865. }
  7866. }
  7867. if !easy && r.Intn(10) != 0 {
  7868. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7869. }
  7870. return this
  7871. }
  7872. func NewPopulatedEvent(r randyTypes, easy bool) *Event {
  7873. this := &Event{}
  7874. this.Type = string(randStringTypes(r))
  7875. if r.Intn(10) != 0 {
  7876. v34 := r.Intn(5)
  7877. this.Attributes = make([]common.KVPair, v34)
  7878. for i := 0; i < v34; i++ {
  7879. v35 := common.NewPopulatedKVPair(r, easy)
  7880. this.Attributes[i] = *v35
  7881. }
  7882. }
  7883. if !easy && r.Intn(10) != 0 {
  7884. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7885. }
  7886. return this
  7887. }
  7888. func NewPopulatedHeader(r randyTypes, easy bool) *Header {
  7889. this := &Header{}
  7890. v36 := NewPopulatedVersion(r, easy)
  7891. this.Version = *v36
  7892. this.ChainID = string(randStringTypes(r))
  7893. this.Height = int64(r.Int63())
  7894. if r.Intn(2) == 0 {
  7895. this.Height *= -1
  7896. }
  7897. v37 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy)
  7898. this.Time = *v37
  7899. this.NumTxs = int64(r.Int63())
  7900. if r.Intn(2) == 0 {
  7901. this.NumTxs *= -1
  7902. }
  7903. this.TotalTxs = int64(r.Int63())
  7904. if r.Intn(2) == 0 {
  7905. this.TotalTxs *= -1
  7906. }
  7907. v38 := NewPopulatedBlockID(r, easy)
  7908. this.LastBlockId = *v38
  7909. v39 := r.Intn(100)
  7910. this.LastCommitHash = make([]byte, v39)
  7911. for i := 0; i < v39; i++ {
  7912. this.LastCommitHash[i] = byte(r.Intn(256))
  7913. }
  7914. v40 := r.Intn(100)
  7915. this.DataHash = make([]byte, v40)
  7916. for i := 0; i < v40; i++ {
  7917. this.DataHash[i] = byte(r.Intn(256))
  7918. }
  7919. v41 := r.Intn(100)
  7920. this.ValidatorsHash = make([]byte, v41)
  7921. for i := 0; i < v41; i++ {
  7922. this.ValidatorsHash[i] = byte(r.Intn(256))
  7923. }
  7924. v42 := r.Intn(100)
  7925. this.NextValidatorsHash = make([]byte, v42)
  7926. for i := 0; i < v42; i++ {
  7927. this.NextValidatorsHash[i] = byte(r.Intn(256))
  7928. }
  7929. v43 := r.Intn(100)
  7930. this.ConsensusHash = make([]byte, v43)
  7931. for i := 0; i < v43; i++ {
  7932. this.ConsensusHash[i] = byte(r.Intn(256))
  7933. }
  7934. v44 := r.Intn(100)
  7935. this.AppHash = make([]byte, v44)
  7936. for i := 0; i < v44; i++ {
  7937. this.AppHash[i] = byte(r.Intn(256))
  7938. }
  7939. v45 := r.Intn(100)
  7940. this.LastResultsHash = make([]byte, v45)
  7941. for i := 0; i < v45; i++ {
  7942. this.LastResultsHash[i] = byte(r.Intn(256))
  7943. }
  7944. v46 := r.Intn(100)
  7945. this.EvidenceHash = make([]byte, v46)
  7946. for i := 0; i < v46; i++ {
  7947. this.EvidenceHash[i] = byte(r.Intn(256))
  7948. }
  7949. v47 := r.Intn(100)
  7950. this.ProposerAddress = make([]byte, v47)
  7951. for i := 0; i < v47; i++ {
  7952. this.ProposerAddress[i] = byte(r.Intn(256))
  7953. }
  7954. if !easy && r.Intn(10) != 0 {
  7955. this.XXX_unrecognized = randUnrecognizedTypes(r, 17)
  7956. }
  7957. return this
  7958. }
  7959. func NewPopulatedVersion(r randyTypes, easy bool) *Version {
  7960. this := &Version{}
  7961. this.Block = uint64(uint64(r.Uint32()))
  7962. this.App = uint64(uint64(r.Uint32()))
  7963. if !easy && r.Intn(10) != 0 {
  7964. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7965. }
  7966. return this
  7967. }
  7968. func NewPopulatedBlockID(r randyTypes, easy bool) *BlockID {
  7969. this := &BlockID{}
  7970. v48 := r.Intn(100)
  7971. this.Hash = make([]byte, v48)
  7972. for i := 0; i < v48; i++ {
  7973. this.Hash[i] = byte(r.Intn(256))
  7974. }
  7975. v49 := NewPopulatedPartSetHeader(r, easy)
  7976. this.PartsHeader = *v49
  7977. if !easy && r.Intn(10) != 0 {
  7978. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7979. }
  7980. return this
  7981. }
  7982. func NewPopulatedPartSetHeader(r randyTypes, easy bool) *PartSetHeader {
  7983. this := &PartSetHeader{}
  7984. this.Total = int32(r.Int31())
  7985. if r.Intn(2) == 0 {
  7986. this.Total *= -1
  7987. }
  7988. v50 := r.Intn(100)
  7989. this.Hash = make([]byte, v50)
  7990. for i := 0; i < v50; i++ {
  7991. this.Hash[i] = byte(r.Intn(256))
  7992. }
  7993. if !easy && r.Intn(10) != 0 {
  7994. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  7995. }
  7996. return this
  7997. }
  7998. func NewPopulatedValidator(r randyTypes, easy bool) *Validator {
  7999. this := &Validator{}
  8000. v51 := r.Intn(100)
  8001. this.Address = make([]byte, v51)
  8002. for i := 0; i < v51; i++ {
  8003. this.Address[i] = byte(r.Intn(256))
  8004. }
  8005. this.Power = int64(r.Int63())
  8006. if r.Intn(2) == 0 {
  8007. this.Power *= -1
  8008. }
  8009. if !easy && r.Intn(10) != 0 {
  8010. this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
  8011. }
  8012. return this
  8013. }
  8014. func NewPopulatedValidatorUpdate(r randyTypes, easy bool) *ValidatorUpdate {
  8015. this := &ValidatorUpdate{}
  8016. v52 := NewPopulatedPubKey(r, easy)
  8017. this.PubKey = *v52
  8018. this.Power = int64(r.Int63())
  8019. if r.Intn(2) == 0 {
  8020. this.Power *= -1
  8021. }
  8022. if !easy && r.Intn(10) != 0 {
  8023. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8024. }
  8025. return this
  8026. }
  8027. func NewPopulatedVoteInfo(r randyTypes, easy bool) *VoteInfo {
  8028. this := &VoteInfo{}
  8029. v53 := NewPopulatedValidator(r, easy)
  8030. this.Validator = *v53
  8031. this.SignedLastBlock = bool(bool(r.Intn(2) == 0))
  8032. if !easy && r.Intn(10) != 0 {
  8033. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8034. }
  8035. return this
  8036. }
  8037. func NewPopulatedPubKey(r randyTypes, easy bool) *PubKey {
  8038. this := &PubKey{}
  8039. this.Type = string(randStringTypes(r))
  8040. v54 := r.Intn(100)
  8041. this.Data = make([]byte, v54)
  8042. for i := 0; i < v54; i++ {
  8043. this.Data[i] = byte(r.Intn(256))
  8044. }
  8045. if !easy && r.Intn(10) != 0 {
  8046. this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
  8047. }
  8048. return this
  8049. }
  8050. func NewPopulatedEvidence(r randyTypes, easy bool) *Evidence {
  8051. this := &Evidence{}
  8052. this.Type = string(randStringTypes(r))
  8053. v55 := NewPopulatedValidator(r, easy)
  8054. this.Validator = *v55
  8055. this.Height = int64(r.Int63())
  8056. if r.Intn(2) == 0 {
  8057. this.Height *= -1
  8058. }
  8059. v56 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy)
  8060. this.Time = *v56
  8061. this.TotalVotingPower = int64(r.Int63())
  8062. if r.Intn(2) == 0 {
  8063. this.TotalVotingPower *= -1
  8064. }
  8065. if !easy && r.Intn(10) != 0 {
  8066. this.XXX_unrecognized = randUnrecognizedTypes(r, 6)
  8067. }
  8068. return this
  8069. }
  8070. type randyTypes interface {
  8071. Float32() float32
  8072. Float64() float64
  8073. Int63() int64
  8074. Int31() int32
  8075. Uint32() uint32
  8076. Intn(n int) int
  8077. }
  8078. func randUTF8RuneTypes(r randyTypes) rune {
  8079. ru := r.Intn(62)
  8080. if ru < 10 {
  8081. return rune(ru + 48)
  8082. } else if ru < 36 {
  8083. return rune(ru + 55)
  8084. }
  8085. return rune(ru + 61)
  8086. }
  8087. func randStringTypes(r randyTypes) string {
  8088. v57 := r.Intn(100)
  8089. tmps := make([]rune, v57)
  8090. for i := 0; i < v57; i++ {
  8091. tmps[i] = randUTF8RuneTypes(r)
  8092. }
  8093. return string(tmps)
  8094. }
  8095. func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) {
  8096. l := r.Intn(5)
  8097. for i := 0; i < l; i++ {
  8098. wire := r.Intn(4)
  8099. if wire == 3 {
  8100. wire = 5
  8101. }
  8102. fieldNumber := maxFieldNumber + r.Intn(100)
  8103. dAtA = randFieldTypes(dAtA, r, fieldNumber, wire)
  8104. }
  8105. return dAtA
  8106. }
  8107. func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte {
  8108. key := uint32(fieldNumber)<<3 | uint32(wire)
  8109. switch wire {
  8110. case 0:
  8111. dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
  8112. v58 := r.Int63()
  8113. if r.Intn(2) == 0 {
  8114. v58 *= -1
  8115. }
  8116. dAtA = encodeVarintPopulateTypes(dAtA, uint64(v58))
  8117. case 1:
  8118. dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
  8119. 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)))
  8120. case 2:
  8121. dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
  8122. ll := r.Intn(100)
  8123. dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll))
  8124. for j := 0; j < ll; j++ {
  8125. dAtA = append(dAtA, byte(r.Intn(256)))
  8126. }
  8127. default:
  8128. dAtA = encodeVarintPopulateTypes(dAtA, uint64(key))
  8129. dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
  8130. }
  8131. return dAtA
  8132. }
  8133. func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte {
  8134. for v >= 1<<7 {
  8135. dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))
  8136. v >>= 7
  8137. }
  8138. dAtA = append(dAtA, uint8(v))
  8139. return dAtA
  8140. }
  8141. func (m *Request) Size() (n int) {
  8142. if m == nil {
  8143. return 0
  8144. }
  8145. var l int
  8146. _ = l
  8147. if m.Value != nil {
  8148. n += m.Value.Size()
  8149. }
  8150. if m.XXX_unrecognized != nil {
  8151. n += len(m.XXX_unrecognized)
  8152. }
  8153. return n
  8154. }
  8155. func (m *Request_Echo) Size() (n int) {
  8156. if m == nil {
  8157. return 0
  8158. }
  8159. var l int
  8160. _ = l
  8161. if m.Echo != nil {
  8162. l = m.Echo.Size()
  8163. n += 1 + l + sovTypes(uint64(l))
  8164. }
  8165. return n
  8166. }
  8167. func (m *Request_Flush) Size() (n int) {
  8168. if m == nil {
  8169. return 0
  8170. }
  8171. var l int
  8172. _ = l
  8173. if m.Flush != nil {
  8174. l = m.Flush.Size()
  8175. n += 1 + l + sovTypes(uint64(l))
  8176. }
  8177. return n
  8178. }
  8179. func (m *Request_Info) Size() (n int) {
  8180. if m == nil {
  8181. return 0
  8182. }
  8183. var l int
  8184. _ = l
  8185. if m.Info != nil {
  8186. l = m.Info.Size()
  8187. n += 1 + l + sovTypes(uint64(l))
  8188. }
  8189. return n
  8190. }
  8191. func (m *Request_SetOption) Size() (n int) {
  8192. if m == nil {
  8193. return 0
  8194. }
  8195. var l int
  8196. _ = l
  8197. if m.SetOption != nil {
  8198. l = m.SetOption.Size()
  8199. n += 1 + l + sovTypes(uint64(l))
  8200. }
  8201. return n
  8202. }
  8203. func (m *Request_InitChain) Size() (n int) {
  8204. if m == nil {
  8205. return 0
  8206. }
  8207. var l int
  8208. _ = l
  8209. if m.InitChain != nil {
  8210. l = m.InitChain.Size()
  8211. n += 1 + l + sovTypes(uint64(l))
  8212. }
  8213. return n
  8214. }
  8215. func (m *Request_Query) Size() (n int) {
  8216. if m == nil {
  8217. return 0
  8218. }
  8219. var l int
  8220. _ = l
  8221. if m.Query != nil {
  8222. l = m.Query.Size()
  8223. n += 1 + l + sovTypes(uint64(l))
  8224. }
  8225. return n
  8226. }
  8227. func (m *Request_BeginBlock) Size() (n int) {
  8228. if m == nil {
  8229. return 0
  8230. }
  8231. var l int
  8232. _ = l
  8233. if m.BeginBlock != nil {
  8234. l = m.BeginBlock.Size()
  8235. n += 1 + l + sovTypes(uint64(l))
  8236. }
  8237. return n
  8238. }
  8239. func (m *Request_CheckTx) Size() (n int) {
  8240. if m == nil {
  8241. return 0
  8242. }
  8243. var l int
  8244. _ = l
  8245. if m.CheckTx != nil {
  8246. l = m.CheckTx.Size()
  8247. n += 1 + l + sovTypes(uint64(l))
  8248. }
  8249. return n
  8250. }
  8251. func (m *Request_EndBlock) Size() (n int) {
  8252. if m == nil {
  8253. return 0
  8254. }
  8255. var l int
  8256. _ = l
  8257. if m.EndBlock != nil {
  8258. l = m.EndBlock.Size()
  8259. n += 1 + l + sovTypes(uint64(l))
  8260. }
  8261. return n
  8262. }
  8263. func (m *Request_Commit) Size() (n int) {
  8264. if m == nil {
  8265. return 0
  8266. }
  8267. var l int
  8268. _ = l
  8269. if m.Commit != nil {
  8270. l = m.Commit.Size()
  8271. n += 1 + l + sovTypes(uint64(l))
  8272. }
  8273. return n
  8274. }
  8275. func (m *Request_DeliverTx) Size() (n int) {
  8276. if m == nil {
  8277. return 0
  8278. }
  8279. var l int
  8280. _ = l
  8281. if m.DeliverTx != nil {
  8282. l = m.DeliverTx.Size()
  8283. n += 2 + l + sovTypes(uint64(l))
  8284. }
  8285. return n
  8286. }
  8287. func (m *RequestEcho) Size() (n int) {
  8288. if m == nil {
  8289. return 0
  8290. }
  8291. var l int
  8292. _ = l
  8293. l = len(m.Message)
  8294. if l > 0 {
  8295. n += 1 + l + sovTypes(uint64(l))
  8296. }
  8297. if m.XXX_unrecognized != nil {
  8298. n += len(m.XXX_unrecognized)
  8299. }
  8300. return n
  8301. }
  8302. func (m *RequestFlush) Size() (n int) {
  8303. if m == nil {
  8304. return 0
  8305. }
  8306. var l int
  8307. _ = l
  8308. if m.XXX_unrecognized != nil {
  8309. n += len(m.XXX_unrecognized)
  8310. }
  8311. return n
  8312. }
  8313. func (m *RequestInfo) Size() (n int) {
  8314. if m == nil {
  8315. return 0
  8316. }
  8317. var l int
  8318. _ = l
  8319. l = len(m.Version)
  8320. if l > 0 {
  8321. n += 1 + l + sovTypes(uint64(l))
  8322. }
  8323. if m.BlockVersion != 0 {
  8324. n += 1 + sovTypes(uint64(m.BlockVersion))
  8325. }
  8326. if m.P2PVersion != 0 {
  8327. n += 1 + sovTypes(uint64(m.P2PVersion))
  8328. }
  8329. if m.XXX_unrecognized != nil {
  8330. n += len(m.XXX_unrecognized)
  8331. }
  8332. return n
  8333. }
  8334. func (m *RequestSetOption) Size() (n int) {
  8335. if m == nil {
  8336. return 0
  8337. }
  8338. var l int
  8339. _ = l
  8340. l = len(m.Key)
  8341. if l > 0 {
  8342. n += 1 + l + sovTypes(uint64(l))
  8343. }
  8344. l = len(m.Value)
  8345. if l > 0 {
  8346. n += 1 + l + sovTypes(uint64(l))
  8347. }
  8348. if m.XXX_unrecognized != nil {
  8349. n += len(m.XXX_unrecognized)
  8350. }
  8351. return n
  8352. }
  8353. func (m *RequestInitChain) Size() (n int) {
  8354. if m == nil {
  8355. return 0
  8356. }
  8357. var l int
  8358. _ = l
  8359. l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)
  8360. n += 1 + l + sovTypes(uint64(l))
  8361. l = len(m.ChainId)
  8362. if l > 0 {
  8363. n += 1 + l + sovTypes(uint64(l))
  8364. }
  8365. if m.ConsensusParams != nil {
  8366. l = m.ConsensusParams.Size()
  8367. n += 1 + l + sovTypes(uint64(l))
  8368. }
  8369. if len(m.Validators) > 0 {
  8370. for _, e := range m.Validators {
  8371. l = e.Size()
  8372. n += 1 + l + sovTypes(uint64(l))
  8373. }
  8374. }
  8375. l = len(m.AppStateBytes)
  8376. if l > 0 {
  8377. n += 1 + l + sovTypes(uint64(l))
  8378. }
  8379. if m.XXX_unrecognized != nil {
  8380. n += len(m.XXX_unrecognized)
  8381. }
  8382. return n
  8383. }
  8384. func (m *RequestQuery) Size() (n int) {
  8385. if m == nil {
  8386. return 0
  8387. }
  8388. var l int
  8389. _ = l
  8390. l = len(m.Data)
  8391. if l > 0 {
  8392. n += 1 + l + sovTypes(uint64(l))
  8393. }
  8394. l = len(m.Path)
  8395. if l > 0 {
  8396. n += 1 + l + sovTypes(uint64(l))
  8397. }
  8398. if m.Height != 0 {
  8399. n += 1 + sovTypes(uint64(m.Height))
  8400. }
  8401. if m.Prove {
  8402. n += 2
  8403. }
  8404. if m.XXX_unrecognized != nil {
  8405. n += len(m.XXX_unrecognized)
  8406. }
  8407. return n
  8408. }
  8409. func (m *RequestBeginBlock) Size() (n int) {
  8410. if m == nil {
  8411. return 0
  8412. }
  8413. var l int
  8414. _ = l
  8415. l = len(m.Hash)
  8416. if l > 0 {
  8417. n += 1 + l + sovTypes(uint64(l))
  8418. }
  8419. l = m.Header.Size()
  8420. n += 1 + l + sovTypes(uint64(l))
  8421. l = m.LastCommitInfo.Size()
  8422. n += 1 + l + sovTypes(uint64(l))
  8423. if len(m.ByzantineValidators) > 0 {
  8424. for _, e := range m.ByzantineValidators {
  8425. l = e.Size()
  8426. n += 1 + l + sovTypes(uint64(l))
  8427. }
  8428. }
  8429. if m.XXX_unrecognized != nil {
  8430. n += len(m.XXX_unrecognized)
  8431. }
  8432. return n
  8433. }
  8434. func (m *RequestCheckTx) Size() (n int) {
  8435. if m == nil {
  8436. return 0
  8437. }
  8438. var l int
  8439. _ = l
  8440. l = len(m.Tx)
  8441. if l > 0 {
  8442. n += 1 + l + sovTypes(uint64(l))
  8443. }
  8444. if m.Type != 0 {
  8445. n += 1 + sovTypes(uint64(m.Type))
  8446. }
  8447. if m.XXX_unrecognized != nil {
  8448. n += len(m.XXX_unrecognized)
  8449. }
  8450. return n
  8451. }
  8452. func (m *RequestDeliverTx) Size() (n int) {
  8453. if m == nil {
  8454. return 0
  8455. }
  8456. var l int
  8457. _ = l
  8458. l = len(m.Tx)
  8459. if l > 0 {
  8460. n += 1 + l + sovTypes(uint64(l))
  8461. }
  8462. if m.XXX_unrecognized != nil {
  8463. n += len(m.XXX_unrecognized)
  8464. }
  8465. return n
  8466. }
  8467. func (m *RequestEndBlock) Size() (n int) {
  8468. if m == nil {
  8469. return 0
  8470. }
  8471. var l int
  8472. _ = l
  8473. if m.Height != 0 {
  8474. n += 1 + sovTypes(uint64(m.Height))
  8475. }
  8476. if m.XXX_unrecognized != nil {
  8477. n += len(m.XXX_unrecognized)
  8478. }
  8479. return n
  8480. }
  8481. func (m *RequestCommit) Size() (n int) {
  8482. if m == nil {
  8483. return 0
  8484. }
  8485. var l int
  8486. _ = l
  8487. if m.XXX_unrecognized != nil {
  8488. n += len(m.XXX_unrecognized)
  8489. }
  8490. return n
  8491. }
  8492. func (m *Response) Size() (n int) {
  8493. if m == nil {
  8494. return 0
  8495. }
  8496. var l int
  8497. _ = l
  8498. if m.Value != nil {
  8499. n += m.Value.Size()
  8500. }
  8501. if m.XXX_unrecognized != nil {
  8502. n += len(m.XXX_unrecognized)
  8503. }
  8504. return n
  8505. }
  8506. func (m *Response_Exception) Size() (n int) {
  8507. if m == nil {
  8508. return 0
  8509. }
  8510. var l int
  8511. _ = l
  8512. if m.Exception != nil {
  8513. l = m.Exception.Size()
  8514. n += 1 + l + sovTypes(uint64(l))
  8515. }
  8516. return n
  8517. }
  8518. func (m *Response_Echo) Size() (n int) {
  8519. if m == nil {
  8520. return 0
  8521. }
  8522. var l int
  8523. _ = l
  8524. if m.Echo != nil {
  8525. l = m.Echo.Size()
  8526. n += 1 + l + sovTypes(uint64(l))
  8527. }
  8528. return n
  8529. }
  8530. func (m *Response_Flush) Size() (n int) {
  8531. if m == nil {
  8532. return 0
  8533. }
  8534. var l int
  8535. _ = l
  8536. if m.Flush != nil {
  8537. l = m.Flush.Size()
  8538. n += 1 + l + sovTypes(uint64(l))
  8539. }
  8540. return n
  8541. }
  8542. func (m *Response_Info) Size() (n int) {
  8543. if m == nil {
  8544. return 0
  8545. }
  8546. var l int
  8547. _ = l
  8548. if m.Info != nil {
  8549. l = m.Info.Size()
  8550. n += 1 + l + sovTypes(uint64(l))
  8551. }
  8552. return n
  8553. }
  8554. func (m *Response_SetOption) Size() (n int) {
  8555. if m == nil {
  8556. return 0
  8557. }
  8558. var l int
  8559. _ = l
  8560. if m.SetOption != nil {
  8561. l = m.SetOption.Size()
  8562. n += 1 + l + sovTypes(uint64(l))
  8563. }
  8564. return n
  8565. }
  8566. func (m *Response_InitChain) Size() (n int) {
  8567. if m == nil {
  8568. return 0
  8569. }
  8570. var l int
  8571. _ = l
  8572. if m.InitChain != nil {
  8573. l = m.InitChain.Size()
  8574. n += 1 + l + sovTypes(uint64(l))
  8575. }
  8576. return n
  8577. }
  8578. func (m *Response_Query) Size() (n int) {
  8579. if m == nil {
  8580. return 0
  8581. }
  8582. var l int
  8583. _ = l
  8584. if m.Query != nil {
  8585. l = m.Query.Size()
  8586. n += 1 + l + sovTypes(uint64(l))
  8587. }
  8588. return n
  8589. }
  8590. func (m *Response_BeginBlock) Size() (n int) {
  8591. if m == nil {
  8592. return 0
  8593. }
  8594. var l int
  8595. _ = l
  8596. if m.BeginBlock != nil {
  8597. l = m.BeginBlock.Size()
  8598. n += 1 + l + sovTypes(uint64(l))
  8599. }
  8600. return n
  8601. }
  8602. func (m *Response_CheckTx) Size() (n int) {
  8603. if m == nil {
  8604. return 0
  8605. }
  8606. var l int
  8607. _ = l
  8608. if m.CheckTx != nil {
  8609. l = m.CheckTx.Size()
  8610. n += 1 + l + sovTypes(uint64(l))
  8611. }
  8612. return n
  8613. }
  8614. func (m *Response_DeliverTx) Size() (n int) {
  8615. if m == nil {
  8616. return 0
  8617. }
  8618. var l int
  8619. _ = l
  8620. if m.DeliverTx != nil {
  8621. l = m.DeliverTx.Size()
  8622. n += 1 + l + sovTypes(uint64(l))
  8623. }
  8624. return n
  8625. }
  8626. func (m *Response_EndBlock) Size() (n int) {
  8627. if m == nil {
  8628. return 0
  8629. }
  8630. var l int
  8631. _ = l
  8632. if m.EndBlock != nil {
  8633. l = m.EndBlock.Size()
  8634. n += 1 + l + sovTypes(uint64(l))
  8635. }
  8636. return n
  8637. }
  8638. func (m *Response_Commit) Size() (n int) {
  8639. if m == nil {
  8640. return 0
  8641. }
  8642. var l int
  8643. _ = l
  8644. if m.Commit != nil {
  8645. l = m.Commit.Size()
  8646. n += 1 + l + sovTypes(uint64(l))
  8647. }
  8648. return n
  8649. }
  8650. func (m *ResponseException) Size() (n int) {
  8651. if m == nil {
  8652. return 0
  8653. }
  8654. var l int
  8655. _ = l
  8656. l = len(m.Error)
  8657. if l > 0 {
  8658. n += 1 + l + sovTypes(uint64(l))
  8659. }
  8660. if m.XXX_unrecognized != nil {
  8661. n += len(m.XXX_unrecognized)
  8662. }
  8663. return n
  8664. }
  8665. func (m *ResponseEcho) Size() (n int) {
  8666. if m == nil {
  8667. return 0
  8668. }
  8669. var l int
  8670. _ = l
  8671. l = len(m.Message)
  8672. if l > 0 {
  8673. n += 1 + l + sovTypes(uint64(l))
  8674. }
  8675. if m.XXX_unrecognized != nil {
  8676. n += len(m.XXX_unrecognized)
  8677. }
  8678. return n
  8679. }
  8680. func (m *ResponseFlush) Size() (n int) {
  8681. if m == nil {
  8682. return 0
  8683. }
  8684. var l int
  8685. _ = l
  8686. if m.XXX_unrecognized != nil {
  8687. n += len(m.XXX_unrecognized)
  8688. }
  8689. return n
  8690. }
  8691. func (m *ResponseInfo) Size() (n int) {
  8692. if m == nil {
  8693. return 0
  8694. }
  8695. var l int
  8696. _ = l
  8697. l = len(m.Data)
  8698. if l > 0 {
  8699. n += 1 + l + sovTypes(uint64(l))
  8700. }
  8701. l = len(m.Version)
  8702. if l > 0 {
  8703. n += 1 + l + sovTypes(uint64(l))
  8704. }
  8705. if m.AppVersion != 0 {
  8706. n += 1 + sovTypes(uint64(m.AppVersion))
  8707. }
  8708. if m.LastBlockHeight != 0 {
  8709. n += 1 + sovTypes(uint64(m.LastBlockHeight))
  8710. }
  8711. l = len(m.LastBlockAppHash)
  8712. if l > 0 {
  8713. n += 1 + l + sovTypes(uint64(l))
  8714. }
  8715. if m.XXX_unrecognized != nil {
  8716. n += len(m.XXX_unrecognized)
  8717. }
  8718. return n
  8719. }
  8720. func (m *ResponseSetOption) Size() (n int) {
  8721. if m == nil {
  8722. return 0
  8723. }
  8724. var l int
  8725. _ = l
  8726. if m.Code != 0 {
  8727. n += 1 + sovTypes(uint64(m.Code))
  8728. }
  8729. l = len(m.Log)
  8730. if l > 0 {
  8731. n += 1 + l + sovTypes(uint64(l))
  8732. }
  8733. l = len(m.Info)
  8734. if l > 0 {
  8735. n += 1 + l + sovTypes(uint64(l))
  8736. }
  8737. if m.XXX_unrecognized != nil {
  8738. n += len(m.XXX_unrecognized)
  8739. }
  8740. return n
  8741. }
  8742. func (m *ResponseInitChain) Size() (n int) {
  8743. if m == nil {
  8744. return 0
  8745. }
  8746. var l int
  8747. _ = l
  8748. if m.ConsensusParams != nil {
  8749. l = m.ConsensusParams.Size()
  8750. n += 1 + l + sovTypes(uint64(l))
  8751. }
  8752. if len(m.Validators) > 0 {
  8753. for _, e := range m.Validators {
  8754. l = e.Size()
  8755. n += 1 + l + sovTypes(uint64(l))
  8756. }
  8757. }
  8758. if m.XXX_unrecognized != nil {
  8759. n += len(m.XXX_unrecognized)
  8760. }
  8761. return n
  8762. }
  8763. func (m *ResponseQuery) Size() (n int) {
  8764. if m == nil {
  8765. return 0
  8766. }
  8767. var l int
  8768. _ = l
  8769. if m.Code != 0 {
  8770. n += 1 + sovTypes(uint64(m.Code))
  8771. }
  8772. l = len(m.Log)
  8773. if l > 0 {
  8774. n += 1 + l + sovTypes(uint64(l))
  8775. }
  8776. l = len(m.Info)
  8777. if l > 0 {
  8778. n += 1 + l + sovTypes(uint64(l))
  8779. }
  8780. if m.Index != 0 {
  8781. n += 1 + sovTypes(uint64(m.Index))
  8782. }
  8783. l = len(m.Key)
  8784. if l > 0 {
  8785. n += 1 + l + sovTypes(uint64(l))
  8786. }
  8787. l = len(m.Value)
  8788. if l > 0 {
  8789. n += 1 + l + sovTypes(uint64(l))
  8790. }
  8791. if m.Proof != nil {
  8792. l = m.Proof.Size()
  8793. n += 1 + l + sovTypes(uint64(l))
  8794. }
  8795. if m.Height != 0 {
  8796. n += 1 + sovTypes(uint64(m.Height))
  8797. }
  8798. l = len(m.Codespace)
  8799. if l > 0 {
  8800. n += 1 + l + sovTypes(uint64(l))
  8801. }
  8802. if m.XXX_unrecognized != nil {
  8803. n += len(m.XXX_unrecognized)
  8804. }
  8805. return n
  8806. }
  8807. func (m *ResponseBeginBlock) Size() (n int) {
  8808. if m == nil {
  8809. return 0
  8810. }
  8811. var l int
  8812. _ = l
  8813. if len(m.Events) > 0 {
  8814. for _, e := range m.Events {
  8815. l = e.Size()
  8816. n += 1 + l + sovTypes(uint64(l))
  8817. }
  8818. }
  8819. if m.XXX_unrecognized != nil {
  8820. n += len(m.XXX_unrecognized)
  8821. }
  8822. return n
  8823. }
  8824. func (m *ResponseCheckTx) Size() (n int) {
  8825. if m == nil {
  8826. return 0
  8827. }
  8828. var l int
  8829. _ = l
  8830. if m.Code != 0 {
  8831. n += 1 + sovTypes(uint64(m.Code))
  8832. }
  8833. l = len(m.Data)
  8834. if l > 0 {
  8835. n += 1 + l + sovTypes(uint64(l))
  8836. }
  8837. l = len(m.Log)
  8838. if l > 0 {
  8839. n += 1 + l + sovTypes(uint64(l))
  8840. }
  8841. l = len(m.Info)
  8842. if l > 0 {
  8843. n += 1 + l + sovTypes(uint64(l))
  8844. }
  8845. if m.GasWanted != 0 {
  8846. n += 1 + sovTypes(uint64(m.GasWanted))
  8847. }
  8848. if m.GasUsed != 0 {
  8849. n += 1 + sovTypes(uint64(m.GasUsed))
  8850. }
  8851. if len(m.Events) > 0 {
  8852. for _, e := range m.Events {
  8853. l = e.Size()
  8854. n += 1 + l + sovTypes(uint64(l))
  8855. }
  8856. }
  8857. l = len(m.Codespace)
  8858. if l > 0 {
  8859. n += 1 + l + sovTypes(uint64(l))
  8860. }
  8861. if m.XXX_unrecognized != nil {
  8862. n += len(m.XXX_unrecognized)
  8863. }
  8864. return n
  8865. }
  8866. func (m *ResponseDeliverTx) Size() (n int) {
  8867. if m == nil {
  8868. return 0
  8869. }
  8870. var l int
  8871. _ = l
  8872. if m.Code != 0 {
  8873. n += 1 + sovTypes(uint64(m.Code))
  8874. }
  8875. l = len(m.Data)
  8876. if l > 0 {
  8877. n += 1 + l + sovTypes(uint64(l))
  8878. }
  8879. l = len(m.Log)
  8880. if l > 0 {
  8881. n += 1 + l + sovTypes(uint64(l))
  8882. }
  8883. l = len(m.Info)
  8884. if l > 0 {
  8885. n += 1 + l + sovTypes(uint64(l))
  8886. }
  8887. if m.GasWanted != 0 {
  8888. n += 1 + sovTypes(uint64(m.GasWanted))
  8889. }
  8890. if m.GasUsed != 0 {
  8891. n += 1 + sovTypes(uint64(m.GasUsed))
  8892. }
  8893. if len(m.Events) > 0 {
  8894. for _, e := range m.Events {
  8895. l = e.Size()
  8896. n += 1 + l + sovTypes(uint64(l))
  8897. }
  8898. }
  8899. l = len(m.Codespace)
  8900. if l > 0 {
  8901. n += 1 + l + sovTypes(uint64(l))
  8902. }
  8903. if m.XXX_unrecognized != nil {
  8904. n += len(m.XXX_unrecognized)
  8905. }
  8906. return n
  8907. }
  8908. func (m *ResponseEndBlock) Size() (n int) {
  8909. if m == nil {
  8910. return 0
  8911. }
  8912. var l int
  8913. _ = l
  8914. if len(m.ValidatorUpdates) > 0 {
  8915. for _, e := range m.ValidatorUpdates {
  8916. l = e.Size()
  8917. n += 1 + l + sovTypes(uint64(l))
  8918. }
  8919. }
  8920. if m.ConsensusParamUpdates != nil {
  8921. l = m.ConsensusParamUpdates.Size()
  8922. n += 1 + l + sovTypes(uint64(l))
  8923. }
  8924. if len(m.Events) > 0 {
  8925. for _, e := range m.Events {
  8926. l = e.Size()
  8927. n += 1 + l + sovTypes(uint64(l))
  8928. }
  8929. }
  8930. if m.XXX_unrecognized != nil {
  8931. n += len(m.XXX_unrecognized)
  8932. }
  8933. return n
  8934. }
  8935. func (m *ResponseCommit) Size() (n int) {
  8936. if m == nil {
  8937. return 0
  8938. }
  8939. var l int
  8940. _ = l
  8941. l = len(m.Data)
  8942. if l > 0 {
  8943. n += 1 + l + sovTypes(uint64(l))
  8944. }
  8945. if m.XXX_unrecognized != nil {
  8946. n += len(m.XXX_unrecognized)
  8947. }
  8948. return n
  8949. }
  8950. func (m *ConsensusParams) Size() (n int) {
  8951. if m == nil {
  8952. return 0
  8953. }
  8954. var l int
  8955. _ = l
  8956. if m.Block != nil {
  8957. l = m.Block.Size()
  8958. n += 1 + l + sovTypes(uint64(l))
  8959. }
  8960. if m.Evidence != nil {
  8961. l = m.Evidence.Size()
  8962. n += 1 + l + sovTypes(uint64(l))
  8963. }
  8964. if m.Validator != nil {
  8965. l = m.Validator.Size()
  8966. n += 1 + l + sovTypes(uint64(l))
  8967. }
  8968. if m.XXX_unrecognized != nil {
  8969. n += len(m.XXX_unrecognized)
  8970. }
  8971. return n
  8972. }
  8973. func (m *BlockParams) Size() (n int) {
  8974. if m == nil {
  8975. return 0
  8976. }
  8977. var l int
  8978. _ = l
  8979. if m.MaxBytes != 0 {
  8980. n += 1 + sovTypes(uint64(m.MaxBytes))
  8981. }
  8982. if m.MaxGas != 0 {
  8983. n += 1 + sovTypes(uint64(m.MaxGas))
  8984. }
  8985. if m.XXX_unrecognized != nil {
  8986. n += len(m.XXX_unrecognized)
  8987. }
  8988. return n
  8989. }
  8990. func (m *EvidenceParams) Size() (n int) {
  8991. if m == nil {
  8992. return 0
  8993. }
  8994. var l int
  8995. _ = l
  8996. if m.MaxAge != 0 {
  8997. n += 1 + sovTypes(uint64(m.MaxAge))
  8998. }
  8999. if m.XXX_unrecognized != nil {
  9000. n += len(m.XXX_unrecognized)
  9001. }
  9002. return n
  9003. }
  9004. func (m *ValidatorParams) Size() (n int) {
  9005. if m == nil {
  9006. return 0
  9007. }
  9008. var l int
  9009. _ = l
  9010. if len(m.PubKeyTypes) > 0 {
  9011. for _, s := range m.PubKeyTypes {
  9012. l = len(s)
  9013. n += 1 + l + sovTypes(uint64(l))
  9014. }
  9015. }
  9016. if m.XXX_unrecognized != nil {
  9017. n += len(m.XXX_unrecognized)
  9018. }
  9019. return n
  9020. }
  9021. func (m *LastCommitInfo) Size() (n int) {
  9022. if m == nil {
  9023. return 0
  9024. }
  9025. var l int
  9026. _ = l
  9027. if m.Round != 0 {
  9028. n += 1 + sovTypes(uint64(m.Round))
  9029. }
  9030. if len(m.Votes) > 0 {
  9031. for _, e := range m.Votes {
  9032. l = e.Size()
  9033. n += 1 + l + sovTypes(uint64(l))
  9034. }
  9035. }
  9036. if m.XXX_unrecognized != nil {
  9037. n += len(m.XXX_unrecognized)
  9038. }
  9039. return n
  9040. }
  9041. func (m *Event) Size() (n int) {
  9042. if m == nil {
  9043. return 0
  9044. }
  9045. var l int
  9046. _ = l
  9047. l = len(m.Type)
  9048. if l > 0 {
  9049. n += 1 + l + sovTypes(uint64(l))
  9050. }
  9051. if len(m.Attributes) > 0 {
  9052. for _, e := range m.Attributes {
  9053. l = e.Size()
  9054. n += 1 + l + sovTypes(uint64(l))
  9055. }
  9056. }
  9057. if m.XXX_unrecognized != nil {
  9058. n += len(m.XXX_unrecognized)
  9059. }
  9060. return n
  9061. }
  9062. func (m *Header) Size() (n int) {
  9063. if m == nil {
  9064. return 0
  9065. }
  9066. var l int
  9067. _ = l
  9068. l = m.Version.Size()
  9069. n += 1 + l + sovTypes(uint64(l))
  9070. l = len(m.ChainID)
  9071. if l > 0 {
  9072. n += 1 + l + sovTypes(uint64(l))
  9073. }
  9074. if m.Height != 0 {
  9075. n += 1 + sovTypes(uint64(m.Height))
  9076. }
  9077. l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)
  9078. n += 1 + l + sovTypes(uint64(l))
  9079. if m.NumTxs != 0 {
  9080. n += 1 + sovTypes(uint64(m.NumTxs))
  9081. }
  9082. if m.TotalTxs != 0 {
  9083. n += 1 + sovTypes(uint64(m.TotalTxs))
  9084. }
  9085. l = m.LastBlockId.Size()
  9086. n += 1 + l + sovTypes(uint64(l))
  9087. l = len(m.LastCommitHash)
  9088. if l > 0 {
  9089. n += 1 + l + sovTypes(uint64(l))
  9090. }
  9091. l = len(m.DataHash)
  9092. if l > 0 {
  9093. n += 1 + l + sovTypes(uint64(l))
  9094. }
  9095. l = len(m.ValidatorsHash)
  9096. if l > 0 {
  9097. n += 1 + l + sovTypes(uint64(l))
  9098. }
  9099. l = len(m.NextValidatorsHash)
  9100. if l > 0 {
  9101. n += 1 + l + sovTypes(uint64(l))
  9102. }
  9103. l = len(m.ConsensusHash)
  9104. if l > 0 {
  9105. n += 1 + l + sovTypes(uint64(l))
  9106. }
  9107. l = len(m.AppHash)
  9108. if l > 0 {
  9109. n += 1 + l + sovTypes(uint64(l))
  9110. }
  9111. l = len(m.LastResultsHash)
  9112. if l > 0 {
  9113. n += 1 + l + sovTypes(uint64(l))
  9114. }
  9115. l = len(m.EvidenceHash)
  9116. if l > 0 {
  9117. n += 1 + l + sovTypes(uint64(l))
  9118. }
  9119. l = len(m.ProposerAddress)
  9120. if l > 0 {
  9121. n += 2 + l + sovTypes(uint64(l))
  9122. }
  9123. if m.XXX_unrecognized != nil {
  9124. n += len(m.XXX_unrecognized)
  9125. }
  9126. return n
  9127. }
  9128. func (m *Version) Size() (n int) {
  9129. if m == nil {
  9130. return 0
  9131. }
  9132. var l int
  9133. _ = l
  9134. if m.Block != 0 {
  9135. n += 1 + sovTypes(uint64(m.Block))
  9136. }
  9137. if m.App != 0 {
  9138. n += 1 + sovTypes(uint64(m.App))
  9139. }
  9140. if m.XXX_unrecognized != nil {
  9141. n += len(m.XXX_unrecognized)
  9142. }
  9143. return n
  9144. }
  9145. func (m *BlockID) Size() (n int) {
  9146. if m == nil {
  9147. return 0
  9148. }
  9149. var l int
  9150. _ = l
  9151. l = len(m.Hash)
  9152. if l > 0 {
  9153. n += 1 + l + sovTypes(uint64(l))
  9154. }
  9155. l = m.PartsHeader.Size()
  9156. n += 1 + l + sovTypes(uint64(l))
  9157. if m.XXX_unrecognized != nil {
  9158. n += len(m.XXX_unrecognized)
  9159. }
  9160. return n
  9161. }
  9162. func (m *PartSetHeader) Size() (n int) {
  9163. if m == nil {
  9164. return 0
  9165. }
  9166. var l int
  9167. _ = l
  9168. if m.Total != 0 {
  9169. n += 1 + sovTypes(uint64(m.Total))
  9170. }
  9171. l = len(m.Hash)
  9172. if l > 0 {
  9173. n += 1 + l + sovTypes(uint64(l))
  9174. }
  9175. if m.XXX_unrecognized != nil {
  9176. n += len(m.XXX_unrecognized)
  9177. }
  9178. return n
  9179. }
  9180. func (m *Validator) Size() (n int) {
  9181. if m == nil {
  9182. return 0
  9183. }
  9184. var l int
  9185. _ = l
  9186. l = len(m.Address)
  9187. if l > 0 {
  9188. n += 1 + l + sovTypes(uint64(l))
  9189. }
  9190. if m.Power != 0 {
  9191. n += 1 + sovTypes(uint64(m.Power))
  9192. }
  9193. if m.XXX_unrecognized != nil {
  9194. n += len(m.XXX_unrecognized)
  9195. }
  9196. return n
  9197. }
  9198. func (m *ValidatorUpdate) Size() (n int) {
  9199. if m == nil {
  9200. return 0
  9201. }
  9202. var l int
  9203. _ = l
  9204. l = m.PubKey.Size()
  9205. n += 1 + l + sovTypes(uint64(l))
  9206. if m.Power != 0 {
  9207. n += 1 + sovTypes(uint64(m.Power))
  9208. }
  9209. if m.XXX_unrecognized != nil {
  9210. n += len(m.XXX_unrecognized)
  9211. }
  9212. return n
  9213. }
  9214. func (m *VoteInfo) Size() (n int) {
  9215. if m == nil {
  9216. return 0
  9217. }
  9218. var l int
  9219. _ = l
  9220. l = m.Validator.Size()
  9221. n += 1 + l + sovTypes(uint64(l))
  9222. if m.SignedLastBlock {
  9223. n += 2
  9224. }
  9225. if m.XXX_unrecognized != nil {
  9226. n += len(m.XXX_unrecognized)
  9227. }
  9228. return n
  9229. }
  9230. func (m *PubKey) Size() (n int) {
  9231. if m == nil {
  9232. return 0
  9233. }
  9234. var l int
  9235. _ = l
  9236. l = len(m.Type)
  9237. if l > 0 {
  9238. n += 1 + l + sovTypes(uint64(l))
  9239. }
  9240. l = len(m.Data)
  9241. if l > 0 {
  9242. n += 1 + l + sovTypes(uint64(l))
  9243. }
  9244. if m.XXX_unrecognized != nil {
  9245. n += len(m.XXX_unrecognized)
  9246. }
  9247. return n
  9248. }
  9249. func (m *Evidence) Size() (n int) {
  9250. if m == nil {
  9251. return 0
  9252. }
  9253. var l int
  9254. _ = l
  9255. l = len(m.Type)
  9256. if l > 0 {
  9257. n += 1 + l + sovTypes(uint64(l))
  9258. }
  9259. l = m.Validator.Size()
  9260. n += 1 + l + sovTypes(uint64(l))
  9261. if m.Height != 0 {
  9262. n += 1 + sovTypes(uint64(m.Height))
  9263. }
  9264. l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time)
  9265. n += 1 + l + sovTypes(uint64(l))
  9266. if m.TotalVotingPower != 0 {
  9267. n += 1 + sovTypes(uint64(m.TotalVotingPower))
  9268. }
  9269. if m.XXX_unrecognized != nil {
  9270. n += len(m.XXX_unrecognized)
  9271. }
  9272. return n
  9273. }
  9274. func sovTypes(x uint64) (n int) {
  9275. for {
  9276. n++
  9277. x >>= 7
  9278. if x == 0 {
  9279. break
  9280. }
  9281. }
  9282. return n
  9283. }
  9284. func sozTypes(x uint64) (n int) {
  9285. return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  9286. }
  9287. func (m *Request) Unmarshal(dAtA []byte) error {
  9288. l := len(dAtA)
  9289. iNdEx := 0
  9290. for iNdEx < l {
  9291. preIndex := iNdEx
  9292. var wire uint64
  9293. for shift := uint(0); ; shift += 7 {
  9294. if shift >= 64 {
  9295. return ErrIntOverflowTypes
  9296. }
  9297. if iNdEx >= l {
  9298. return io.ErrUnexpectedEOF
  9299. }
  9300. b := dAtA[iNdEx]
  9301. iNdEx++
  9302. wire |= (uint64(b) & 0x7F) << shift
  9303. if b < 0x80 {
  9304. break
  9305. }
  9306. }
  9307. fieldNum := int32(wire >> 3)
  9308. wireType := int(wire & 0x7)
  9309. if wireType == 4 {
  9310. return fmt.Errorf("proto: Request: wiretype end group for non-group")
  9311. }
  9312. if fieldNum <= 0 {
  9313. return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
  9314. }
  9315. switch fieldNum {
  9316. case 2:
  9317. if wireType != 2 {
  9318. return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType)
  9319. }
  9320. var msglen int
  9321. for shift := uint(0); ; shift += 7 {
  9322. if shift >= 64 {
  9323. return ErrIntOverflowTypes
  9324. }
  9325. if iNdEx >= l {
  9326. return io.ErrUnexpectedEOF
  9327. }
  9328. b := dAtA[iNdEx]
  9329. iNdEx++
  9330. msglen |= (int(b) & 0x7F) << shift
  9331. if b < 0x80 {
  9332. break
  9333. }
  9334. }
  9335. if msglen < 0 {
  9336. return ErrInvalidLengthTypes
  9337. }
  9338. postIndex := iNdEx + msglen
  9339. if postIndex > l {
  9340. return io.ErrUnexpectedEOF
  9341. }
  9342. v := &RequestEcho{}
  9343. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9344. return err
  9345. }
  9346. m.Value = &Request_Echo{v}
  9347. iNdEx = postIndex
  9348. case 3:
  9349. if wireType != 2 {
  9350. return fmt.Errorf("proto: wrong wireType = %d for field Flush", wireType)
  9351. }
  9352. var msglen int
  9353. for shift := uint(0); ; shift += 7 {
  9354. if shift >= 64 {
  9355. return ErrIntOverflowTypes
  9356. }
  9357. if iNdEx >= l {
  9358. return io.ErrUnexpectedEOF
  9359. }
  9360. b := dAtA[iNdEx]
  9361. iNdEx++
  9362. msglen |= (int(b) & 0x7F) << shift
  9363. if b < 0x80 {
  9364. break
  9365. }
  9366. }
  9367. if msglen < 0 {
  9368. return ErrInvalidLengthTypes
  9369. }
  9370. postIndex := iNdEx + msglen
  9371. if postIndex > l {
  9372. return io.ErrUnexpectedEOF
  9373. }
  9374. v := &RequestFlush{}
  9375. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9376. return err
  9377. }
  9378. m.Value = &Request_Flush{v}
  9379. iNdEx = postIndex
  9380. case 4:
  9381. if wireType != 2 {
  9382. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  9383. }
  9384. var msglen int
  9385. for shift := uint(0); ; shift += 7 {
  9386. if shift >= 64 {
  9387. return ErrIntOverflowTypes
  9388. }
  9389. if iNdEx >= l {
  9390. return io.ErrUnexpectedEOF
  9391. }
  9392. b := dAtA[iNdEx]
  9393. iNdEx++
  9394. msglen |= (int(b) & 0x7F) << shift
  9395. if b < 0x80 {
  9396. break
  9397. }
  9398. }
  9399. if msglen < 0 {
  9400. return ErrInvalidLengthTypes
  9401. }
  9402. postIndex := iNdEx + msglen
  9403. if postIndex > l {
  9404. return io.ErrUnexpectedEOF
  9405. }
  9406. v := &RequestInfo{}
  9407. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9408. return err
  9409. }
  9410. m.Value = &Request_Info{v}
  9411. iNdEx = postIndex
  9412. case 5:
  9413. if wireType != 2 {
  9414. return fmt.Errorf("proto: wrong wireType = %d for field SetOption", wireType)
  9415. }
  9416. var msglen int
  9417. for shift := uint(0); ; shift += 7 {
  9418. if shift >= 64 {
  9419. return ErrIntOverflowTypes
  9420. }
  9421. if iNdEx >= l {
  9422. return io.ErrUnexpectedEOF
  9423. }
  9424. b := dAtA[iNdEx]
  9425. iNdEx++
  9426. msglen |= (int(b) & 0x7F) << shift
  9427. if b < 0x80 {
  9428. break
  9429. }
  9430. }
  9431. if msglen < 0 {
  9432. return ErrInvalidLengthTypes
  9433. }
  9434. postIndex := iNdEx + msglen
  9435. if postIndex > l {
  9436. return io.ErrUnexpectedEOF
  9437. }
  9438. v := &RequestSetOption{}
  9439. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9440. return err
  9441. }
  9442. m.Value = &Request_SetOption{v}
  9443. iNdEx = postIndex
  9444. case 6:
  9445. if wireType != 2 {
  9446. return fmt.Errorf("proto: wrong wireType = %d for field InitChain", wireType)
  9447. }
  9448. var msglen int
  9449. for shift := uint(0); ; shift += 7 {
  9450. if shift >= 64 {
  9451. return ErrIntOverflowTypes
  9452. }
  9453. if iNdEx >= l {
  9454. return io.ErrUnexpectedEOF
  9455. }
  9456. b := dAtA[iNdEx]
  9457. iNdEx++
  9458. msglen |= (int(b) & 0x7F) << shift
  9459. if b < 0x80 {
  9460. break
  9461. }
  9462. }
  9463. if msglen < 0 {
  9464. return ErrInvalidLengthTypes
  9465. }
  9466. postIndex := iNdEx + msglen
  9467. if postIndex > l {
  9468. return io.ErrUnexpectedEOF
  9469. }
  9470. v := &RequestInitChain{}
  9471. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9472. return err
  9473. }
  9474. m.Value = &Request_InitChain{v}
  9475. iNdEx = postIndex
  9476. case 7:
  9477. if wireType != 2 {
  9478. return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType)
  9479. }
  9480. var msglen int
  9481. for shift := uint(0); ; shift += 7 {
  9482. if shift >= 64 {
  9483. return ErrIntOverflowTypes
  9484. }
  9485. if iNdEx >= l {
  9486. return io.ErrUnexpectedEOF
  9487. }
  9488. b := dAtA[iNdEx]
  9489. iNdEx++
  9490. msglen |= (int(b) & 0x7F) << shift
  9491. if b < 0x80 {
  9492. break
  9493. }
  9494. }
  9495. if msglen < 0 {
  9496. return ErrInvalidLengthTypes
  9497. }
  9498. postIndex := iNdEx + msglen
  9499. if postIndex > l {
  9500. return io.ErrUnexpectedEOF
  9501. }
  9502. v := &RequestQuery{}
  9503. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9504. return err
  9505. }
  9506. m.Value = &Request_Query{v}
  9507. iNdEx = postIndex
  9508. case 8:
  9509. if wireType != 2 {
  9510. return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType)
  9511. }
  9512. var msglen int
  9513. for shift := uint(0); ; shift += 7 {
  9514. if shift >= 64 {
  9515. return ErrIntOverflowTypes
  9516. }
  9517. if iNdEx >= l {
  9518. return io.ErrUnexpectedEOF
  9519. }
  9520. b := dAtA[iNdEx]
  9521. iNdEx++
  9522. msglen |= (int(b) & 0x7F) << shift
  9523. if b < 0x80 {
  9524. break
  9525. }
  9526. }
  9527. if msglen < 0 {
  9528. return ErrInvalidLengthTypes
  9529. }
  9530. postIndex := iNdEx + msglen
  9531. if postIndex > l {
  9532. return io.ErrUnexpectedEOF
  9533. }
  9534. v := &RequestBeginBlock{}
  9535. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9536. return err
  9537. }
  9538. m.Value = &Request_BeginBlock{v}
  9539. iNdEx = postIndex
  9540. case 9:
  9541. if wireType != 2 {
  9542. return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType)
  9543. }
  9544. var msglen int
  9545. for shift := uint(0); ; shift += 7 {
  9546. if shift >= 64 {
  9547. return ErrIntOverflowTypes
  9548. }
  9549. if iNdEx >= l {
  9550. return io.ErrUnexpectedEOF
  9551. }
  9552. b := dAtA[iNdEx]
  9553. iNdEx++
  9554. msglen |= (int(b) & 0x7F) << shift
  9555. if b < 0x80 {
  9556. break
  9557. }
  9558. }
  9559. if msglen < 0 {
  9560. return ErrInvalidLengthTypes
  9561. }
  9562. postIndex := iNdEx + msglen
  9563. if postIndex > l {
  9564. return io.ErrUnexpectedEOF
  9565. }
  9566. v := &RequestCheckTx{}
  9567. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9568. return err
  9569. }
  9570. m.Value = &Request_CheckTx{v}
  9571. iNdEx = postIndex
  9572. case 11:
  9573. if wireType != 2 {
  9574. return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType)
  9575. }
  9576. var msglen int
  9577. for shift := uint(0); ; shift += 7 {
  9578. if shift >= 64 {
  9579. return ErrIntOverflowTypes
  9580. }
  9581. if iNdEx >= l {
  9582. return io.ErrUnexpectedEOF
  9583. }
  9584. b := dAtA[iNdEx]
  9585. iNdEx++
  9586. msglen |= (int(b) & 0x7F) << shift
  9587. if b < 0x80 {
  9588. break
  9589. }
  9590. }
  9591. if msglen < 0 {
  9592. return ErrInvalidLengthTypes
  9593. }
  9594. postIndex := iNdEx + msglen
  9595. if postIndex > l {
  9596. return io.ErrUnexpectedEOF
  9597. }
  9598. v := &RequestEndBlock{}
  9599. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9600. return err
  9601. }
  9602. m.Value = &Request_EndBlock{v}
  9603. iNdEx = postIndex
  9604. case 12:
  9605. if wireType != 2 {
  9606. return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType)
  9607. }
  9608. var msglen int
  9609. for shift := uint(0); ; shift += 7 {
  9610. if shift >= 64 {
  9611. return ErrIntOverflowTypes
  9612. }
  9613. if iNdEx >= l {
  9614. return io.ErrUnexpectedEOF
  9615. }
  9616. b := dAtA[iNdEx]
  9617. iNdEx++
  9618. msglen |= (int(b) & 0x7F) << shift
  9619. if b < 0x80 {
  9620. break
  9621. }
  9622. }
  9623. if msglen < 0 {
  9624. return ErrInvalidLengthTypes
  9625. }
  9626. postIndex := iNdEx + msglen
  9627. if postIndex > l {
  9628. return io.ErrUnexpectedEOF
  9629. }
  9630. v := &RequestCommit{}
  9631. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9632. return err
  9633. }
  9634. m.Value = &Request_Commit{v}
  9635. iNdEx = postIndex
  9636. case 19:
  9637. if wireType != 2 {
  9638. return fmt.Errorf("proto: wrong wireType = %d for field DeliverTx", wireType)
  9639. }
  9640. var msglen int
  9641. for shift := uint(0); ; shift += 7 {
  9642. if shift >= 64 {
  9643. return ErrIntOverflowTypes
  9644. }
  9645. if iNdEx >= l {
  9646. return io.ErrUnexpectedEOF
  9647. }
  9648. b := dAtA[iNdEx]
  9649. iNdEx++
  9650. msglen |= (int(b) & 0x7F) << shift
  9651. if b < 0x80 {
  9652. break
  9653. }
  9654. }
  9655. if msglen < 0 {
  9656. return ErrInvalidLengthTypes
  9657. }
  9658. postIndex := iNdEx + msglen
  9659. if postIndex > l {
  9660. return io.ErrUnexpectedEOF
  9661. }
  9662. v := &RequestDeliverTx{}
  9663. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  9664. return err
  9665. }
  9666. m.Value = &Request_DeliverTx{v}
  9667. iNdEx = postIndex
  9668. default:
  9669. iNdEx = preIndex
  9670. skippy, err := skipTypes(dAtA[iNdEx:])
  9671. if err != nil {
  9672. return err
  9673. }
  9674. if skippy < 0 {
  9675. return ErrInvalidLengthTypes
  9676. }
  9677. if (iNdEx + skippy) > l {
  9678. return io.ErrUnexpectedEOF
  9679. }
  9680. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  9681. iNdEx += skippy
  9682. }
  9683. }
  9684. if iNdEx > l {
  9685. return io.ErrUnexpectedEOF
  9686. }
  9687. return nil
  9688. }
  9689. func (m *RequestEcho) Unmarshal(dAtA []byte) error {
  9690. l := len(dAtA)
  9691. iNdEx := 0
  9692. for iNdEx < l {
  9693. preIndex := iNdEx
  9694. var wire uint64
  9695. for shift := uint(0); ; shift += 7 {
  9696. if shift >= 64 {
  9697. return ErrIntOverflowTypes
  9698. }
  9699. if iNdEx >= l {
  9700. return io.ErrUnexpectedEOF
  9701. }
  9702. b := dAtA[iNdEx]
  9703. iNdEx++
  9704. wire |= (uint64(b) & 0x7F) << shift
  9705. if b < 0x80 {
  9706. break
  9707. }
  9708. }
  9709. fieldNum := int32(wire >> 3)
  9710. wireType := int(wire & 0x7)
  9711. if wireType == 4 {
  9712. return fmt.Errorf("proto: RequestEcho: wiretype end group for non-group")
  9713. }
  9714. if fieldNum <= 0 {
  9715. return fmt.Errorf("proto: RequestEcho: illegal tag %d (wire type %d)", fieldNum, wire)
  9716. }
  9717. switch fieldNum {
  9718. case 1:
  9719. if wireType != 2 {
  9720. return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
  9721. }
  9722. var stringLen uint64
  9723. for shift := uint(0); ; shift += 7 {
  9724. if shift >= 64 {
  9725. return ErrIntOverflowTypes
  9726. }
  9727. if iNdEx >= l {
  9728. return io.ErrUnexpectedEOF
  9729. }
  9730. b := dAtA[iNdEx]
  9731. iNdEx++
  9732. stringLen |= (uint64(b) & 0x7F) << shift
  9733. if b < 0x80 {
  9734. break
  9735. }
  9736. }
  9737. intStringLen := int(stringLen)
  9738. if intStringLen < 0 {
  9739. return ErrInvalidLengthTypes
  9740. }
  9741. postIndex := iNdEx + intStringLen
  9742. if postIndex > l {
  9743. return io.ErrUnexpectedEOF
  9744. }
  9745. m.Message = string(dAtA[iNdEx:postIndex])
  9746. iNdEx = postIndex
  9747. default:
  9748. iNdEx = preIndex
  9749. skippy, err := skipTypes(dAtA[iNdEx:])
  9750. if err != nil {
  9751. return err
  9752. }
  9753. if skippy < 0 {
  9754. return ErrInvalidLengthTypes
  9755. }
  9756. if (iNdEx + skippy) > l {
  9757. return io.ErrUnexpectedEOF
  9758. }
  9759. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  9760. iNdEx += skippy
  9761. }
  9762. }
  9763. if iNdEx > l {
  9764. return io.ErrUnexpectedEOF
  9765. }
  9766. return nil
  9767. }
  9768. func (m *RequestFlush) Unmarshal(dAtA []byte) error {
  9769. l := len(dAtA)
  9770. iNdEx := 0
  9771. for iNdEx < l {
  9772. preIndex := iNdEx
  9773. var wire uint64
  9774. for shift := uint(0); ; shift += 7 {
  9775. if shift >= 64 {
  9776. return ErrIntOverflowTypes
  9777. }
  9778. if iNdEx >= l {
  9779. return io.ErrUnexpectedEOF
  9780. }
  9781. b := dAtA[iNdEx]
  9782. iNdEx++
  9783. wire |= (uint64(b) & 0x7F) << shift
  9784. if b < 0x80 {
  9785. break
  9786. }
  9787. }
  9788. fieldNum := int32(wire >> 3)
  9789. wireType := int(wire & 0x7)
  9790. if wireType == 4 {
  9791. return fmt.Errorf("proto: RequestFlush: wiretype end group for non-group")
  9792. }
  9793. if fieldNum <= 0 {
  9794. return fmt.Errorf("proto: RequestFlush: illegal tag %d (wire type %d)", fieldNum, wire)
  9795. }
  9796. switch fieldNum {
  9797. default:
  9798. iNdEx = preIndex
  9799. skippy, err := skipTypes(dAtA[iNdEx:])
  9800. if err != nil {
  9801. return err
  9802. }
  9803. if skippy < 0 {
  9804. return ErrInvalidLengthTypes
  9805. }
  9806. if (iNdEx + skippy) > l {
  9807. return io.ErrUnexpectedEOF
  9808. }
  9809. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  9810. iNdEx += skippy
  9811. }
  9812. }
  9813. if iNdEx > l {
  9814. return io.ErrUnexpectedEOF
  9815. }
  9816. return nil
  9817. }
  9818. func (m *RequestInfo) Unmarshal(dAtA []byte) error {
  9819. l := len(dAtA)
  9820. iNdEx := 0
  9821. for iNdEx < l {
  9822. preIndex := iNdEx
  9823. var wire uint64
  9824. for shift := uint(0); ; shift += 7 {
  9825. if shift >= 64 {
  9826. return ErrIntOverflowTypes
  9827. }
  9828. if iNdEx >= l {
  9829. return io.ErrUnexpectedEOF
  9830. }
  9831. b := dAtA[iNdEx]
  9832. iNdEx++
  9833. wire |= (uint64(b) & 0x7F) << shift
  9834. if b < 0x80 {
  9835. break
  9836. }
  9837. }
  9838. fieldNum := int32(wire >> 3)
  9839. wireType := int(wire & 0x7)
  9840. if wireType == 4 {
  9841. return fmt.Errorf("proto: RequestInfo: wiretype end group for non-group")
  9842. }
  9843. if fieldNum <= 0 {
  9844. return fmt.Errorf("proto: RequestInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  9845. }
  9846. switch fieldNum {
  9847. case 1:
  9848. if wireType != 2 {
  9849. return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  9850. }
  9851. var stringLen uint64
  9852. for shift := uint(0); ; shift += 7 {
  9853. if shift >= 64 {
  9854. return ErrIntOverflowTypes
  9855. }
  9856. if iNdEx >= l {
  9857. return io.ErrUnexpectedEOF
  9858. }
  9859. b := dAtA[iNdEx]
  9860. iNdEx++
  9861. stringLen |= (uint64(b) & 0x7F) << shift
  9862. if b < 0x80 {
  9863. break
  9864. }
  9865. }
  9866. intStringLen := int(stringLen)
  9867. if intStringLen < 0 {
  9868. return ErrInvalidLengthTypes
  9869. }
  9870. postIndex := iNdEx + intStringLen
  9871. if postIndex > l {
  9872. return io.ErrUnexpectedEOF
  9873. }
  9874. m.Version = string(dAtA[iNdEx:postIndex])
  9875. iNdEx = postIndex
  9876. case 2:
  9877. if wireType != 0 {
  9878. return fmt.Errorf("proto: wrong wireType = %d for field BlockVersion", wireType)
  9879. }
  9880. m.BlockVersion = 0
  9881. for shift := uint(0); ; shift += 7 {
  9882. if shift >= 64 {
  9883. return ErrIntOverflowTypes
  9884. }
  9885. if iNdEx >= l {
  9886. return io.ErrUnexpectedEOF
  9887. }
  9888. b := dAtA[iNdEx]
  9889. iNdEx++
  9890. m.BlockVersion |= (uint64(b) & 0x7F) << shift
  9891. if b < 0x80 {
  9892. break
  9893. }
  9894. }
  9895. case 3:
  9896. if wireType != 0 {
  9897. return fmt.Errorf("proto: wrong wireType = %d for field P2PVersion", wireType)
  9898. }
  9899. m.P2PVersion = 0
  9900. for shift := uint(0); ; shift += 7 {
  9901. if shift >= 64 {
  9902. return ErrIntOverflowTypes
  9903. }
  9904. if iNdEx >= l {
  9905. return io.ErrUnexpectedEOF
  9906. }
  9907. b := dAtA[iNdEx]
  9908. iNdEx++
  9909. m.P2PVersion |= (uint64(b) & 0x7F) << shift
  9910. if b < 0x80 {
  9911. break
  9912. }
  9913. }
  9914. default:
  9915. iNdEx = preIndex
  9916. skippy, err := skipTypes(dAtA[iNdEx:])
  9917. if err != nil {
  9918. return err
  9919. }
  9920. if skippy < 0 {
  9921. return ErrInvalidLengthTypes
  9922. }
  9923. if (iNdEx + skippy) > l {
  9924. return io.ErrUnexpectedEOF
  9925. }
  9926. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  9927. iNdEx += skippy
  9928. }
  9929. }
  9930. if iNdEx > l {
  9931. return io.ErrUnexpectedEOF
  9932. }
  9933. return nil
  9934. }
  9935. func (m *RequestSetOption) Unmarshal(dAtA []byte) error {
  9936. l := len(dAtA)
  9937. iNdEx := 0
  9938. for iNdEx < l {
  9939. preIndex := iNdEx
  9940. var wire uint64
  9941. for shift := uint(0); ; shift += 7 {
  9942. if shift >= 64 {
  9943. return ErrIntOverflowTypes
  9944. }
  9945. if iNdEx >= l {
  9946. return io.ErrUnexpectedEOF
  9947. }
  9948. b := dAtA[iNdEx]
  9949. iNdEx++
  9950. wire |= (uint64(b) & 0x7F) << shift
  9951. if b < 0x80 {
  9952. break
  9953. }
  9954. }
  9955. fieldNum := int32(wire >> 3)
  9956. wireType := int(wire & 0x7)
  9957. if wireType == 4 {
  9958. return fmt.Errorf("proto: RequestSetOption: wiretype end group for non-group")
  9959. }
  9960. if fieldNum <= 0 {
  9961. return fmt.Errorf("proto: RequestSetOption: illegal tag %d (wire type %d)", fieldNum, wire)
  9962. }
  9963. switch fieldNum {
  9964. case 1:
  9965. if wireType != 2 {
  9966. return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  9967. }
  9968. var stringLen uint64
  9969. for shift := uint(0); ; shift += 7 {
  9970. if shift >= 64 {
  9971. return ErrIntOverflowTypes
  9972. }
  9973. if iNdEx >= l {
  9974. return io.ErrUnexpectedEOF
  9975. }
  9976. b := dAtA[iNdEx]
  9977. iNdEx++
  9978. stringLen |= (uint64(b) & 0x7F) << shift
  9979. if b < 0x80 {
  9980. break
  9981. }
  9982. }
  9983. intStringLen := int(stringLen)
  9984. if intStringLen < 0 {
  9985. return ErrInvalidLengthTypes
  9986. }
  9987. postIndex := iNdEx + intStringLen
  9988. if postIndex > l {
  9989. return io.ErrUnexpectedEOF
  9990. }
  9991. m.Key = string(dAtA[iNdEx:postIndex])
  9992. iNdEx = postIndex
  9993. case 2:
  9994. if wireType != 2 {
  9995. return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  9996. }
  9997. var stringLen uint64
  9998. for shift := uint(0); ; shift += 7 {
  9999. if shift >= 64 {
  10000. return ErrIntOverflowTypes
  10001. }
  10002. if iNdEx >= l {
  10003. return io.ErrUnexpectedEOF
  10004. }
  10005. b := dAtA[iNdEx]
  10006. iNdEx++
  10007. stringLen |= (uint64(b) & 0x7F) << shift
  10008. if b < 0x80 {
  10009. break
  10010. }
  10011. }
  10012. intStringLen := int(stringLen)
  10013. if intStringLen < 0 {
  10014. return ErrInvalidLengthTypes
  10015. }
  10016. postIndex := iNdEx + intStringLen
  10017. if postIndex > l {
  10018. return io.ErrUnexpectedEOF
  10019. }
  10020. m.Value = string(dAtA[iNdEx:postIndex])
  10021. iNdEx = postIndex
  10022. default:
  10023. iNdEx = preIndex
  10024. skippy, err := skipTypes(dAtA[iNdEx:])
  10025. if err != nil {
  10026. return err
  10027. }
  10028. if skippy < 0 {
  10029. return ErrInvalidLengthTypes
  10030. }
  10031. if (iNdEx + skippy) > l {
  10032. return io.ErrUnexpectedEOF
  10033. }
  10034. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10035. iNdEx += skippy
  10036. }
  10037. }
  10038. if iNdEx > l {
  10039. return io.ErrUnexpectedEOF
  10040. }
  10041. return nil
  10042. }
  10043. func (m *RequestInitChain) Unmarshal(dAtA []byte) error {
  10044. l := len(dAtA)
  10045. iNdEx := 0
  10046. for iNdEx < l {
  10047. preIndex := iNdEx
  10048. var wire uint64
  10049. for shift := uint(0); ; shift += 7 {
  10050. if shift >= 64 {
  10051. return ErrIntOverflowTypes
  10052. }
  10053. if iNdEx >= l {
  10054. return io.ErrUnexpectedEOF
  10055. }
  10056. b := dAtA[iNdEx]
  10057. iNdEx++
  10058. wire |= (uint64(b) & 0x7F) << shift
  10059. if b < 0x80 {
  10060. break
  10061. }
  10062. }
  10063. fieldNum := int32(wire >> 3)
  10064. wireType := int(wire & 0x7)
  10065. if wireType == 4 {
  10066. return fmt.Errorf("proto: RequestInitChain: wiretype end group for non-group")
  10067. }
  10068. if fieldNum <= 0 {
  10069. return fmt.Errorf("proto: RequestInitChain: illegal tag %d (wire type %d)", fieldNum, wire)
  10070. }
  10071. switch fieldNum {
  10072. case 1:
  10073. if wireType != 2 {
  10074. return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
  10075. }
  10076. var msglen int
  10077. for shift := uint(0); ; shift += 7 {
  10078. if shift >= 64 {
  10079. return ErrIntOverflowTypes
  10080. }
  10081. if iNdEx >= l {
  10082. return io.ErrUnexpectedEOF
  10083. }
  10084. b := dAtA[iNdEx]
  10085. iNdEx++
  10086. msglen |= (int(b) & 0x7F) << shift
  10087. if b < 0x80 {
  10088. break
  10089. }
  10090. }
  10091. if msglen < 0 {
  10092. return ErrInvalidLengthTypes
  10093. }
  10094. postIndex := iNdEx + msglen
  10095. if postIndex > l {
  10096. return io.ErrUnexpectedEOF
  10097. }
  10098. if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil {
  10099. return err
  10100. }
  10101. iNdEx = postIndex
  10102. case 2:
  10103. if wireType != 2 {
  10104. return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType)
  10105. }
  10106. var stringLen uint64
  10107. for shift := uint(0); ; shift += 7 {
  10108. if shift >= 64 {
  10109. return ErrIntOverflowTypes
  10110. }
  10111. if iNdEx >= l {
  10112. return io.ErrUnexpectedEOF
  10113. }
  10114. b := dAtA[iNdEx]
  10115. iNdEx++
  10116. stringLen |= (uint64(b) & 0x7F) << shift
  10117. if b < 0x80 {
  10118. break
  10119. }
  10120. }
  10121. intStringLen := int(stringLen)
  10122. if intStringLen < 0 {
  10123. return ErrInvalidLengthTypes
  10124. }
  10125. postIndex := iNdEx + intStringLen
  10126. if postIndex > l {
  10127. return io.ErrUnexpectedEOF
  10128. }
  10129. m.ChainId = string(dAtA[iNdEx:postIndex])
  10130. iNdEx = postIndex
  10131. case 3:
  10132. if wireType != 2 {
  10133. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParams", wireType)
  10134. }
  10135. var msglen int
  10136. for shift := uint(0); ; shift += 7 {
  10137. if shift >= 64 {
  10138. return ErrIntOverflowTypes
  10139. }
  10140. if iNdEx >= l {
  10141. return io.ErrUnexpectedEOF
  10142. }
  10143. b := dAtA[iNdEx]
  10144. iNdEx++
  10145. msglen |= (int(b) & 0x7F) << shift
  10146. if b < 0x80 {
  10147. break
  10148. }
  10149. }
  10150. if msglen < 0 {
  10151. return ErrInvalidLengthTypes
  10152. }
  10153. postIndex := iNdEx + msglen
  10154. if postIndex > l {
  10155. return io.ErrUnexpectedEOF
  10156. }
  10157. if m.ConsensusParams == nil {
  10158. m.ConsensusParams = &ConsensusParams{}
  10159. }
  10160. if err := m.ConsensusParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10161. return err
  10162. }
  10163. iNdEx = postIndex
  10164. case 4:
  10165. if wireType != 2 {
  10166. return fmt.Errorf("proto: wrong wireType = %d for field Validators", wireType)
  10167. }
  10168. var msglen int
  10169. for shift := uint(0); ; shift += 7 {
  10170. if shift >= 64 {
  10171. return ErrIntOverflowTypes
  10172. }
  10173. if iNdEx >= l {
  10174. return io.ErrUnexpectedEOF
  10175. }
  10176. b := dAtA[iNdEx]
  10177. iNdEx++
  10178. msglen |= (int(b) & 0x7F) << shift
  10179. if b < 0x80 {
  10180. break
  10181. }
  10182. }
  10183. if msglen < 0 {
  10184. return ErrInvalidLengthTypes
  10185. }
  10186. postIndex := iNdEx + msglen
  10187. if postIndex > l {
  10188. return io.ErrUnexpectedEOF
  10189. }
  10190. m.Validators = append(m.Validators, ValidatorUpdate{})
  10191. if err := m.Validators[len(m.Validators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10192. return err
  10193. }
  10194. iNdEx = postIndex
  10195. case 5:
  10196. if wireType != 2 {
  10197. return fmt.Errorf("proto: wrong wireType = %d for field AppStateBytes", wireType)
  10198. }
  10199. var byteLen int
  10200. for shift := uint(0); ; shift += 7 {
  10201. if shift >= 64 {
  10202. return ErrIntOverflowTypes
  10203. }
  10204. if iNdEx >= l {
  10205. return io.ErrUnexpectedEOF
  10206. }
  10207. b := dAtA[iNdEx]
  10208. iNdEx++
  10209. byteLen |= (int(b) & 0x7F) << shift
  10210. if b < 0x80 {
  10211. break
  10212. }
  10213. }
  10214. if byteLen < 0 {
  10215. return ErrInvalidLengthTypes
  10216. }
  10217. postIndex := iNdEx + byteLen
  10218. if postIndex > l {
  10219. return io.ErrUnexpectedEOF
  10220. }
  10221. m.AppStateBytes = append(m.AppStateBytes[:0], dAtA[iNdEx:postIndex]...)
  10222. if m.AppStateBytes == nil {
  10223. m.AppStateBytes = []byte{}
  10224. }
  10225. iNdEx = postIndex
  10226. default:
  10227. iNdEx = preIndex
  10228. skippy, err := skipTypes(dAtA[iNdEx:])
  10229. if err != nil {
  10230. return err
  10231. }
  10232. if skippy < 0 {
  10233. return ErrInvalidLengthTypes
  10234. }
  10235. if (iNdEx + skippy) > l {
  10236. return io.ErrUnexpectedEOF
  10237. }
  10238. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10239. iNdEx += skippy
  10240. }
  10241. }
  10242. if iNdEx > l {
  10243. return io.ErrUnexpectedEOF
  10244. }
  10245. return nil
  10246. }
  10247. func (m *RequestQuery) Unmarshal(dAtA []byte) error {
  10248. l := len(dAtA)
  10249. iNdEx := 0
  10250. for iNdEx < l {
  10251. preIndex := iNdEx
  10252. var wire uint64
  10253. for shift := uint(0); ; shift += 7 {
  10254. if shift >= 64 {
  10255. return ErrIntOverflowTypes
  10256. }
  10257. if iNdEx >= l {
  10258. return io.ErrUnexpectedEOF
  10259. }
  10260. b := dAtA[iNdEx]
  10261. iNdEx++
  10262. wire |= (uint64(b) & 0x7F) << shift
  10263. if b < 0x80 {
  10264. break
  10265. }
  10266. }
  10267. fieldNum := int32(wire >> 3)
  10268. wireType := int(wire & 0x7)
  10269. if wireType == 4 {
  10270. return fmt.Errorf("proto: RequestQuery: wiretype end group for non-group")
  10271. }
  10272. if fieldNum <= 0 {
  10273. return fmt.Errorf("proto: RequestQuery: illegal tag %d (wire type %d)", fieldNum, wire)
  10274. }
  10275. switch fieldNum {
  10276. case 1:
  10277. if wireType != 2 {
  10278. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  10279. }
  10280. var byteLen int
  10281. for shift := uint(0); ; shift += 7 {
  10282. if shift >= 64 {
  10283. return ErrIntOverflowTypes
  10284. }
  10285. if iNdEx >= l {
  10286. return io.ErrUnexpectedEOF
  10287. }
  10288. b := dAtA[iNdEx]
  10289. iNdEx++
  10290. byteLen |= (int(b) & 0x7F) << shift
  10291. if b < 0x80 {
  10292. break
  10293. }
  10294. }
  10295. if byteLen < 0 {
  10296. return ErrInvalidLengthTypes
  10297. }
  10298. postIndex := iNdEx + byteLen
  10299. if postIndex > l {
  10300. return io.ErrUnexpectedEOF
  10301. }
  10302. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  10303. if m.Data == nil {
  10304. m.Data = []byte{}
  10305. }
  10306. iNdEx = postIndex
  10307. case 2:
  10308. if wireType != 2 {
  10309. return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
  10310. }
  10311. var stringLen uint64
  10312. for shift := uint(0); ; shift += 7 {
  10313. if shift >= 64 {
  10314. return ErrIntOverflowTypes
  10315. }
  10316. if iNdEx >= l {
  10317. return io.ErrUnexpectedEOF
  10318. }
  10319. b := dAtA[iNdEx]
  10320. iNdEx++
  10321. stringLen |= (uint64(b) & 0x7F) << shift
  10322. if b < 0x80 {
  10323. break
  10324. }
  10325. }
  10326. intStringLen := int(stringLen)
  10327. if intStringLen < 0 {
  10328. return ErrInvalidLengthTypes
  10329. }
  10330. postIndex := iNdEx + intStringLen
  10331. if postIndex > l {
  10332. return io.ErrUnexpectedEOF
  10333. }
  10334. m.Path = string(dAtA[iNdEx:postIndex])
  10335. iNdEx = postIndex
  10336. case 3:
  10337. if wireType != 0 {
  10338. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  10339. }
  10340. m.Height = 0
  10341. for shift := uint(0); ; shift += 7 {
  10342. if shift >= 64 {
  10343. return ErrIntOverflowTypes
  10344. }
  10345. if iNdEx >= l {
  10346. return io.ErrUnexpectedEOF
  10347. }
  10348. b := dAtA[iNdEx]
  10349. iNdEx++
  10350. m.Height |= (int64(b) & 0x7F) << shift
  10351. if b < 0x80 {
  10352. break
  10353. }
  10354. }
  10355. case 4:
  10356. if wireType != 0 {
  10357. return fmt.Errorf("proto: wrong wireType = %d for field Prove", wireType)
  10358. }
  10359. var v int
  10360. for shift := uint(0); ; shift += 7 {
  10361. if shift >= 64 {
  10362. return ErrIntOverflowTypes
  10363. }
  10364. if iNdEx >= l {
  10365. return io.ErrUnexpectedEOF
  10366. }
  10367. b := dAtA[iNdEx]
  10368. iNdEx++
  10369. v |= (int(b) & 0x7F) << shift
  10370. if b < 0x80 {
  10371. break
  10372. }
  10373. }
  10374. m.Prove = bool(v != 0)
  10375. default:
  10376. iNdEx = preIndex
  10377. skippy, err := skipTypes(dAtA[iNdEx:])
  10378. if err != nil {
  10379. return err
  10380. }
  10381. if skippy < 0 {
  10382. return ErrInvalidLengthTypes
  10383. }
  10384. if (iNdEx + skippy) > l {
  10385. return io.ErrUnexpectedEOF
  10386. }
  10387. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10388. iNdEx += skippy
  10389. }
  10390. }
  10391. if iNdEx > l {
  10392. return io.ErrUnexpectedEOF
  10393. }
  10394. return nil
  10395. }
  10396. func (m *RequestBeginBlock) Unmarshal(dAtA []byte) error {
  10397. l := len(dAtA)
  10398. iNdEx := 0
  10399. for iNdEx < l {
  10400. preIndex := iNdEx
  10401. var wire uint64
  10402. for shift := uint(0); ; shift += 7 {
  10403. if shift >= 64 {
  10404. return ErrIntOverflowTypes
  10405. }
  10406. if iNdEx >= l {
  10407. return io.ErrUnexpectedEOF
  10408. }
  10409. b := dAtA[iNdEx]
  10410. iNdEx++
  10411. wire |= (uint64(b) & 0x7F) << shift
  10412. if b < 0x80 {
  10413. break
  10414. }
  10415. }
  10416. fieldNum := int32(wire >> 3)
  10417. wireType := int(wire & 0x7)
  10418. if wireType == 4 {
  10419. return fmt.Errorf("proto: RequestBeginBlock: wiretype end group for non-group")
  10420. }
  10421. if fieldNum <= 0 {
  10422. return fmt.Errorf("proto: RequestBeginBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  10423. }
  10424. switch fieldNum {
  10425. case 1:
  10426. if wireType != 2 {
  10427. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  10428. }
  10429. var byteLen int
  10430. for shift := uint(0); ; shift += 7 {
  10431. if shift >= 64 {
  10432. return ErrIntOverflowTypes
  10433. }
  10434. if iNdEx >= l {
  10435. return io.ErrUnexpectedEOF
  10436. }
  10437. b := dAtA[iNdEx]
  10438. iNdEx++
  10439. byteLen |= (int(b) & 0x7F) << shift
  10440. if b < 0x80 {
  10441. break
  10442. }
  10443. }
  10444. if byteLen < 0 {
  10445. return ErrInvalidLengthTypes
  10446. }
  10447. postIndex := iNdEx + byteLen
  10448. if postIndex > l {
  10449. return io.ErrUnexpectedEOF
  10450. }
  10451. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  10452. if m.Hash == nil {
  10453. m.Hash = []byte{}
  10454. }
  10455. iNdEx = postIndex
  10456. case 2:
  10457. if wireType != 2 {
  10458. return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType)
  10459. }
  10460. var msglen int
  10461. for shift := uint(0); ; shift += 7 {
  10462. if shift >= 64 {
  10463. return ErrIntOverflowTypes
  10464. }
  10465. if iNdEx >= l {
  10466. return io.ErrUnexpectedEOF
  10467. }
  10468. b := dAtA[iNdEx]
  10469. iNdEx++
  10470. msglen |= (int(b) & 0x7F) << shift
  10471. if b < 0x80 {
  10472. break
  10473. }
  10474. }
  10475. if msglen < 0 {
  10476. return ErrInvalidLengthTypes
  10477. }
  10478. postIndex := iNdEx + msglen
  10479. if postIndex > l {
  10480. return io.ErrUnexpectedEOF
  10481. }
  10482. if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10483. return err
  10484. }
  10485. iNdEx = postIndex
  10486. case 3:
  10487. if wireType != 2 {
  10488. return fmt.Errorf("proto: wrong wireType = %d for field LastCommitInfo", wireType)
  10489. }
  10490. var msglen int
  10491. for shift := uint(0); ; shift += 7 {
  10492. if shift >= 64 {
  10493. return ErrIntOverflowTypes
  10494. }
  10495. if iNdEx >= l {
  10496. return io.ErrUnexpectedEOF
  10497. }
  10498. b := dAtA[iNdEx]
  10499. iNdEx++
  10500. msglen |= (int(b) & 0x7F) << shift
  10501. if b < 0x80 {
  10502. break
  10503. }
  10504. }
  10505. if msglen < 0 {
  10506. return ErrInvalidLengthTypes
  10507. }
  10508. postIndex := iNdEx + msglen
  10509. if postIndex > l {
  10510. return io.ErrUnexpectedEOF
  10511. }
  10512. if err := m.LastCommitInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10513. return err
  10514. }
  10515. iNdEx = postIndex
  10516. case 4:
  10517. if wireType != 2 {
  10518. return fmt.Errorf("proto: wrong wireType = %d for field ByzantineValidators", wireType)
  10519. }
  10520. var msglen int
  10521. for shift := uint(0); ; shift += 7 {
  10522. if shift >= 64 {
  10523. return ErrIntOverflowTypes
  10524. }
  10525. if iNdEx >= l {
  10526. return io.ErrUnexpectedEOF
  10527. }
  10528. b := dAtA[iNdEx]
  10529. iNdEx++
  10530. msglen |= (int(b) & 0x7F) << shift
  10531. if b < 0x80 {
  10532. break
  10533. }
  10534. }
  10535. if msglen < 0 {
  10536. return ErrInvalidLengthTypes
  10537. }
  10538. postIndex := iNdEx + msglen
  10539. if postIndex > l {
  10540. return io.ErrUnexpectedEOF
  10541. }
  10542. m.ByzantineValidators = append(m.ByzantineValidators, Evidence{})
  10543. if err := m.ByzantineValidators[len(m.ByzantineValidators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10544. return err
  10545. }
  10546. iNdEx = postIndex
  10547. default:
  10548. iNdEx = preIndex
  10549. skippy, err := skipTypes(dAtA[iNdEx:])
  10550. if err != nil {
  10551. return err
  10552. }
  10553. if skippy < 0 {
  10554. return ErrInvalidLengthTypes
  10555. }
  10556. if (iNdEx + skippy) > l {
  10557. return io.ErrUnexpectedEOF
  10558. }
  10559. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10560. iNdEx += skippy
  10561. }
  10562. }
  10563. if iNdEx > l {
  10564. return io.ErrUnexpectedEOF
  10565. }
  10566. return nil
  10567. }
  10568. func (m *RequestCheckTx) Unmarshal(dAtA []byte) error {
  10569. l := len(dAtA)
  10570. iNdEx := 0
  10571. for iNdEx < l {
  10572. preIndex := iNdEx
  10573. var wire uint64
  10574. for shift := uint(0); ; shift += 7 {
  10575. if shift >= 64 {
  10576. return ErrIntOverflowTypes
  10577. }
  10578. if iNdEx >= l {
  10579. return io.ErrUnexpectedEOF
  10580. }
  10581. b := dAtA[iNdEx]
  10582. iNdEx++
  10583. wire |= (uint64(b) & 0x7F) << shift
  10584. if b < 0x80 {
  10585. break
  10586. }
  10587. }
  10588. fieldNum := int32(wire >> 3)
  10589. wireType := int(wire & 0x7)
  10590. if wireType == 4 {
  10591. return fmt.Errorf("proto: RequestCheckTx: wiretype end group for non-group")
  10592. }
  10593. if fieldNum <= 0 {
  10594. return fmt.Errorf("proto: RequestCheckTx: illegal tag %d (wire type %d)", fieldNum, wire)
  10595. }
  10596. switch fieldNum {
  10597. case 1:
  10598. if wireType != 2 {
  10599. return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType)
  10600. }
  10601. var byteLen int
  10602. for shift := uint(0); ; shift += 7 {
  10603. if shift >= 64 {
  10604. return ErrIntOverflowTypes
  10605. }
  10606. if iNdEx >= l {
  10607. return io.ErrUnexpectedEOF
  10608. }
  10609. b := dAtA[iNdEx]
  10610. iNdEx++
  10611. byteLen |= (int(b) & 0x7F) << shift
  10612. if b < 0x80 {
  10613. break
  10614. }
  10615. }
  10616. if byteLen < 0 {
  10617. return ErrInvalidLengthTypes
  10618. }
  10619. postIndex := iNdEx + byteLen
  10620. if postIndex > l {
  10621. return io.ErrUnexpectedEOF
  10622. }
  10623. m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...)
  10624. if m.Tx == nil {
  10625. m.Tx = []byte{}
  10626. }
  10627. iNdEx = postIndex
  10628. case 2:
  10629. if wireType != 0 {
  10630. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  10631. }
  10632. m.Type = 0
  10633. for shift := uint(0); ; shift += 7 {
  10634. if shift >= 64 {
  10635. return ErrIntOverflowTypes
  10636. }
  10637. if iNdEx >= l {
  10638. return io.ErrUnexpectedEOF
  10639. }
  10640. b := dAtA[iNdEx]
  10641. iNdEx++
  10642. m.Type |= (CheckTxType(b) & 0x7F) << shift
  10643. if b < 0x80 {
  10644. break
  10645. }
  10646. }
  10647. default:
  10648. iNdEx = preIndex
  10649. skippy, err := skipTypes(dAtA[iNdEx:])
  10650. if err != nil {
  10651. return err
  10652. }
  10653. if skippy < 0 {
  10654. return ErrInvalidLengthTypes
  10655. }
  10656. if (iNdEx + skippy) > l {
  10657. return io.ErrUnexpectedEOF
  10658. }
  10659. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10660. iNdEx += skippy
  10661. }
  10662. }
  10663. if iNdEx > l {
  10664. return io.ErrUnexpectedEOF
  10665. }
  10666. return nil
  10667. }
  10668. func (m *RequestDeliverTx) Unmarshal(dAtA []byte) error {
  10669. l := len(dAtA)
  10670. iNdEx := 0
  10671. for iNdEx < l {
  10672. preIndex := iNdEx
  10673. var wire uint64
  10674. for shift := uint(0); ; shift += 7 {
  10675. if shift >= 64 {
  10676. return ErrIntOverflowTypes
  10677. }
  10678. if iNdEx >= l {
  10679. return io.ErrUnexpectedEOF
  10680. }
  10681. b := dAtA[iNdEx]
  10682. iNdEx++
  10683. wire |= (uint64(b) & 0x7F) << shift
  10684. if b < 0x80 {
  10685. break
  10686. }
  10687. }
  10688. fieldNum := int32(wire >> 3)
  10689. wireType := int(wire & 0x7)
  10690. if wireType == 4 {
  10691. return fmt.Errorf("proto: RequestDeliverTx: wiretype end group for non-group")
  10692. }
  10693. if fieldNum <= 0 {
  10694. return fmt.Errorf("proto: RequestDeliverTx: illegal tag %d (wire type %d)", fieldNum, wire)
  10695. }
  10696. switch fieldNum {
  10697. case 1:
  10698. if wireType != 2 {
  10699. return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType)
  10700. }
  10701. var byteLen int
  10702. for shift := uint(0); ; shift += 7 {
  10703. if shift >= 64 {
  10704. return ErrIntOverflowTypes
  10705. }
  10706. if iNdEx >= l {
  10707. return io.ErrUnexpectedEOF
  10708. }
  10709. b := dAtA[iNdEx]
  10710. iNdEx++
  10711. byteLen |= (int(b) & 0x7F) << shift
  10712. if b < 0x80 {
  10713. break
  10714. }
  10715. }
  10716. if byteLen < 0 {
  10717. return ErrInvalidLengthTypes
  10718. }
  10719. postIndex := iNdEx + byteLen
  10720. if postIndex > l {
  10721. return io.ErrUnexpectedEOF
  10722. }
  10723. m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...)
  10724. if m.Tx == nil {
  10725. m.Tx = []byte{}
  10726. }
  10727. iNdEx = postIndex
  10728. default:
  10729. iNdEx = preIndex
  10730. skippy, err := skipTypes(dAtA[iNdEx:])
  10731. if err != nil {
  10732. return err
  10733. }
  10734. if skippy < 0 {
  10735. return ErrInvalidLengthTypes
  10736. }
  10737. if (iNdEx + skippy) > l {
  10738. return io.ErrUnexpectedEOF
  10739. }
  10740. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10741. iNdEx += skippy
  10742. }
  10743. }
  10744. if iNdEx > l {
  10745. return io.ErrUnexpectedEOF
  10746. }
  10747. return nil
  10748. }
  10749. func (m *RequestEndBlock) Unmarshal(dAtA []byte) error {
  10750. l := len(dAtA)
  10751. iNdEx := 0
  10752. for iNdEx < l {
  10753. preIndex := iNdEx
  10754. var wire uint64
  10755. for shift := uint(0); ; shift += 7 {
  10756. if shift >= 64 {
  10757. return ErrIntOverflowTypes
  10758. }
  10759. if iNdEx >= l {
  10760. return io.ErrUnexpectedEOF
  10761. }
  10762. b := dAtA[iNdEx]
  10763. iNdEx++
  10764. wire |= (uint64(b) & 0x7F) << shift
  10765. if b < 0x80 {
  10766. break
  10767. }
  10768. }
  10769. fieldNum := int32(wire >> 3)
  10770. wireType := int(wire & 0x7)
  10771. if wireType == 4 {
  10772. return fmt.Errorf("proto: RequestEndBlock: wiretype end group for non-group")
  10773. }
  10774. if fieldNum <= 0 {
  10775. return fmt.Errorf("proto: RequestEndBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  10776. }
  10777. switch fieldNum {
  10778. case 1:
  10779. if wireType != 0 {
  10780. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  10781. }
  10782. m.Height = 0
  10783. for shift := uint(0); ; shift += 7 {
  10784. if shift >= 64 {
  10785. return ErrIntOverflowTypes
  10786. }
  10787. if iNdEx >= l {
  10788. return io.ErrUnexpectedEOF
  10789. }
  10790. b := dAtA[iNdEx]
  10791. iNdEx++
  10792. m.Height |= (int64(b) & 0x7F) << shift
  10793. if b < 0x80 {
  10794. break
  10795. }
  10796. }
  10797. default:
  10798. iNdEx = preIndex
  10799. skippy, err := skipTypes(dAtA[iNdEx:])
  10800. if err != nil {
  10801. return err
  10802. }
  10803. if skippy < 0 {
  10804. return ErrInvalidLengthTypes
  10805. }
  10806. if (iNdEx + skippy) > l {
  10807. return io.ErrUnexpectedEOF
  10808. }
  10809. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10810. iNdEx += skippy
  10811. }
  10812. }
  10813. if iNdEx > l {
  10814. return io.ErrUnexpectedEOF
  10815. }
  10816. return nil
  10817. }
  10818. func (m *RequestCommit) Unmarshal(dAtA []byte) error {
  10819. l := len(dAtA)
  10820. iNdEx := 0
  10821. for iNdEx < l {
  10822. preIndex := iNdEx
  10823. var wire uint64
  10824. for shift := uint(0); ; shift += 7 {
  10825. if shift >= 64 {
  10826. return ErrIntOverflowTypes
  10827. }
  10828. if iNdEx >= l {
  10829. return io.ErrUnexpectedEOF
  10830. }
  10831. b := dAtA[iNdEx]
  10832. iNdEx++
  10833. wire |= (uint64(b) & 0x7F) << shift
  10834. if b < 0x80 {
  10835. break
  10836. }
  10837. }
  10838. fieldNum := int32(wire >> 3)
  10839. wireType := int(wire & 0x7)
  10840. if wireType == 4 {
  10841. return fmt.Errorf("proto: RequestCommit: wiretype end group for non-group")
  10842. }
  10843. if fieldNum <= 0 {
  10844. return fmt.Errorf("proto: RequestCommit: illegal tag %d (wire type %d)", fieldNum, wire)
  10845. }
  10846. switch fieldNum {
  10847. default:
  10848. iNdEx = preIndex
  10849. skippy, err := skipTypes(dAtA[iNdEx:])
  10850. if err != nil {
  10851. return err
  10852. }
  10853. if skippy < 0 {
  10854. return ErrInvalidLengthTypes
  10855. }
  10856. if (iNdEx + skippy) > l {
  10857. return io.ErrUnexpectedEOF
  10858. }
  10859. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  10860. iNdEx += skippy
  10861. }
  10862. }
  10863. if iNdEx > l {
  10864. return io.ErrUnexpectedEOF
  10865. }
  10866. return nil
  10867. }
  10868. func (m *Response) Unmarshal(dAtA []byte) error {
  10869. l := len(dAtA)
  10870. iNdEx := 0
  10871. for iNdEx < l {
  10872. preIndex := iNdEx
  10873. var wire uint64
  10874. for shift := uint(0); ; shift += 7 {
  10875. if shift >= 64 {
  10876. return ErrIntOverflowTypes
  10877. }
  10878. if iNdEx >= l {
  10879. return io.ErrUnexpectedEOF
  10880. }
  10881. b := dAtA[iNdEx]
  10882. iNdEx++
  10883. wire |= (uint64(b) & 0x7F) << shift
  10884. if b < 0x80 {
  10885. break
  10886. }
  10887. }
  10888. fieldNum := int32(wire >> 3)
  10889. wireType := int(wire & 0x7)
  10890. if wireType == 4 {
  10891. return fmt.Errorf("proto: Response: wiretype end group for non-group")
  10892. }
  10893. if fieldNum <= 0 {
  10894. return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
  10895. }
  10896. switch fieldNum {
  10897. case 1:
  10898. if wireType != 2 {
  10899. return fmt.Errorf("proto: wrong wireType = %d for field Exception", wireType)
  10900. }
  10901. var msglen int
  10902. for shift := uint(0); ; shift += 7 {
  10903. if shift >= 64 {
  10904. return ErrIntOverflowTypes
  10905. }
  10906. if iNdEx >= l {
  10907. return io.ErrUnexpectedEOF
  10908. }
  10909. b := dAtA[iNdEx]
  10910. iNdEx++
  10911. msglen |= (int(b) & 0x7F) << shift
  10912. if b < 0x80 {
  10913. break
  10914. }
  10915. }
  10916. if msglen < 0 {
  10917. return ErrInvalidLengthTypes
  10918. }
  10919. postIndex := iNdEx + msglen
  10920. if postIndex > l {
  10921. return io.ErrUnexpectedEOF
  10922. }
  10923. v := &ResponseException{}
  10924. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10925. return err
  10926. }
  10927. m.Value = &Response_Exception{v}
  10928. iNdEx = postIndex
  10929. case 2:
  10930. if wireType != 2 {
  10931. return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType)
  10932. }
  10933. var msglen int
  10934. for shift := uint(0); ; shift += 7 {
  10935. if shift >= 64 {
  10936. return ErrIntOverflowTypes
  10937. }
  10938. if iNdEx >= l {
  10939. return io.ErrUnexpectedEOF
  10940. }
  10941. b := dAtA[iNdEx]
  10942. iNdEx++
  10943. msglen |= (int(b) & 0x7F) << shift
  10944. if b < 0x80 {
  10945. break
  10946. }
  10947. }
  10948. if msglen < 0 {
  10949. return ErrInvalidLengthTypes
  10950. }
  10951. postIndex := iNdEx + msglen
  10952. if postIndex > l {
  10953. return io.ErrUnexpectedEOF
  10954. }
  10955. v := &ResponseEcho{}
  10956. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10957. return err
  10958. }
  10959. m.Value = &Response_Echo{v}
  10960. iNdEx = postIndex
  10961. case 3:
  10962. if wireType != 2 {
  10963. return fmt.Errorf("proto: wrong wireType = %d for field Flush", wireType)
  10964. }
  10965. var msglen int
  10966. for shift := uint(0); ; shift += 7 {
  10967. if shift >= 64 {
  10968. return ErrIntOverflowTypes
  10969. }
  10970. if iNdEx >= l {
  10971. return io.ErrUnexpectedEOF
  10972. }
  10973. b := dAtA[iNdEx]
  10974. iNdEx++
  10975. msglen |= (int(b) & 0x7F) << shift
  10976. if b < 0x80 {
  10977. break
  10978. }
  10979. }
  10980. if msglen < 0 {
  10981. return ErrInvalidLengthTypes
  10982. }
  10983. postIndex := iNdEx + msglen
  10984. if postIndex > l {
  10985. return io.ErrUnexpectedEOF
  10986. }
  10987. v := &ResponseFlush{}
  10988. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  10989. return err
  10990. }
  10991. m.Value = &Response_Flush{v}
  10992. iNdEx = postIndex
  10993. case 4:
  10994. if wireType != 2 {
  10995. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  10996. }
  10997. var msglen int
  10998. for shift := uint(0); ; shift += 7 {
  10999. if shift >= 64 {
  11000. return ErrIntOverflowTypes
  11001. }
  11002. if iNdEx >= l {
  11003. return io.ErrUnexpectedEOF
  11004. }
  11005. b := dAtA[iNdEx]
  11006. iNdEx++
  11007. msglen |= (int(b) & 0x7F) << shift
  11008. if b < 0x80 {
  11009. break
  11010. }
  11011. }
  11012. if msglen < 0 {
  11013. return ErrInvalidLengthTypes
  11014. }
  11015. postIndex := iNdEx + msglen
  11016. if postIndex > l {
  11017. return io.ErrUnexpectedEOF
  11018. }
  11019. v := &ResponseInfo{}
  11020. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11021. return err
  11022. }
  11023. m.Value = &Response_Info{v}
  11024. iNdEx = postIndex
  11025. case 5:
  11026. if wireType != 2 {
  11027. return fmt.Errorf("proto: wrong wireType = %d for field SetOption", wireType)
  11028. }
  11029. var msglen int
  11030. for shift := uint(0); ; shift += 7 {
  11031. if shift >= 64 {
  11032. return ErrIntOverflowTypes
  11033. }
  11034. if iNdEx >= l {
  11035. return io.ErrUnexpectedEOF
  11036. }
  11037. b := dAtA[iNdEx]
  11038. iNdEx++
  11039. msglen |= (int(b) & 0x7F) << shift
  11040. if b < 0x80 {
  11041. break
  11042. }
  11043. }
  11044. if msglen < 0 {
  11045. return ErrInvalidLengthTypes
  11046. }
  11047. postIndex := iNdEx + msglen
  11048. if postIndex > l {
  11049. return io.ErrUnexpectedEOF
  11050. }
  11051. v := &ResponseSetOption{}
  11052. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11053. return err
  11054. }
  11055. m.Value = &Response_SetOption{v}
  11056. iNdEx = postIndex
  11057. case 6:
  11058. if wireType != 2 {
  11059. return fmt.Errorf("proto: wrong wireType = %d for field InitChain", wireType)
  11060. }
  11061. var msglen int
  11062. for shift := uint(0); ; shift += 7 {
  11063. if shift >= 64 {
  11064. return ErrIntOverflowTypes
  11065. }
  11066. if iNdEx >= l {
  11067. return io.ErrUnexpectedEOF
  11068. }
  11069. b := dAtA[iNdEx]
  11070. iNdEx++
  11071. msglen |= (int(b) & 0x7F) << shift
  11072. if b < 0x80 {
  11073. break
  11074. }
  11075. }
  11076. if msglen < 0 {
  11077. return ErrInvalidLengthTypes
  11078. }
  11079. postIndex := iNdEx + msglen
  11080. if postIndex > l {
  11081. return io.ErrUnexpectedEOF
  11082. }
  11083. v := &ResponseInitChain{}
  11084. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11085. return err
  11086. }
  11087. m.Value = &Response_InitChain{v}
  11088. iNdEx = postIndex
  11089. case 7:
  11090. if wireType != 2 {
  11091. return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType)
  11092. }
  11093. var msglen int
  11094. for shift := uint(0); ; shift += 7 {
  11095. if shift >= 64 {
  11096. return ErrIntOverflowTypes
  11097. }
  11098. if iNdEx >= l {
  11099. return io.ErrUnexpectedEOF
  11100. }
  11101. b := dAtA[iNdEx]
  11102. iNdEx++
  11103. msglen |= (int(b) & 0x7F) << shift
  11104. if b < 0x80 {
  11105. break
  11106. }
  11107. }
  11108. if msglen < 0 {
  11109. return ErrInvalidLengthTypes
  11110. }
  11111. postIndex := iNdEx + msglen
  11112. if postIndex > l {
  11113. return io.ErrUnexpectedEOF
  11114. }
  11115. v := &ResponseQuery{}
  11116. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11117. return err
  11118. }
  11119. m.Value = &Response_Query{v}
  11120. iNdEx = postIndex
  11121. case 8:
  11122. if wireType != 2 {
  11123. return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType)
  11124. }
  11125. var msglen int
  11126. for shift := uint(0); ; shift += 7 {
  11127. if shift >= 64 {
  11128. return ErrIntOverflowTypes
  11129. }
  11130. if iNdEx >= l {
  11131. return io.ErrUnexpectedEOF
  11132. }
  11133. b := dAtA[iNdEx]
  11134. iNdEx++
  11135. msglen |= (int(b) & 0x7F) << shift
  11136. if b < 0x80 {
  11137. break
  11138. }
  11139. }
  11140. if msglen < 0 {
  11141. return ErrInvalidLengthTypes
  11142. }
  11143. postIndex := iNdEx + msglen
  11144. if postIndex > l {
  11145. return io.ErrUnexpectedEOF
  11146. }
  11147. v := &ResponseBeginBlock{}
  11148. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11149. return err
  11150. }
  11151. m.Value = &Response_BeginBlock{v}
  11152. iNdEx = postIndex
  11153. case 9:
  11154. if wireType != 2 {
  11155. return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType)
  11156. }
  11157. var msglen int
  11158. for shift := uint(0); ; shift += 7 {
  11159. if shift >= 64 {
  11160. return ErrIntOverflowTypes
  11161. }
  11162. if iNdEx >= l {
  11163. return io.ErrUnexpectedEOF
  11164. }
  11165. b := dAtA[iNdEx]
  11166. iNdEx++
  11167. msglen |= (int(b) & 0x7F) << shift
  11168. if b < 0x80 {
  11169. break
  11170. }
  11171. }
  11172. if msglen < 0 {
  11173. return ErrInvalidLengthTypes
  11174. }
  11175. postIndex := iNdEx + msglen
  11176. if postIndex > l {
  11177. return io.ErrUnexpectedEOF
  11178. }
  11179. v := &ResponseCheckTx{}
  11180. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11181. return err
  11182. }
  11183. m.Value = &Response_CheckTx{v}
  11184. iNdEx = postIndex
  11185. case 10:
  11186. if wireType != 2 {
  11187. return fmt.Errorf("proto: wrong wireType = %d for field DeliverTx", wireType)
  11188. }
  11189. var msglen int
  11190. for shift := uint(0); ; shift += 7 {
  11191. if shift >= 64 {
  11192. return ErrIntOverflowTypes
  11193. }
  11194. if iNdEx >= l {
  11195. return io.ErrUnexpectedEOF
  11196. }
  11197. b := dAtA[iNdEx]
  11198. iNdEx++
  11199. msglen |= (int(b) & 0x7F) << shift
  11200. if b < 0x80 {
  11201. break
  11202. }
  11203. }
  11204. if msglen < 0 {
  11205. return ErrInvalidLengthTypes
  11206. }
  11207. postIndex := iNdEx + msglen
  11208. if postIndex > l {
  11209. return io.ErrUnexpectedEOF
  11210. }
  11211. v := &ResponseDeliverTx{}
  11212. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11213. return err
  11214. }
  11215. m.Value = &Response_DeliverTx{v}
  11216. iNdEx = postIndex
  11217. case 11:
  11218. if wireType != 2 {
  11219. return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType)
  11220. }
  11221. var msglen int
  11222. for shift := uint(0); ; shift += 7 {
  11223. if shift >= 64 {
  11224. return ErrIntOverflowTypes
  11225. }
  11226. if iNdEx >= l {
  11227. return io.ErrUnexpectedEOF
  11228. }
  11229. b := dAtA[iNdEx]
  11230. iNdEx++
  11231. msglen |= (int(b) & 0x7F) << shift
  11232. if b < 0x80 {
  11233. break
  11234. }
  11235. }
  11236. if msglen < 0 {
  11237. return ErrInvalidLengthTypes
  11238. }
  11239. postIndex := iNdEx + msglen
  11240. if postIndex > l {
  11241. return io.ErrUnexpectedEOF
  11242. }
  11243. v := &ResponseEndBlock{}
  11244. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11245. return err
  11246. }
  11247. m.Value = &Response_EndBlock{v}
  11248. iNdEx = postIndex
  11249. case 12:
  11250. if wireType != 2 {
  11251. return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType)
  11252. }
  11253. var msglen int
  11254. for shift := uint(0); ; shift += 7 {
  11255. if shift >= 64 {
  11256. return ErrIntOverflowTypes
  11257. }
  11258. if iNdEx >= l {
  11259. return io.ErrUnexpectedEOF
  11260. }
  11261. b := dAtA[iNdEx]
  11262. iNdEx++
  11263. msglen |= (int(b) & 0x7F) << shift
  11264. if b < 0x80 {
  11265. break
  11266. }
  11267. }
  11268. if msglen < 0 {
  11269. return ErrInvalidLengthTypes
  11270. }
  11271. postIndex := iNdEx + msglen
  11272. if postIndex > l {
  11273. return io.ErrUnexpectedEOF
  11274. }
  11275. v := &ResponseCommit{}
  11276. if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11277. return err
  11278. }
  11279. m.Value = &Response_Commit{v}
  11280. iNdEx = postIndex
  11281. default:
  11282. iNdEx = preIndex
  11283. skippy, err := skipTypes(dAtA[iNdEx:])
  11284. if err != nil {
  11285. return err
  11286. }
  11287. if skippy < 0 {
  11288. return ErrInvalidLengthTypes
  11289. }
  11290. if (iNdEx + skippy) > l {
  11291. return io.ErrUnexpectedEOF
  11292. }
  11293. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11294. iNdEx += skippy
  11295. }
  11296. }
  11297. if iNdEx > l {
  11298. return io.ErrUnexpectedEOF
  11299. }
  11300. return nil
  11301. }
  11302. func (m *ResponseException) Unmarshal(dAtA []byte) error {
  11303. l := len(dAtA)
  11304. iNdEx := 0
  11305. for iNdEx < l {
  11306. preIndex := iNdEx
  11307. var wire uint64
  11308. for shift := uint(0); ; shift += 7 {
  11309. if shift >= 64 {
  11310. return ErrIntOverflowTypes
  11311. }
  11312. if iNdEx >= l {
  11313. return io.ErrUnexpectedEOF
  11314. }
  11315. b := dAtA[iNdEx]
  11316. iNdEx++
  11317. wire |= (uint64(b) & 0x7F) << shift
  11318. if b < 0x80 {
  11319. break
  11320. }
  11321. }
  11322. fieldNum := int32(wire >> 3)
  11323. wireType := int(wire & 0x7)
  11324. if wireType == 4 {
  11325. return fmt.Errorf("proto: ResponseException: wiretype end group for non-group")
  11326. }
  11327. if fieldNum <= 0 {
  11328. return fmt.Errorf("proto: ResponseException: illegal tag %d (wire type %d)", fieldNum, wire)
  11329. }
  11330. switch fieldNum {
  11331. case 1:
  11332. if wireType != 2 {
  11333. return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
  11334. }
  11335. var stringLen uint64
  11336. for shift := uint(0); ; shift += 7 {
  11337. if shift >= 64 {
  11338. return ErrIntOverflowTypes
  11339. }
  11340. if iNdEx >= l {
  11341. return io.ErrUnexpectedEOF
  11342. }
  11343. b := dAtA[iNdEx]
  11344. iNdEx++
  11345. stringLen |= (uint64(b) & 0x7F) << shift
  11346. if b < 0x80 {
  11347. break
  11348. }
  11349. }
  11350. intStringLen := int(stringLen)
  11351. if intStringLen < 0 {
  11352. return ErrInvalidLengthTypes
  11353. }
  11354. postIndex := iNdEx + intStringLen
  11355. if postIndex > l {
  11356. return io.ErrUnexpectedEOF
  11357. }
  11358. m.Error = string(dAtA[iNdEx:postIndex])
  11359. iNdEx = postIndex
  11360. default:
  11361. iNdEx = preIndex
  11362. skippy, err := skipTypes(dAtA[iNdEx:])
  11363. if err != nil {
  11364. return err
  11365. }
  11366. if skippy < 0 {
  11367. return ErrInvalidLengthTypes
  11368. }
  11369. if (iNdEx + skippy) > l {
  11370. return io.ErrUnexpectedEOF
  11371. }
  11372. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11373. iNdEx += skippy
  11374. }
  11375. }
  11376. if iNdEx > l {
  11377. return io.ErrUnexpectedEOF
  11378. }
  11379. return nil
  11380. }
  11381. func (m *ResponseEcho) Unmarshal(dAtA []byte) error {
  11382. l := len(dAtA)
  11383. iNdEx := 0
  11384. for iNdEx < l {
  11385. preIndex := iNdEx
  11386. var wire uint64
  11387. for shift := uint(0); ; shift += 7 {
  11388. if shift >= 64 {
  11389. return ErrIntOverflowTypes
  11390. }
  11391. if iNdEx >= l {
  11392. return io.ErrUnexpectedEOF
  11393. }
  11394. b := dAtA[iNdEx]
  11395. iNdEx++
  11396. wire |= (uint64(b) & 0x7F) << shift
  11397. if b < 0x80 {
  11398. break
  11399. }
  11400. }
  11401. fieldNum := int32(wire >> 3)
  11402. wireType := int(wire & 0x7)
  11403. if wireType == 4 {
  11404. return fmt.Errorf("proto: ResponseEcho: wiretype end group for non-group")
  11405. }
  11406. if fieldNum <= 0 {
  11407. return fmt.Errorf("proto: ResponseEcho: illegal tag %d (wire type %d)", fieldNum, wire)
  11408. }
  11409. switch fieldNum {
  11410. case 1:
  11411. if wireType != 2 {
  11412. return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
  11413. }
  11414. var stringLen uint64
  11415. for shift := uint(0); ; shift += 7 {
  11416. if shift >= 64 {
  11417. return ErrIntOverflowTypes
  11418. }
  11419. if iNdEx >= l {
  11420. return io.ErrUnexpectedEOF
  11421. }
  11422. b := dAtA[iNdEx]
  11423. iNdEx++
  11424. stringLen |= (uint64(b) & 0x7F) << shift
  11425. if b < 0x80 {
  11426. break
  11427. }
  11428. }
  11429. intStringLen := int(stringLen)
  11430. if intStringLen < 0 {
  11431. return ErrInvalidLengthTypes
  11432. }
  11433. postIndex := iNdEx + intStringLen
  11434. if postIndex > l {
  11435. return io.ErrUnexpectedEOF
  11436. }
  11437. m.Message = string(dAtA[iNdEx:postIndex])
  11438. iNdEx = postIndex
  11439. default:
  11440. iNdEx = preIndex
  11441. skippy, err := skipTypes(dAtA[iNdEx:])
  11442. if err != nil {
  11443. return err
  11444. }
  11445. if skippy < 0 {
  11446. return ErrInvalidLengthTypes
  11447. }
  11448. if (iNdEx + skippy) > l {
  11449. return io.ErrUnexpectedEOF
  11450. }
  11451. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11452. iNdEx += skippy
  11453. }
  11454. }
  11455. if iNdEx > l {
  11456. return io.ErrUnexpectedEOF
  11457. }
  11458. return nil
  11459. }
  11460. func (m *ResponseFlush) Unmarshal(dAtA []byte) error {
  11461. l := len(dAtA)
  11462. iNdEx := 0
  11463. for iNdEx < l {
  11464. preIndex := iNdEx
  11465. var wire uint64
  11466. for shift := uint(0); ; shift += 7 {
  11467. if shift >= 64 {
  11468. return ErrIntOverflowTypes
  11469. }
  11470. if iNdEx >= l {
  11471. return io.ErrUnexpectedEOF
  11472. }
  11473. b := dAtA[iNdEx]
  11474. iNdEx++
  11475. wire |= (uint64(b) & 0x7F) << shift
  11476. if b < 0x80 {
  11477. break
  11478. }
  11479. }
  11480. fieldNum := int32(wire >> 3)
  11481. wireType := int(wire & 0x7)
  11482. if wireType == 4 {
  11483. return fmt.Errorf("proto: ResponseFlush: wiretype end group for non-group")
  11484. }
  11485. if fieldNum <= 0 {
  11486. return fmt.Errorf("proto: ResponseFlush: illegal tag %d (wire type %d)", fieldNum, wire)
  11487. }
  11488. switch fieldNum {
  11489. default:
  11490. iNdEx = preIndex
  11491. skippy, err := skipTypes(dAtA[iNdEx:])
  11492. if err != nil {
  11493. return err
  11494. }
  11495. if skippy < 0 {
  11496. return ErrInvalidLengthTypes
  11497. }
  11498. if (iNdEx + skippy) > l {
  11499. return io.ErrUnexpectedEOF
  11500. }
  11501. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11502. iNdEx += skippy
  11503. }
  11504. }
  11505. if iNdEx > l {
  11506. return io.ErrUnexpectedEOF
  11507. }
  11508. return nil
  11509. }
  11510. func (m *ResponseInfo) Unmarshal(dAtA []byte) error {
  11511. l := len(dAtA)
  11512. iNdEx := 0
  11513. for iNdEx < l {
  11514. preIndex := iNdEx
  11515. var wire uint64
  11516. for shift := uint(0); ; shift += 7 {
  11517. if shift >= 64 {
  11518. return ErrIntOverflowTypes
  11519. }
  11520. if iNdEx >= l {
  11521. return io.ErrUnexpectedEOF
  11522. }
  11523. b := dAtA[iNdEx]
  11524. iNdEx++
  11525. wire |= (uint64(b) & 0x7F) << shift
  11526. if b < 0x80 {
  11527. break
  11528. }
  11529. }
  11530. fieldNum := int32(wire >> 3)
  11531. wireType := int(wire & 0x7)
  11532. if wireType == 4 {
  11533. return fmt.Errorf("proto: ResponseInfo: wiretype end group for non-group")
  11534. }
  11535. if fieldNum <= 0 {
  11536. return fmt.Errorf("proto: ResponseInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  11537. }
  11538. switch fieldNum {
  11539. case 1:
  11540. if wireType != 2 {
  11541. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  11542. }
  11543. var stringLen uint64
  11544. for shift := uint(0); ; shift += 7 {
  11545. if shift >= 64 {
  11546. return ErrIntOverflowTypes
  11547. }
  11548. if iNdEx >= l {
  11549. return io.ErrUnexpectedEOF
  11550. }
  11551. b := dAtA[iNdEx]
  11552. iNdEx++
  11553. stringLen |= (uint64(b) & 0x7F) << shift
  11554. if b < 0x80 {
  11555. break
  11556. }
  11557. }
  11558. intStringLen := int(stringLen)
  11559. if intStringLen < 0 {
  11560. return ErrInvalidLengthTypes
  11561. }
  11562. postIndex := iNdEx + intStringLen
  11563. if postIndex > l {
  11564. return io.ErrUnexpectedEOF
  11565. }
  11566. m.Data = string(dAtA[iNdEx:postIndex])
  11567. iNdEx = postIndex
  11568. case 2:
  11569. if wireType != 2 {
  11570. return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  11571. }
  11572. var stringLen uint64
  11573. for shift := uint(0); ; shift += 7 {
  11574. if shift >= 64 {
  11575. return ErrIntOverflowTypes
  11576. }
  11577. if iNdEx >= l {
  11578. return io.ErrUnexpectedEOF
  11579. }
  11580. b := dAtA[iNdEx]
  11581. iNdEx++
  11582. stringLen |= (uint64(b) & 0x7F) << shift
  11583. if b < 0x80 {
  11584. break
  11585. }
  11586. }
  11587. intStringLen := int(stringLen)
  11588. if intStringLen < 0 {
  11589. return ErrInvalidLengthTypes
  11590. }
  11591. postIndex := iNdEx + intStringLen
  11592. if postIndex > l {
  11593. return io.ErrUnexpectedEOF
  11594. }
  11595. m.Version = string(dAtA[iNdEx:postIndex])
  11596. iNdEx = postIndex
  11597. case 3:
  11598. if wireType != 0 {
  11599. return fmt.Errorf("proto: wrong wireType = %d for field AppVersion", wireType)
  11600. }
  11601. m.AppVersion = 0
  11602. for shift := uint(0); ; shift += 7 {
  11603. if shift >= 64 {
  11604. return ErrIntOverflowTypes
  11605. }
  11606. if iNdEx >= l {
  11607. return io.ErrUnexpectedEOF
  11608. }
  11609. b := dAtA[iNdEx]
  11610. iNdEx++
  11611. m.AppVersion |= (uint64(b) & 0x7F) << shift
  11612. if b < 0x80 {
  11613. break
  11614. }
  11615. }
  11616. case 4:
  11617. if wireType != 0 {
  11618. return fmt.Errorf("proto: wrong wireType = %d for field LastBlockHeight", wireType)
  11619. }
  11620. m.LastBlockHeight = 0
  11621. for shift := uint(0); ; shift += 7 {
  11622. if shift >= 64 {
  11623. return ErrIntOverflowTypes
  11624. }
  11625. if iNdEx >= l {
  11626. return io.ErrUnexpectedEOF
  11627. }
  11628. b := dAtA[iNdEx]
  11629. iNdEx++
  11630. m.LastBlockHeight |= (int64(b) & 0x7F) << shift
  11631. if b < 0x80 {
  11632. break
  11633. }
  11634. }
  11635. case 5:
  11636. if wireType != 2 {
  11637. return fmt.Errorf("proto: wrong wireType = %d for field LastBlockAppHash", wireType)
  11638. }
  11639. var byteLen int
  11640. for shift := uint(0); ; shift += 7 {
  11641. if shift >= 64 {
  11642. return ErrIntOverflowTypes
  11643. }
  11644. if iNdEx >= l {
  11645. return io.ErrUnexpectedEOF
  11646. }
  11647. b := dAtA[iNdEx]
  11648. iNdEx++
  11649. byteLen |= (int(b) & 0x7F) << shift
  11650. if b < 0x80 {
  11651. break
  11652. }
  11653. }
  11654. if byteLen < 0 {
  11655. return ErrInvalidLengthTypes
  11656. }
  11657. postIndex := iNdEx + byteLen
  11658. if postIndex > l {
  11659. return io.ErrUnexpectedEOF
  11660. }
  11661. m.LastBlockAppHash = append(m.LastBlockAppHash[:0], dAtA[iNdEx:postIndex]...)
  11662. if m.LastBlockAppHash == nil {
  11663. m.LastBlockAppHash = []byte{}
  11664. }
  11665. iNdEx = postIndex
  11666. default:
  11667. iNdEx = preIndex
  11668. skippy, err := skipTypes(dAtA[iNdEx:])
  11669. if err != nil {
  11670. return err
  11671. }
  11672. if skippy < 0 {
  11673. return ErrInvalidLengthTypes
  11674. }
  11675. if (iNdEx + skippy) > l {
  11676. return io.ErrUnexpectedEOF
  11677. }
  11678. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11679. iNdEx += skippy
  11680. }
  11681. }
  11682. if iNdEx > l {
  11683. return io.ErrUnexpectedEOF
  11684. }
  11685. return nil
  11686. }
  11687. func (m *ResponseSetOption) Unmarshal(dAtA []byte) error {
  11688. l := len(dAtA)
  11689. iNdEx := 0
  11690. for iNdEx < l {
  11691. preIndex := iNdEx
  11692. var wire uint64
  11693. for shift := uint(0); ; shift += 7 {
  11694. if shift >= 64 {
  11695. return ErrIntOverflowTypes
  11696. }
  11697. if iNdEx >= l {
  11698. return io.ErrUnexpectedEOF
  11699. }
  11700. b := dAtA[iNdEx]
  11701. iNdEx++
  11702. wire |= (uint64(b) & 0x7F) << shift
  11703. if b < 0x80 {
  11704. break
  11705. }
  11706. }
  11707. fieldNum := int32(wire >> 3)
  11708. wireType := int(wire & 0x7)
  11709. if wireType == 4 {
  11710. return fmt.Errorf("proto: ResponseSetOption: wiretype end group for non-group")
  11711. }
  11712. if fieldNum <= 0 {
  11713. return fmt.Errorf("proto: ResponseSetOption: illegal tag %d (wire type %d)", fieldNum, wire)
  11714. }
  11715. switch fieldNum {
  11716. case 1:
  11717. if wireType != 0 {
  11718. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  11719. }
  11720. m.Code = 0
  11721. for shift := uint(0); ; shift += 7 {
  11722. if shift >= 64 {
  11723. return ErrIntOverflowTypes
  11724. }
  11725. if iNdEx >= l {
  11726. return io.ErrUnexpectedEOF
  11727. }
  11728. b := dAtA[iNdEx]
  11729. iNdEx++
  11730. m.Code |= (uint32(b) & 0x7F) << shift
  11731. if b < 0x80 {
  11732. break
  11733. }
  11734. }
  11735. case 3:
  11736. if wireType != 2 {
  11737. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  11738. }
  11739. var stringLen uint64
  11740. for shift := uint(0); ; shift += 7 {
  11741. if shift >= 64 {
  11742. return ErrIntOverflowTypes
  11743. }
  11744. if iNdEx >= l {
  11745. return io.ErrUnexpectedEOF
  11746. }
  11747. b := dAtA[iNdEx]
  11748. iNdEx++
  11749. stringLen |= (uint64(b) & 0x7F) << shift
  11750. if b < 0x80 {
  11751. break
  11752. }
  11753. }
  11754. intStringLen := int(stringLen)
  11755. if intStringLen < 0 {
  11756. return ErrInvalidLengthTypes
  11757. }
  11758. postIndex := iNdEx + intStringLen
  11759. if postIndex > l {
  11760. return io.ErrUnexpectedEOF
  11761. }
  11762. m.Log = string(dAtA[iNdEx:postIndex])
  11763. iNdEx = postIndex
  11764. case 4:
  11765. if wireType != 2 {
  11766. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  11767. }
  11768. var stringLen uint64
  11769. for shift := uint(0); ; shift += 7 {
  11770. if shift >= 64 {
  11771. return ErrIntOverflowTypes
  11772. }
  11773. if iNdEx >= l {
  11774. return io.ErrUnexpectedEOF
  11775. }
  11776. b := dAtA[iNdEx]
  11777. iNdEx++
  11778. stringLen |= (uint64(b) & 0x7F) << shift
  11779. if b < 0x80 {
  11780. break
  11781. }
  11782. }
  11783. intStringLen := int(stringLen)
  11784. if intStringLen < 0 {
  11785. return ErrInvalidLengthTypes
  11786. }
  11787. postIndex := iNdEx + intStringLen
  11788. if postIndex > l {
  11789. return io.ErrUnexpectedEOF
  11790. }
  11791. m.Info = string(dAtA[iNdEx:postIndex])
  11792. iNdEx = postIndex
  11793. default:
  11794. iNdEx = preIndex
  11795. skippy, err := skipTypes(dAtA[iNdEx:])
  11796. if err != nil {
  11797. return err
  11798. }
  11799. if skippy < 0 {
  11800. return ErrInvalidLengthTypes
  11801. }
  11802. if (iNdEx + skippy) > l {
  11803. return io.ErrUnexpectedEOF
  11804. }
  11805. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11806. iNdEx += skippy
  11807. }
  11808. }
  11809. if iNdEx > l {
  11810. return io.ErrUnexpectedEOF
  11811. }
  11812. return nil
  11813. }
  11814. func (m *ResponseInitChain) Unmarshal(dAtA []byte) error {
  11815. l := len(dAtA)
  11816. iNdEx := 0
  11817. for iNdEx < l {
  11818. preIndex := iNdEx
  11819. var wire uint64
  11820. for shift := uint(0); ; shift += 7 {
  11821. if shift >= 64 {
  11822. return ErrIntOverflowTypes
  11823. }
  11824. if iNdEx >= l {
  11825. return io.ErrUnexpectedEOF
  11826. }
  11827. b := dAtA[iNdEx]
  11828. iNdEx++
  11829. wire |= (uint64(b) & 0x7F) << shift
  11830. if b < 0x80 {
  11831. break
  11832. }
  11833. }
  11834. fieldNum := int32(wire >> 3)
  11835. wireType := int(wire & 0x7)
  11836. if wireType == 4 {
  11837. return fmt.Errorf("proto: ResponseInitChain: wiretype end group for non-group")
  11838. }
  11839. if fieldNum <= 0 {
  11840. return fmt.Errorf("proto: ResponseInitChain: illegal tag %d (wire type %d)", fieldNum, wire)
  11841. }
  11842. switch fieldNum {
  11843. case 1:
  11844. if wireType != 2 {
  11845. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParams", wireType)
  11846. }
  11847. var msglen int
  11848. for shift := uint(0); ; shift += 7 {
  11849. if shift >= 64 {
  11850. return ErrIntOverflowTypes
  11851. }
  11852. if iNdEx >= l {
  11853. return io.ErrUnexpectedEOF
  11854. }
  11855. b := dAtA[iNdEx]
  11856. iNdEx++
  11857. msglen |= (int(b) & 0x7F) << shift
  11858. if b < 0x80 {
  11859. break
  11860. }
  11861. }
  11862. if msglen < 0 {
  11863. return ErrInvalidLengthTypes
  11864. }
  11865. postIndex := iNdEx + msglen
  11866. if postIndex > l {
  11867. return io.ErrUnexpectedEOF
  11868. }
  11869. if m.ConsensusParams == nil {
  11870. m.ConsensusParams = &ConsensusParams{}
  11871. }
  11872. if err := m.ConsensusParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11873. return err
  11874. }
  11875. iNdEx = postIndex
  11876. case 2:
  11877. if wireType != 2 {
  11878. return fmt.Errorf("proto: wrong wireType = %d for field Validators", wireType)
  11879. }
  11880. var msglen int
  11881. for shift := uint(0); ; shift += 7 {
  11882. if shift >= 64 {
  11883. return ErrIntOverflowTypes
  11884. }
  11885. if iNdEx >= l {
  11886. return io.ErrUnexpectedEOF
  11887. }
  11888. b := dAtA[iNdEx]
  11889. iNdEx++
  11890. msglen |= (int(b) & 0x7F) << shift
  11891. if b < 0x80 {
  11892. break
  11893. }
  11894. }
  11895. if msglen < 0 {
  11896. return ErrInvalidLengthTypes
  11897. }
  11898. postIndex := iNdEx + msglen
  11899. if postIndex > l {
  11900. return io.ErrUnexpectedEOF
  11901. }
  11902. m.Validators = append(m.Validators, ValidatorUpdate{})
  11903. if err := m.Validators[len(m.Validators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  11904. return err
  11905. }
  11906. iNdEx = postIndex
  11907. default:
  11908. iNdEx = preIndex
  11909. skippy, err := skipTypes(dAtA[iNdEx:])
  11910. if err != nil {
  11911. return err
  11912. }
  11913. if skippy < 0 {
  11914. return ErrInvalidLengthTypes
  11915. }
  11916. if (iNdEx + skippy) > l {
  11917. return io.ErrUnexpectedEOF
  11918. }
  11919. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  11920. iNdEx += skippy
  11921. }
  11922. }
  11923. if iNdEx > l {
  11924. return io.ErrUnexpectedEOF
  11925. }
  11926. return nil
  11927. }
  11928. func (m *ResponseQuery) Unmarshal(dAtA []byte) error {
  11929. l := len(dAtA)
  11930. iNdEx := 0
  11931. for iNdEx < l {
  11932. preIndex := iNdEx
  11933. var wire uint64
  11934. for shift := uint(0); ; shift += 7 {
  11935. if shift >= 64 {
  11936. return ErrIntOverflowTypes
  11937. }
  11938. if iNdEx >= l {
  11939. return io.ErrUnexpectedEOF
  11940. }
  11941. b := dAtA[iNdEx]
  11942. iNdEx++
  11943. wire |= (uint64(b) & 0x7F) << shift
  11944. if b < 0x80 {
  11945. break
  11946. }
  11947. }
  11948. fieldNum := int32(wire >> 3)
  11949. wireType := int(wire & 0x7)
  11950. if wireType == 4 {
  11951. return fmt.Errorf("proto: ResponseQuery: wiretype end group for non-group")
  11952. }
  11953. if fieldNum <= 0 {
  11954. return fmt.Errorf("proto: ResponseQuery: illegal tag %d (wire type %d)", fieldNum, wire)
  11955. }
  11956. switch fieldNum {
  11957. case 1:
  11958. if wireType != 0 {
  11959. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  11960. }
  11961. m.Code = 0
  11962. for shift := uint(0); ; shift += 7 {
  11963. if shift >= 64 {
  11964. return ErrIntOverflowTypes
  11965. }
  11966. if iNdEx >= l {
  11967. return io.ErrUnexpectedEOF
  11968. }
  11969. b := dAtA[iNdEx]
  11970. iNdEx++
  11971. m.Code |= (uint32(b) & 0x7F) << shift
  11972. if b < 0x80 {
  11973. break
  11974. }
  11975. }
  11976. case 3:
  11977. if wireType != 2 {
  11978. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  11979. }
  11980. var stringLen uint64
  11981. for shift := uint(0); ; shift += 7 {
  11982. if shift >= 64 {
  11983. return ErrIntOverflowTypes
  11984. }
  11985. if iNdEx >= l {
  11986. return io.ErrUnexpectedEOF
  11987. }
  11988. b := dAtA[iNdEx]
  11989. iNdEx++
  11990. stringLen |= (uint64(b) & 0x7F) << shift
  11991. if b < 0x80 {
  11992. break
  11993. }
  11994. }
  11995. intStringLen := int(stringLen)
  11996. if intStringLen < 0 {
  11997. return ErrInvalidLengthTypes
  11998. }
  11999. postIndex := iNdEx + intStringLen
  12000. if postIndex > l {
  12001. return io.ErrUnexpectedEOF
  12002. }
  12003. m.Log = string(dAtA[iNdEx:postIndex])
  12004. iNdEx = postIndex
  12005. case 4:
  12006. if wireType != 2 {
  12007. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  12008. }
  12009. var stringLen uint64
  12010. for shift := uint(0); ; shift += 7 {
  12011. if shift >= 64 {
  12012. return ErrIntOverflowTypes
  12013. }
  12014. if iNdEx >= l {
  12015. return io.ErrUnexpectedEOF
  12016. }
  12017. b := dAtA[iNdEx]
  12018. iNdEx++
  12019. stringLen |= (uint64(b) & 0x7F) << shift
  12020. if b < 0x80 {
  12021. break
  12022. }
  12023. }
  12024. intStringLen := int(stringLen)
  12025. if intStringLen < 0 {
  12026. return ErrInvalidLengthTypes
  12027. }
  12028. postIndex := iNdEx + intStringLen
  12029. if postIndex > l {
  12030. return io.ErrUnexpectedEOF
  12031. }
  12032. m.Info = string(dAtA[iNdEx:postIndex])
  12033. iNdEx = postIndex
  12034. case 5:
  12035. if wireType != 0 {
  12036. return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
  12037. }
  12038. m.Index = 0
  12039. for shift := uint(0); ; shift += 7 {
  12040. if shift >= 64 {
  12041. return ErrIntOverflowTypes
  12042. }
  12043. if iNdEx >= l {
  12044. return io.ErrUnexpectedEOF
  12045. }
  12046. b := dAtA[iNdEx]
  12047. iNdEx++
  12048. m.Index |= (int64(b) & 0x7F) << shift
  12049. if b < 0x80 {
  12050. break
  12051. }
  12052. }
  12053. case 6:
  12054. if wireType != 2 {
  12055. return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  12056. }
  12057. var byteLen int
  12058. for shift := uint(0); ; shift += 7 {
  12059. if shift >= 64 {
  12060. return ErrIntOverflowTypes
  12061. }
  12062. if iNdEx >= l {
  12063. return io.ErrUnexpectedEOF
  12064. }
  12065. b := dAtA[iNdEx]
  12066. iNdEx++
  12067. byteLen |= (int(b) & 0x7F) << shift
  12068. if b < 0x80 {
  12069. break
  12070. }
  12071. }
  12072. if byteLen < 0 {
  12073. return ErrInvalidLengthTypes
  12074. }
  12075. postIndex := iNdEx + byteLen
  12076. if postIndex > l {
  12077. return io.ErrUnexpectedEOF
  12078. }
  12079. m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
  12080. if m.Key == nil {
  12081. m.Key = []byte{}
  12082. }
  12083. iNdEx = postIndex
  12084. case 7:
  12085. if wireType != 2 {
  12086. return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  12087. }
  12088. var byteLen int
  12089. for shift := uint(0); ; shift += 7 {
  12090. if shift >= 64 {
  12091. return ErrIntOverflowTypes
  12092. }
  12093. if iNdEx >= l {
  12094. return io.ErrUnexpectedEOF
  12095. }
  12096. b := dAtA[iNdEx]
  12097. iNdEx++
  12098. byteLen |= (int(b) & 0x7F) << shift
  12099. if b < 0x80 {
  12100. break
  12101. }
  12102. }
  12103. if byteLen < 0 {
  12104. return ErrInvalidLengthTypes
  12105. }
  12106. postIndex := iNdEx + byteLen
  12107. if postIndex > l {
  12108. return io.ErrUnexpectedEOF
  12109. }
  12110. m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...)
  12111. if m.Value == nil {
  12112. m.Value = []byte{}
  12113. }
  12114. iNdEx = postIndex
  12115. case 8:
  12116. if wireType != 2 {
  12117. return fmt.Errorf("proto: wrong wireType = %d for field Proof", wireType)
  12118. }
  12119. var msglen int
  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. msglen |= (int(b) & 0x7F) << shift
  12130. if b < 0x80 {
  12131. break
  12132. }
  12133. }
  12134. if msglen < 0 {
  12135. return ErrInvalidLengthTypes
  12136. }
  12137. postIndex := iNdEx + msglen
  12138. if postIndex > l {
  12139. return io.ErrUnexpectedEOF
  12140. }
  12141. if m.Proof == nil {
  12142. m.Proof = &merkle.Proof{}
  12143. }
  12144. if err := m.Proof.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12145. return err
  12146. }
  12147. iNdEx = postIndex
  12148. case 9:
  12149. if wireType != 0 {
  12150. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  12151. }
  12152. m.Height = 0
  12153. for shift := uint(0); ; shift += 7 {
  12154. if shift >= 64 {
  12155. return ErrIntOverflowTypes
  12156. }
  12157. if iNdEx >= l {
  12158. return io.ErrUnexpectedEOF
  12159. }
  12160. b := dAtA[iNdEx]
  12161. iNdEx++
  12162. m.Height |= (int64(b) & 0x7F) << shift
  12163. if b < 0x80 {
  12164. break
  12165. }
  12166. }
  12167. case 10:
  12168. if wireType != 2 {
  12169. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  12170. }
  12171. var stringLen uint64
  12172. for shift := uint(0); ; shift += 7 {
  12173. if shift >= 64 {
  12174. return ErrIntOverflowTypes
  12175. }
  12176. if iNdEx >= l {
  12177. return io.ErrUnexpectedEOF
  12178. }
  12179. b := dAtA[iNdEx]
  12180. iNdEx++
  12181. stringLen |= (uint64(b) & 0x7F) << shift
  12182. if b < 0x80 {
  12183. break
  12184. }
  12185. }
  12186. intStringLen := int(stringLen)
  12187. if intStringLen < 0 {
  12188. return ErrInvalidLengthTypes
  12189. }
  12190. postIndex := iNdEx + intStringLen
  12191. if postIndex > l {
  12192. return io.ErrUnexpectedEOF
  12193. }
  12194. m.Codespace = string(dAtA[iNdEx:postIndex])
  12195. iNdEx = postIndex
  12196. default:
  12197. iNdEx = preIndex
  12198. skippy, err := skipTypes(dAtA[iNdEx:])
  12199. if err != nil {
  12200. return err
  12201. }
  12202. if skippy < 0 {
  12203. return ErrInvalidLengthTypes
  12204. }
  12205. if (iNdEx + skippy) > l {
  12206. return io.ErrUnexpectedEOF
  12207. }
  12208. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12209. iNdEx += skippy
  12210. }
  12211. }
  12212. if iNdEx > l {
  12213. return io.ErrUnexpectedEOF
  12214. }
  12215. return nil
  12216. }
  12217. func (m *ResponseBeginBlock) Unmarshal(dAtA []byte) error {
  12218. l := len(dAtA)
  12219. iNdEx := 0
  12220. for iNdEx < l {
  12221. preIndex := iNdEx
  12222. var wire uint64
  12223. for shift := uint(0); ; shift += 7 {
  12224. if shift >= 64 {
  12225. return ErrIntOverflowTypes
  12226. }
  12227. if iNdEx >= l {
  12228. return io.ErrUnexpectedEOF
  12229. }
  12230. b := dAtA[iNdEx]
  12231. iNdEx++
  12232. wire |= (uint64(b) & 0x7F) << shift
  12233. if b < 0x80 {
  12234. break
  12235. }
  12236. }
  12237. fieldNum := int32(wire >> 3)
  12238. wireType := int(wire & 0x7)
  12239. if wireType == 4 {
  12240. return fmt.Errorf("proto: ResponseBeginBlock: wiretype end group for non-group")
  12241. }
  12242. if fieldNum <= 0 {
  12243. return fmt.Errorf("proto: ResponseBeginBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  12244. }
  12245. switch fieldNum {
  12246. case 1:
  12247. if wireType != 2 {
  12248. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  12249. }
  12250. var msglen int
  12251. for shift := uint(0); ; shift += 7 {
  12252. if shift >= 64 {
  12253. return ErrIntOverflowTypes
  12254. }
  12255. if iNdEx >= l {
  12256. return io.ErrUnexpectedEOF
  12257. }
  12258. b := dAtA[iNdEx]
  12259. iNdEx++
  12260. msglen |= (int(b) & 0x7F) << shift
  12261. if b < 0x80 {
  12262. break
  12263. }
  12264. }
  12265. if msglen < 0 {
  12266. return ErrInvalidLengthTypes
  12267. }
  12268. postIndex := iNdEx + msglen
  12269. if postIndex > l {
  12270. return io.ErrUnexpectedEOF
  12271. }
  12272. m.Events = append(m.Events, Event{})
  12273. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12274. return err
  12275. }
  12276. iNdEx = postIndex
  12277. default:
  12278. iNdEx = preIndex
  12279. skippy, err := skipTypes(dAtA[iNdEx:])
  12280. if err != nil {
  12281. return err
  12282. }
  12283. if skippy < 0 {
  12284. return ErrInvalidLengthTypes
  12285. }
  12286. if (iNdEx + skippy) > l {
  12287. return io.ErrUnexpectedEOF
  12288. }
  12289. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12290. iNdEx += skippy
  12291. }
  12292. }
  12293. if iNdEx > l {
  12294. return io.ErrUnexpectedEOF
  12295. }
  12296. return nil
  12297. }
  12298. func (m *ResponseCheckTx) Unmarshal(dAtA []byte) error {
  12299. l := len(dAtA)
  12300. iNdEx := 0
  12301. for iNdEx < l {
  12302. preIndex := iNdEx
  12303. var wire uint64
  12304. for shift := uint(0); ; shift += 7 {
  12305. if shift >= 64 {
  12306. return ErrIntOverflowTypes
  12307. }
  12308. if iNdEx >= l {
  12309. return io.ErrUnexpectedEOF
  12310. }
  12311. b := dAtA[iNdEx]
  12312. iNdEx++
  12313. wire |= (uint64(b) & 0x7F) << shift
  12314. if b < 0x80 {
  12315. break
  12316. }
  12317. }
  12318. fieldNum := int32(wire >> 3)
  12319. wireType := int(wire & 0x7)
  12320. if wireType == 4 {
  12321. return fmt.Errorf("proto: ResponseCheckTx: wiretype end group for non-group")
  12322. }
  12323. if fieldNum <= 0 {
  12324. return fmt.Errorf("proto: ResponseCheckTx: illegal tag %d (wire type %d)", fieldNum, wire)
  12325. }
  12326. switch fieldNum {
  12327. case 1:
  12328. if wireType != 0 {
  12329. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  12330. }
  12331. m.Code = 0
  12332. for shift := uint(0); ; shift += 7 {
  12333. if shift >= 64 {
  12334. return ErrIntOverflowTypes
  12335. }
  12336. if iNdEx >= l {
  12337. return io.ErrUnexpectedEOF
  12338. }
  12339. b := dAtA[iNdEx]
  12340. iNdEx++
  12341. m.Code |= (uint32(b) & 0x7F) << shift
  12342. if b < 0x80 {
  12343. break
  12344. }
  12345. }
  12346. case 2:
  12347. if wireType != 2 {
  12348. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  12349. }
  12350. var byteLen int
  12351. for shift := uint(0); ; shift += 7 {
  12352. if shift >= 64 {
  12353. return ErrIntOverflowTypes
  12354. }
  12355. if iNdEx >= l {
  12356. return io.ErrUnexpectedEOF
  12357. }
  12358. b := dAtA[iNdEx]
  12359. iNdEx++
  12360. byteLen |= (int(b) & 0x7F) << shift
  12361. if b < 0x80 {
  12362. break
  12363. }
  12364. }
  12365. if byteLen < 0 {
  12366. return ErrInvalidLengthTypes
  12367. }
  12368. postIndex := iNdEx + byteLen
  12369. if postIndex > l {
  12370. return io.ErrUnexpectedEOF
  12371. }
  12372. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  12373. if m.Data == nil {
  12374. m.Data = []byte{}
  12375. }
  12376. iNdEx = postIndex
  12377. case 3:
  12378. if wireType != 2 {
  12379. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  12380. }
  12381. var stringLen uint64
  12382. for shift := uint(0); ; shift += 7 {
  12383. if shift >= 64 {
  12384. return ErrIntOverflowTypes
  12385. }
  12386. if iNdEx >= l {
  12387. return io.ErrUnexpectedEOF
  12388. }
  12389. b := dAtA[iNdEx]
  12390. iNdEx++
  12391. stringLen |= (uint64(b) & 0x7F) << shift
  12392. if b < 0x80 {
  12393. break
  12394. }
  12395. }
  12396. intStringLen := int(stringLen)
  12397. if intStringLen < 0 {
  12398. return ErrInvalidLengthTypes
  12399. }
  12400. postIndex := iNdEx + intStringLen
  12401. if postIndex > l {
  12402. return io.ErrUnexpectedEOF
  12403. }
  12404. m.Log = string(dAtA[iNdEx:postIndex])
  12405. iNdEx = postIndex
  12406. case 4:
  12407. if wireType != 2 {
  12408. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  12409. }
  12410. var stringLen uint64
  12411. for shift := uint(0); ; shift += 7 {
  12412. if shift >= 64 {
  12413. return ErrIntOverflowTypes
  12414. }
  12415. if iNdEx >= l {
  12416. return io.ErrUnexpectedEOF
  12417. }
  12418. b := dAtA[iNdEx]
  12419. iNdEx++
  12420. stringLen |= (uint64(b) & 0x7F) << shift
  12421. if b < 0x80 {
  12422. break
  12423. }
  12424. }
  12425. intStringLen := int(stringLen)
  12426. if intStringLen < 0 {
  12427. return ErrInvalidLengthTypes
  12428. }
  12429. postIndex := iNdEx + intStringLen
  12430. if postIndex > l {
  12431. return io.ErrUnexpectedEOF
  12432. }
  12433. m.Info = string(dAtA[iNdEx:postIndex])
  12434. iNdEx = postIndex
  12435. case 5:
  12436. if wireType != 0 {
  12437. return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType)
  12438. }
  12439. m.GasWanted = 0
  12440. for shift := uint(0); ; shift += 7 {
  12441. if shift >= 64 {
  12442. return ErrIntOverflowTypes
  12443. }
  12444. if iNdEx >= l {
  12445. return io.ErrUnexpectedEOF
  12446. }
  12447. b := dAtA[iNdEx]
  12448. iNdEx++
  12449. m.GasWanted |= (int64(b) & 0x7F) << shift
  12450. if b < 0x80 {
  12451. break
  12452. }
  12453. }
  12454. case 6:
  12455. if wireType != 0 {
  12456. return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType)
  12457. }
  12458. m.GasUsed = 0
  12459. for shift := uint(0); ; shift += 7 {
  12460. if shift >= 64 {
  12461. return ErrIntOverflowTypes
  12462. }
  12463. if iNdEx >= l {
  12464. return io.ErrUnexpectedEOF
  12465. }
  12466. b := dAtA[iNdEx]
  12467. iNdEx++
  12468. m.GasUsed |= (int64(b) & 0x7F) << shift
  12469. if b < 0x80 {
  12470. break
  12471. }
  12472. }
  12473. case 7:
  12474. if wireType != 2 {
  12475. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  12476. }
  12477. var msglen int
  12478. for shift := uint(0); ; shift += 7 {
  12479. if shift >= 64 {
  12480. return ErrIntOverflowTypes
  12481. }
  12482. if iNdEx >= l {
  12483. return io.ErrUnexpectedEOF
  12484. }
  12485. b := dAtA[iNdEx]
  12486. iNdEx++
  12487. msglen |= (int(b) & 0x7F) << shift
  12488. if b < 0x80 {
  12489. break
  12490. }
  12491. }
  12492. if msglen < 0 {
  12493. return ErrInvalidLengthTypes
  12494. }
  12495. postIndex := iNdEx + msglen
  12496. if postIndex > l {
  12497. return io.ErrUnexpectedEOF
  12498. }
  12499. m.Events = append(m.Events, Event{})
  12500. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12501. return err
  12502. }
  12503. iNdEx = postIndex
  12504. case 8:
  12505. if wireType != 2 {
  12506. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  12507. }
  12508. var stringLen uint64
  12509. for shift := uint(0); ; shift += 7 {
  12510. if shift >= 64 {
  12511. return ErrIntOverflowTypes
  12512. }
  12513. if iNdEx >= l {
  12514. return io.ErrUnexpectedEOF
  12515. }
  12516. b := dAtA[iNdEx]
  12517. iNdEx++
  12518. stringLen |= (uint64(b) & 0x7F) << shift
  12519. if b < 0x80 {
  12520. break
  12521. }
  12522. }
  12523. intStringLen := int(stringLen)
  12524. if intStringLen < 0 {
  12525. return ErrInvalidLengthTypes
  12526. }
  12527. postIndex := iNdEx + intStringLen
  12528. if postIndex > l {
  12529. return io.ErrUnexpectedEOF
  12530. }
  12531. m.Codespace = string(dAtA[iNdEx:postIndex])
  12532. iNdEx = postIndex
  12533. default:
  12534. iNdEx = preIndex
  12535. skippy, err := skipTypes(dAtA[iNdEx:])
  12536. if err != nil {
  12537. return err
  12538. }
  12539. if skippy < 0 {
  12540. return ErrInvalidLengthTypes
  12541. }
  12542. if (iNdEx + skippy) > l {
  12543. return io.ErrUnexpectedEOF
  12544. }
  12545. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12546. iNdEx += skippy
  12547. }
  12548. }
  12549. if iNdEx > l {
  12550. return io.ErrUnexpectedEOF
  12551. }
  12552. return nil
  12553. }
  12554. func (m *ResponseDeliverTx) Unmarshal(dAtA []byte) error {
  12555. l := len(dAtA)
  12556. iNdEx := 0
  12557. for iNdEx < l {
  12558. preIndex := iNdEx
  12559. var wire uint64
  12560. for shift := uint(0); ; shift += 7 {
  12561. if shift >= 64 {
  12562. return ErrIntOverflowTypes
  12563. }
  12564. if iNdEx >= l {
  12565. return io.ErrUnexpectedEOF
  12566. }
  12567. b := dAtA[iNdEx]
  12568. iNdEx++
  12569. wire |= (uint64(b) & 0x7F) << shift
  12570. if b < 0x80 {
  12571. break
  12572. }
  12573. }
  12574. fieldNum := int32(wire >> 3)
  12575. wireType := int(wire & 0x7)
  12576. if wireType == 4 {
  12577. return fmt.Errorf("proto: ResponseDeliverTx: wiretype end group for non-group")
  12578. }
  12579. if fieldNum <= 0 {
  12580. return fmt.Errorf("proto: ResponseDeliverTx: illegal tag %d (wire type %d)", fieldNum, wire)
  12581. }
  12582. switch fieldNum {
  12583. case 1:
  12584. if wireType != 0 {
  12585. return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
  12586. }
  12587. m.Code = 0
  12588. for shift := uint(0); ; shift += 7 {
  12589. if shift >= 64 {
  12590. return ErrIntOverflowTypes
  12591. }
  12592. if iNdEx >= l {
  12593. return io.ErrUnexpectedEOF
  12594. }
  12595. b := dAtA[iNdEx]
  12596. iNdEx++
  12597. m.Code |= (uint32(b) & 0x7F) << shift
  12598. if b < 0x80 {
  12599. break
  12600. }
  12601. }
  12602. case 2:
  12603. if wireType != 2 {
  12604. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  12605. }
  12606. var byteLen int
  12607. for shift := uint(0); ; shift += 7 {
  12608. if shift >= 64 {
  12609. return ErrIntOverflowTypes
  12610. }
  12611. if iNdEx >= l {
  12612. return io.ErrUnexpectedEOF
  12613. }
  12614. b := dAtA[iNdEx]
  12615. iNdEx++
  12616. byteLen |= (int(b) & 0x7F) << shift
  12617. if b < 0x80 {
  12618. break
  12619. }
  12620. }
  12621. if byteLen < 0 {
  12622. return ErrInvalidLengthTypes
  12623. }
  12624. postIndex := iNdEx + byteLen
  12625. if postIndex > l {
  12626. return io.ErrUnexpectedEOF
  12627. }
  12628. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  12629. if m.Data == nil {
  12630. m.Data = []byte{}
  12631. }
  12632. iNdEx = postIndex
  12633. case 3:
  12634. if wireType != 2 {
  12635. return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType)
  12636. }
  12637. var stringLen uint64
  12638. for shift := uint(0); ; shift += 7 {
  12639. if shift >= 64 {
  12640. return ErrIntOverflowTypes
  12641. }
  12642. if iNdEx >= l {
  12643. return io.ErrUnexpectedEOF
  12644. }
  12645. b := dAtA[iNdEx]
  12646. iNdEx++
  12647. stringLen |= (uint64(b) & 0x7F) << shift
  12648. if b < 0x80 {
  12649. break
  12650. }
  12651. }
  12652. intStringLen := int(stringLen)
  12653. if intStringLen < 0 {
  12654. return ErrInvalidLengthTypes
  12655. }
  12656. postIndex := iNdEx + intStringLen
  12657. if postIndex > l {
  12658. return io.ErrUnexpectedEOF
  12659. }
  12660. m.Log = string(dAtA[iNdEx:postIndex])
  12661. iNdEx = postIndex
  12662. case 4:
  12663. if wireType != 2 {
  12664. return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
  12665. }
  12666. var stringLen uint64
  12667. for shift := uint(0); ; shift += 7 {
  12668. if shift >= 64 {
  12669. return ErrIntOverflowTypes
  12670. }
  12671. if iNdEx >= l {
  12672. return io.ErrUnexpectedEOF
  12673. }
  12674. b := dAtA[iNdEx]
  12675. iNdEx++
  12676. stringLen |= (uint64(b) & 0x7F) << shift
  12677. if b < 0x80 {
  12678. break
  12679. }
  12680. }
  12681. intStringLen := int(stringLen)
  12682. if intStringLen < 0 {
  12683. return ErrInvalidLengthTypes
  12684. }
  12685. postIndex := iNdEx + intStringLen
  12686. if postIndex > l {
  12687. return io.ErrUnexpectedEOF
  12688. }
  12689. m.Info = string(dAtA[iNdEx:postIndex])
  12690. iNdEx = postIndex
  12691. case 5:
  12692. if wireType != 0 {
  12693. return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType)
  12694. }
  12695. m.GasWanted = 0
  12696. for shift := uint(0); ; shift += 7 {
  12697. if shift >= 64 {
  12698. return ErrIntOverflowTypes
  12699. }
  12700. if iNdEx >= l {
  12701. return io.ErrUnexpectedEOF
  12702. }
  12703. b := dAtA[iNdEx]
  12704. iNdEx++
  12705. m.GasWanted |= (int64(b) & 0x7F) << shift
  12706. if b < 0x80 {
  12707. break
  12708. }
  12709. }
  12710. case 6:
  12711. if wireType != 0 {
  12712. return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType)
  12713. }
  12714. m.GasUsed = 0
  12715. for shift := uint(0); ; shift += 7 {
  12716. if shift >= 64 {
  12717. return ErrIntOverflowTypes
  12718. }
  12719. if iNdEx >= l {
  12720. return io.ErrUnexpectedEOF
  12721. }
  12722. b := dAtA[iNdEx]
  12723. iNdEx++
  12724. m.GasUsed |= (int64(b) & 0x7F) << shift
  12725. if b < 0x80 {
  12726. break
  12727. }
  12728. }
  12729. case 7:
  12730. if wireType != 2 {
  12731. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  12732. }
  12733. var msglen int
  12734. for shift := uint(0); ; shift += 7 {
  12735. if shift >= 64 {
  12736. return ErrIntOverflowTypes
  12737. }
  12738. if iNdEx >= l {
  12739. return io.ErrUnexpectedEOF
  12740. }
  12741. b := dAtA[iNdEx]
  12742. iNdEx++
  12743. msglen |= (int(b) & 0x7F) << shift
  12744. if b < 0x80 {
  12745. break
  12746. }
  12747. }
  12748. if msglen < 0 {
  12749. return ErrInvalidLengthTypes
  12750. }
  12751. postIndex := iNdEx + msglen
  12752. if postIndex > l {
  12753. return io.ErrUnexpectedEOF
  12754. }
  12755. m.Events = append(m.Events, Event{})
  12756. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12757. return err
  12758. }
  12759. iNdEx = postIndex
  12760. case 8:
  12761. if wireType != 2 {
  12762. return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType)
  12763. }
  12764. var stringLen uint64
  12765. for shift := uint(0); ; shift += 7 {
  12766. if shift >= 64 {
  12767. return ErrIntOverflowTypes
  12768. }
  12769. if iNdEx >= l {
  12770. return io.ErrUnexpectedEOF
  12771. }
  12772. b := dAtA[iNdEx]
  12773. iNdEx++
  12774. stringLen |= (uint64(b) & 0x7F) << shift
  12775. if b < 0x80 {
  12776. break
  12777. }
  12778. }
  12779. intStringLen := int(stringLen)
  12780. if intStringLen < 0 {
  12781. return ErrInvalidLengthTypes
  12782. }
  12783. postIndex := iNdEx + intStringLen
  12784. if postIndex > l {
  12785. return io.ErrUnexpectedEOF
  12786. }
  12787. m.Codespace = string(dAtA[iNdEx:postIndex])
  12788. iNdEx = postIndex
  12789. default:
  12790. iNdEx = preIndex
  12791. skippy, err := skipTypes(dAtA[iNdEx:])
  12792. if err != nil {
  12793. return err
  12794. }
  12795. if skippy < 0 {
  12796. return ErrInvalidLengthTypes
  12797. }
  12798. if (iNdEx + skippy) > l {
  12799. return io.ErrUnexpectedEOF
  12800. }
  12801. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12802. iNdEx += skippy
  12803. }
  12804. }
  12805. if iNdEx > l {
  12806. return io.ErrUnexpectedEOF
  12807. }
  12808. return nil
  12809. }
  12810. func (m *ResponseEndBlock) Unmarshal(dAtA []byte) error {
  12811. l := len(dAtA)
  12812. iNdEx := 0
  12813. for iNdEx < l {
  12814. preIndex := iNdEx
  12815. var wire uint64
  12816. for shift := uint(0); ; shift += 7 {
  12817. if shift >= 64 {
  12818. return ErrIntOverflowTypes
  12819. }
  12820. if iNdEx >= l {
  12821. return io.ErrUnexpectedEOF
  12822. }
  12823. b := dAtA[iNdEx]
  12824. iNdEx++
  12825. wire |= (uint64(b) & 0x7F) << shift
  12826. if b < 0x80 {
  12827. break
  12828. }
  12829. }
  12830. fieldNum := int32(wire >> 3)
  12831. wireType := int(wire & 0x7)
  12832. if wireType == 4 {
  12833. return fmt.Errorf("proto: ResponseEndBlock: wiretype end group for non-group")
  12834. }
  12835. if fieldNum <= 0 {
  12836. return fmt.Errorf("proto: ResponseEndBlock: illegal tag %d (wire type %d)", fieldNum, wire)
  12837. }
  12838. switch fieldNum {
  12839. case 1:
  12840. if wireType != 2 {
  12841. return fmt.Errorf("proto: wrong wireType = %d for field ValidatorUpdates", wireType)
  12842. }
  12843. var msglen int
  12844. for shift := uint(0); ; shift += 7 {
  12845. if shift >= 64 {
  12846. return ErrIntOverflowTypes
  12847. }
  12848. if iNdEx >= l {
  12849. return io.ErrUnexpectedEOF
  12850. }
  12851. b := dAtA[iNdEx]
  12852. iNdEx++
  12853. msglen |= (int(b) & 0x7F) << shift
  12854. if b < 0x80 {
  12855. break
  12856. }
  12857. }
  12858. if msglen < 0 {
  12859. return ErrInvalidLengthTypes
  12860. }
  12861. postIndex := iNdEx + msglen
  12862. if postIndex > l {
  12863. return io.ErrUnexpectedEOF
  12864. }
  12865. m.ValidatorUpdates = append(m.ValidatorUpdates, ValidatorUpdate{})
  12866. if err := m.ValidatorUpdates[len(m.ValidatorUpdates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12867. return err
  12868. }
  12869. iNdEx = postIndex
  12870. case 2:
  12871. if wireType != 2 {
  12872. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParamUpdates", wireType)
  12873. }
  12874. var msglen int
  12875. for shift := uint(0); ; shift += 7 {
  12876. if shift >= 64 {
  12877. return ErrIntOverflowTypes
  12878. }
  12879. if iNdEx >= l {
  12880. return io.ErrUnexpectedEOF
  12881. }
  12882. b := dAtA[iNdEx]
  12883. iNdEx++
  12884. msglen |= (int(b) & 0x7F) << shift
  12885. if b < 0x80 {
  12886. break
  12887. }
  12888. }
  12889. if msglen < 0 {
  12890. return ErrInvalidLengthTypes
  12891. }
  12892. postIndex := iNdEx + msglen
  12893. if postIndex > l {
  12894. return io.ErrUnexpectedEOF
  12895. }
  12896. if m.ConsensusParamUpdates == nil {
  12897. m.ConsensusParamUpdates = &ConsensusParams{}
  12898. }
  12899. if err := m.ConsensusParamUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12900. return err
  12901. }
  12902. iNdEx = postIndex
  12903. case 3:
  12904. if wireType != 2 {
  12905. return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
  12906. }
  12907. var msglen int
  12908. for shift := uint(0); ; shift += 7 {
  12909. if shift >= 64 {
  12910. return ErrIntOverflowTypes
  12911. }
  12912. if iNdEx >= l {
  12913. return io.ErrUnexpectedEOF
  12914. }
  12915. b := dAtA[iNdEx]
  12916. iNdEx++
  12917. msglen |= (int(b) & 0x7F) << shift
  12918. if b < 0x80 {
  12919. break
  12920. }
  12921. }
  12922. if msglen < 0 {
  12923. return ErrInvalidLengthTypes
  12924. }
  12925. postIndex := iNdEx + msglen
  12926. if postIndex > l {
  12927. return io.ErrUnexpectedEOF
  12928. }
  12929. m.Events = append(m.Events, Event{})
  12930. if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  12931. return err
  12932. }
  12933. iNdEx = postIndex
  12934. default:
  12935. iNdEx = preIndex
  12936. skippy, err := skipTypes(dAtA[iNdEx:])
  12937. if err != nil {
  12938. return err
  12939. }
  12940. if skippy < 0 {
  12941. return ErrInvalidLengthTypes
  12942. }
  12943. if (iNdEx + skippy) > l {
  12944. return io.ErrUnexpectedEOF
  12945. }
  12946. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  12947. iNdEx += skippy
  12948. }
  12949. }
  12950. if iNdEx > l {
  12951. return io.ErrUnexpectedEOF
  12952. }
  12953. return nil
  12954. }
  12955. func (m *ResponseCommit) Unmarshal(dAtA []byte) error {
  12956. l := len(dAtA)
  12957. iNdEx := 0
  12958. for iNdEx < l {
  12959. preIndex := iNdEx
  12960. var wire uint64
  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. wire |= (uint64(b) & 0x7F) << shift
  12971. if b < 0x80 {
  12972. break
  12973. }
  12974. }
  12975. fieldNum := int32(wire >> 3)
  12976. wireType := int(wire & 0x7)
  12977. if wireType == 4 {
  12978. return fmt.Errorf("proto: ResponseCommit: wiretype end group for non-group")
  12979. }
  12980. if fieldNum <= 0 {
  12981. return fmt.Errorf("proto: ResponseCommit: illegal tag %d (wire type %d)", fieldNum, wire)
  12982. }
  12983. switch fieldNum {
  12984. case 2:
  12985. if wireType != 2 {
  12986. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  12987. }
  12988. var byteLen int
  12989. for shift := uint(0); ; shift += 7 {
  12990. if shift >= 64 {
  12991. return ErrIntOverflowTypes
  12992. }
  12993. if iNdEx >= l {
  12994. return io.ErrUnexpectedEOF
  12995. }
  12996. b := dAtA[iNdEx]
  12997. iNdEx++
  12998. byteLen |= (int(b) & 0x7F) << shift
  12999. if b < 0x80 {
  13000. break
  13001. }
  13002. }
  13003. if byteLen < 0 {
  13004. return ErrInvalidLengthTypes
  13005. }
  13006. postIndex := iNdEx + byteLen
  13007. if postIndex > l {
  13008. return io.ErrUnexpectedEOF
  13009. }
  13010. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  13011. if m.Data == nil {
  13012. m.Data = []byte{}
  13013. }
  13014. iNdEx = postIndex
  13015. default:
  13016. iNdEx = preIndex
  13017. skippy, err := skipTypes(dAtA[iNdEx:])
  13018. if err != nil {
  13019. return err
  13020. }
  13021. if skippy < 0 {
  13022. return ErrInvalidLengthTypes
  13023. }
  13024. if (iNdEx + skippy) > l {
  13025. return io.ErrUnexpectedEOF
  13026. }
  13027. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13028. iNdEx += skippy
  13029. }
  13030. }
  13031. if iNdEx > l {
  13032. return io.ErrUnexpectedEOF
  13033. }
  13034. return nil
  13035. }
  13036. func (m *ConsensusParams) Unmarshal(dAtA []byte) error {
  13037. l := len(dAtA)
  13038. iNdEx := 0
  13039. for iNdEx < l {
  13040. preIndex := iNdEx
  13041. var wire uint64
  13042. for shift := uint(0); ; shift += 7 {
  13043. if shift >= 64 {
  13044. return ErrIntOverflowTypes
  13045. }
  13046. if iNdEx >= l {
  13047. return io.ErrUnexpectedEOF
  13048. }
  13049. b := dAtA[iNdEx]
  13050. iNdEx++
  13051. wire |= (uint64(b) & 0x7F) << shift
  13052. if b < 0x80 {
  13053. break
  13054. }
  13055. }
  13056. fieldNum := int32(wire >> 3)
  13057. wireType := int(wire & 0x7)
  13058. if wireType == 4 {
  13059. return fmt.Errorf("proto: ConsensusParams: wiretype end group for non-group")
  13060. }
  13061. if fieldNum <= 0 {
  13062. return fmt.Errorf("proto: ConsensusParams: illegal tag %d (wire type %d)", fieldNum, wire)
  13063. }
  13064. switch fieldNum {
  13065. case 1:
  13066. if wireType != 2 {
  13067. return fmt.Errorf("proto: wrong wireType = %d for field Block", wireType)
  13068. }
  13069. var msglen int
  13070. for shift := uint(0); ; shift += 7 {
  13071. if shift >= 64 {
  13072. return ErrIntOverflowTypes
  13073. }
  13074. if iNdEx >= l {
  13075. return io.ErrUnexpectedEOF
  13076. }
  13077. b := dAtA[iNdEx]
  13078. iNdEx++
  13079. msglen |= (int(b) & 0x7F) << shift
  13080. if b < 0x80 {
  13081. break
  13082. }
  13083. }
  13084. if msglen < 0 {
  13085. return ErrInvalidLengthTypes
  13086. }
  13087. postIndex := iNdEx + msglen
  13088. if postIndex > l {
  13089. return io.ErrUnexpectedEOF
  13090. }
  13091. if m.Block == nil {
  13092. m.Block = &BlockParams{}
  13093. }
  13094. if err := m.Block.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13095. return err
  13096. }
  13097. iNdEx = postIndex
  13098. case 2:
  13099. if wireType != 2 {
  13100. return fmt.Errorf("proto: wrong wireType = %d for field Evidence", wireType)
  13101. }
  13102. var msglen int
  13103. for shift := uint(0); ; shift += 7 {
  13104. if shift >= 64 {
  13105. return ErrIntOverflowTypes
  13106. }
  13107. if iNdEx >= l {
  13108. return io.ErrUnexpectedEOF
  13109. }
  13110. b := dAtA[iNdEx]
  13111. iNdEx++
  13112. msglen |= (int(b) & 0x7F) << shift
  13113. if b < 0x80 {
  13114. break
  13115. }
  13116. }
  13117. if msglen < 0 {
  13118. return ErrInvalidLengthTypes
  13119. }
  13120. postIndex := iNdEx + msglen
  13121. if postIndex > l {
  13122. return io.ErrUnexpectedEOF
  13123. }
  13124. if m.Evidence == nil {
  13125. m.Evidence = &EvidenceParams{}
  13126. }
  13127. if err := m.Evidence.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13128. return err
  13129. }
  13130. iNdEx = postIndex
  13131. case 3:
  13132. if wireType != 2 {
  13133. return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType)
  13134. }
  13135. var msglen int
  13136. for shift := uint(0); ; shift += 7 {
  13137. if shift >= 64 {
  13138. return ErrIntOverflowTypes
  13139. }
  13140. if iNdEx >= l {
  13141. return io.ErrUnexpectedEOF
  13142. }
  13143. b := dAtA[iNdEx]
  13144. iNdEx++
  13145. msglen |= (int(b) & 0x7F) << shift
  13146. if b < 0x80 {
  13147. break
  13148. }
  13149. }
  13150. if msglen < 0 {
  13151. return ErrInvalidLengthTypes
  13152. }
  13153. postIndex := iNdEx + msglen
  13154. if postIndex > l {
  13155. return io.ErrUnexpectedEOF
  13156. }
  13157. if m.Validator == nil {
  13158. m.Validator = &ValidatorParams{}
  13159. }
  13160. if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13161. return err
  13162. }
  13163. iNdEx = postIndex
  13164. default:
  13165. iNdEx = preIndex
  13166. skippy, err := skipTypes(dAtA[iNdEx:])
  13167. if err != nil {
  13168. return err
  13169. }
  13170. if skippy < 0 {
  13171. return ErrInvalidLengthTypes
  13172. }
  13173. if (iNdEx + skippy) > l {
  13174. return io.ErrUnexpectedEOF
  13175. }
  13176. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13177. iNdEx += skippy
  13178. }
  13179. }
  13180. if iNdEx > l {
  13181. return io.ErrUnexpectedEOF
  13182. }
  13183. return nil
  13184. }
  13185. func (m *BlockParams) Unmarshal(dAtA []byte) error {
  13186. l := len(dAtA)
  13187. iNdEx := 0
  13188. for iNdEx < l {
  13189. preIndex := iNdEx
  13190. var wire uint64
  13191. for shift := uint(0); ; shift += 7 {
  13192. if shift >= 64 {
  13193. return ErrIntOverflowTypes
  13194. }
  13195. if iNdEx >= l {
  13196. return io.ErrUnexpectedEOF
  13197. }
  13198. b := dAtA[iNdEx]
  13199. iNdEx++
  13200. wire |= (uint64(b) & 0x7F) << shift
  13201. if b < 0x80 {
  13202. break
  13203. }
  13204. }
  13205. fieldNum := int32(wire >> 3)
  13206. wireType := int(wire & 0x7)
  13207. if wireType == 4 {
  13208. return fmt.Errorf("proto: BlockParams: wiretype end group for non-group")
  13209. }
  13210. if fieldNum <= 0 {
  13211. return fmt.Errorf("proto: BlockParams: illegal tag %d (wire type %d)", fieldNum, wire)
  13212. }
  13213. switch fieldNum {
  13214. case 1:
  13215. if wireType != 0 {
  13216. return fmt.Errorf("proto: wrong wireType = %d for field MaxBytes", wireType)
  13217. }
  13218. m.MaxBytes = 0
  13219. for shift := uint(0); ; shift += 7 {
  13220. if shift >= 64 {
  13221. return ErrIntOverflowTypes
  13222. }
  13223. if iNdEx >= l {
  13224. return io.ErrUnexpectedEOF
  13225. }
  13226. b := dAtA[iNdEx]
  13227. iNdEx++
  13228. m.MaxBytes |= (int64(b) & 0x7F) << shift
  13229. if b < 0x80 {
  13230. break
  13231. }
  13232. }
  13233. case 2:
  13234. if wireType != 0 {
  13235. return fmt.Errorf("proto: wrong wireType = %d for field MaxGas", wireType)
  13236. }
  13237. m.MaxGas = 0
  13238. for shift := uint(0); ; shift += 7 {
  13239. if shift >= 64 {
  13240. return ErrIntOverflowTypes
  13241. }
  13242. if iNdEx >= l {
  13243. return io.ErrUnexpectedEOF
  13244. }
  13245. b := dAtA[iNdEx]
  13246. iNdEx++
  13247. m.MaxGas |= (int64(b) & 0x7F) << shift
  13248. if b < 0x80 {
  13249. break
  13250. }
  13251. }
  13252. default:
  13253. iNdEx = preIndex
  13254. skippy, err := skipTypes(dAtA[iNdEx:])
  13255. if err != nil {
  13256. return err
  13257. }
  13258. if skippy < 0 {
  13259. return ErrInvalidLengthTypes
  13260. }
  13261. if (iNdEx + skippy) > l {
  13262. return io.ErrUnexpectedEOF
  13263. }
  13264. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13265. iNdEx += skippy
  13266. }
  13267. }
  13268. if iNdEx > l {
  13269. return io.ErrUnexpectedEOF
  13270. }
  13271. return nil
  13272. }
  13273. func (m *EvidenceParams) Unmarshal(dAtA []byte) error {
  13274. l := len(dAtA)
  13275. iNdEx := 0
  13276. for iNdEx < l {
  13277. preIndex := iNdEx
  13278. var wire uint64
  13279. for shift := uint(0); ; shift += 7 {
  13280. if shift >= 64 {
  13281. return ErrIntOverflowTypes
  13282. }
  13283. if iNdEx >= l {
  13284. return io.ErrUnexpectedEOF
  13285. }
  13286. b := dAtA[iNdEx]
  13287. iNdEx++
  13288. wire |= (uint64(b) & 0x7F) << shift
  13289. if b < 0x80 {
  13290. break
  13291. }
  13292. }
  13293. fieldNum := int32(wire >> 3)
  13294. wireType := int(wire & 0x7)
  13295. if wireType == 4 {
  13296. return fmt.Errorf("proto: EvidenceParams: wiretype end group for non-group")
  13297. }
  13298. if fieldNum <= 0 {
  13299. return fmt.Errorf("proto: EvidenceParams: illegal tag %d (wire type %d)", fieldNum, wire)
  13300. }
  13301. switch fieldNum {
  13302. case 1:
  13303. if wireType != 0 {
  13304. return fmt.Errorf("proto: wrong wireType = %d for field MaxAge", wireType)
  13305. }
  13306. m.MaxAge = 0
  13307. for shift := uint(0); ; shift += 7 {
  13308. if shift >= 64 {
  13309. return ErrIntOverflowTypes
  13310. }
  13311. if iNdEx >= l {
  13312. return io.ErrUnexpectedEOF
  13313. }
  13314. b := dAtA[iNdEx]
  13315. iNdEx++
  13316. m.MaxAge |= (int64(b) & 0x7F) << shift
  13317. if b < 0x80 {
  13318. break
  13319. }
  13320. }
  13321. default:
  13322. iNdEx = preIndex
  13323. skippy, err := skipTypes(dAtA[iNdEx:])
  13324. if err != nil {
  13325. return err
  13326. }
  13327. if skippy < 0 {
  13328. return ErrInvalidLengthTypes
  13329. }
  13330. if (iNdEx + skippy) > l {
  13331. return io.ErrUnexpectedEOF
  13332. }
  13333. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13334. iNdEx += skippy
  13335. }
  13336. }
  13337. if iNdEx > l {
  13338. return io.ErrUnexpectedEOF
  13339. }
  13340. return nil
  13341. }
  13342. func (m *ValidatorParams) Unmarshal(dAtA []byte) error {
  13343. l := len(dAtA)
  13344. iNdEx := 0
  13345. for iNdEx < l {
  13346. preIndex := iNdEx
  13347. var wire uint64
  13348. for shift := uint(0); ; shift += 7 {
  13349. if shift >= 64 {
  13350. return ErrIntOverflowTypes
  13351. }
  13352. if iNdEx >= l {
  13353. return io.ErrUnexpectedEOF
  13354. }
  13355. b := dAtA[iNdEx]
  13356. iNdEx++
  13357. wire |= (uint64(b) & 0x7F) << shift
  13358. if b < 0x80 {
  13359. break
  13360. }
  13361. }
  13362. fieldNum := int32(wire >> 3)
  13363. wireType := int(wire & 0x7)
  13364. if wireType == 4 {
  13365. return fmt.Errorf("proto: ValidatorParams: wiretype end group for non-group")
  13366. }
  13367. if fieldNum <= 0 {
  13368. return fmt.Errorf("proto: ValidatorParams: illegal tag %d (wire type %d)", fieldNum, wire)
  13369. }
  13370. switch fieldNum {
  13371. case 1:
  13372. if wireType != 2 {
  13373. return fmt.Errorf("proto: wrong wireType = %d for field PubKeyTypes", wireType)
  13374. }
  13375. var stringLen uint64
  13376. for shift := uint(0); ; shift += 7 {
  13377. if shift >= 64 {
  13378. return ErrIntOverflowTypes
  13379. }
  13380. if iNdEx >= l {
  13381. return io.ErrUnexpectedEOF
  13382. }
  13383. b := dAtA[iNdEx]
  13384. iNdEx++
  13385. stringLen |= (uint64(b) & 0x7F) << shift
  13386. if b < 0x80 {
  13387. break
  13388. }
  13389. }
  13390. intStringLen := int(stringLen)
  13391. if intStringLen < 0 {
  13392. return ErrInvalidLengthTypes
  13393. }
  13394. postIndex := iNdEx + intStringLen
  13395. if postIndex > l {
  13396. return io.ErrUnexpectedEOF
  13397. }
  13398. m.PubKeyTypes = append(m.PubKeyTypes, string(dAtA[iNdEx:postIndex]))
  13399. iNdEx = postIndex
  13400. default:
  13401. iNdEx = preIndex
  13402. skippy, err := skipTypes(dAtA[iNdEx:])
  13403. if err != nil {
  13404. return err
  13405. }
  13406. if skippy < 0 {
  13407. return ErrInvalidLengthTypes
  13408. }
  13409. if (iNdEx + skippy) > l {
  13410. return io.ErrUnexpectedEOF
  13411. }
  13412. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13413. iNdEx += skippy
  13414. }
  13415. }
  13416. if iNdEx > l {
  13417. return io.ErrUnexpectedEOF
  13418. }
  13419. return nil
  13420. }
  13421. func (m *LastCommitInfo) Unmarshal(dAtA []byte) error {
  13422. l := len(dAtA)
  13423. iNdEx := 0
  13424. for iNdEx < l {
  13425. preIndex := iNdEx
  13426. var wire uint64
  13427. for shift := uint(0); ; shift += 7 {
  13428. if shift >= 64 {
  13429. return ErrIntOverflowTypes
  13430. }
  13431. if iNdEx >= l {
  13432. return io.ErrUnexpectedEOF
  13433. }
  13434. b := dAtA[iNdEx]
  13435. iNdEx++
  13436. wire |= (uint64(b) & 0x7F) << shift
  13437. if b < 0x80 {
  13438. break
  13439. }
  13440. }
  13441. fieldNum := int32(wire >> 3)
  13442. wireType := int(wire & 0x7)
  13443. if wireType == 4 {
  13444. return fmt.Errorf("proto: LastCommitInfo: wiretype end group for non-group")
  13445. }
  13446. if fieldNum <= 0 {
  13447. return fmt.Errorf("proto: LastCommitInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  13448. }
  13449. switch fieldNum {
  13450. case 1:
  13451. if wireType != 0 {
  13452. return fmt.Errorf("proto: wrong wireType = %d for field Round", wireType)
  13453. }
  13454. m.Round = 0
  13455. for shift := uint(0); ; shift += 7 {
  13456. if shift >= 64 {
  13457. return ErrIntOverflowTypes
  13458. }
  13459. if iNdEx >= l {
  13460. return io.ErrUnexpectedEOF
  13461. }
  13462. b := dAtA[iNdEx]
  13463. iNdEx++
  13464. m.Round |= (int32(b) & 0x7F) << shift
  13465. if b < 0x80 {
  13466. break
  13467. }
  13468. }
  13469. case 2:
  13470. if wireType != 2 {
  13471. return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType)
  13472. }
  13473. var msglen int
  13474. for shift := uint(0); ; shift += 7 {
  13475. if shift >= 64 {
  13476. return ErrIntOverflowTypes
  13477. }
  13478. if iNdEx >= l {
  13479. return io.ErrUnexpectedEOF
  13480. }
  13481. b := dAtA[iNdEx]
  13482. iNdEx++
  13483. msglen |= (int(b) & 0x7F) << shift
  13484. if b < 0x80 {
  13485. break
  13486. }
  13487. }
  13488. if msglen < 0 {
  13489. return ErrInvalidLengthTypes
  13490. }
  13491. postIndex := iNdEx + msglen
  13492. if postIndex > l {
  13493. return io.ErrUnexpectedEOF
  13494. }
  13495. m.Votes = append(m.Votes, VoteInfo{})
  13496. if err := m.Votes[len(m.Votes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13497. return err
  13498. }
  13499. iNdEx = postIndex
  13500. default:
  13501. iNdEx = preIndex
  13502. skippy, err := skipTypes(dAtA[iNdEx:])
  13503. if err != nil {
  13504. return err
  13505. }
  13506. if skippy < 0 {
  13507. return ErrInvalidLengthTypes
  13508. }
  13509. if (iNdEx + skippy) > l {
  13510. return io.ErrUnexpectedEOF
  13511. }
  13512. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13513. iNdEx += skippy
  13514. }
  13515. }
  13516. if iNdEx > l {
  13517. return io.ErrUnexpectedEOF
  13518. }
  13519. return nil
  13520. }
  13521. func (m *Event) Unmarshal(dAtA []byte) error {
  13522. l := len(dAtA)
  13523. iNdEx := 0
  13524. for iNdEx < l {
  13525. preIndex := iNdEx
  13526. var wire uint64
  13527. for shift := uint(0); ; shift += 7 {
  13528. if shift >= 64 {
  13529. return ErrIntOverflowTypes
  13530. }
  13531. if iNdEx >= l {
  13532. return io.ErrUnexpectedEOF
  13533. }
  13534. b := dAtA[iNdEx]
  13535. iNdEx++
  13536. wire |= (uint64(b) & 0x7F) << shift
  13537. if b < 0x80 {
  13538. break
  13539. }
  13540. }
  13541. fieldNum := int32(wire >> 3)
  13542. wireType := int(wire & 0x7)
  13543. if wireType == 4 {
  13544. return fmt.Errorf("proto: Event: wiretype end group for non-group")
  13545. }
  13546. if fieldNum <= 0 {
  13547. return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire)
  13548. }
  13549. switch fieldNum {
  13550. case 1:
  13551. if wireType != 2 {
  13552. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  13553. }
  13554. var stringLen uint64
  13555. for shift := uint(0); ; shift += 7 {
  13556. if shift >= 64 {
  13557. return ErrIntOverflowTypes
  13558. }
  13559. if iNdEx >= l {
  13560. return io.ErrUnexpectedEOF
  13561. }
  13562. b := dAtA[iNdEx]
  13563. iNdEx++
  13564. stringLen |= (uint64(b) & 0x7F) << shift
  13565. if b < 0x80 {
  13566. break
  13567. }
  13568. }
  13569. intStringLen := int(stringLen)
  13570. if intStringLen < 0 {
  13571. return ErrInvalidLengthTypes
  13572. }
  13573. postIndex := iNdEx + intStringLen
  13574. if postIndex > l {
  13575. return io.ErrUnexpectedEOF
  13576. }
  13577. m.Type = string(dAtA[iNdEx:postIndex])
  13578. iNdEx = postIndex
  13579. case 2:
  13580. if wireType != 2 {
  13581. return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType)
  13582. }
  13583. var msglen int
  13584. for shift := uint(0); ; shift += 7 {
  13585. if shift >= 64 {
  13586. return ErrIntOverflowTypes
  13587. }
  13588. if iNdEx >= l {
  13589. return io.ErrUnexpectedEOF
  13590. }
  13591. b := dAtA[iNdEx]
  13592. iNdEx++
  13593. msglen |= (int(b) & 0x7F) << shift
  13594. if b < 0x80 {
  13595. break
  13596. }
  13597. }
  13598. if msglen < 0 {
  13599. return ErrInvalidLengthTypes
  13600. }
  13601. postIndex := iNdEx + msglen
  13602. if postIndex > l {
  13603. return io.ErrUnexpectedEOF
  13604. }
  13605. m.Attributes = append(m.Attributes, common.KVPair{})
  13606. if err := m.Attributes[len(m.Attributes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13607. return err
  13608. }
  13609. iNdEx = postIndex
  13610. default:
  13611. iNdEx = preIndex
  13612. skippy, err := skipTypes(dAtA[iNdEx:])
  13613. if err != nil {
  13614. return err
  13615. }
  13616. if skippy < 0 {
  13617. return ErrInvalidLengthTypes
  13618. }
  13619. if (iNdEx + skippy) > l {
  13620. return io.ErrUnexpectedEOF
  13621. }
  13622. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  13623. iNdEx += skippy
  13624. }
  13625. }
  13626. if iNdEx > l {
  13627. return io.ErrUnexpectedEOF
  13628. }
  13629. return nil
  13630. }
  13631. func (m *Header) Unmarshal(dAtA []byte) error {
  13632. l := len(dAtA)
  13633. iNdEx := 0
  13634. for iNdEx < l {
  13635. preIndex := iNdEx
  13636. var wire uint64
  13637. for shift := uint(0); ; shift += 7 {
  13638. if shift >= 64 {
  13639. return ErrIntOverflowTypes
  13640. }
  13641. if iNdEx >= l {
  13642. return io.ErrUnexpectedEOF
  13643. }
  13644. b := dAtA[iNdEx]
  13645. iNdEx++
  13646. wire |= (uint64(b) & 0x7F) << shift
  13647. if b < 0x80 {
  13648. break
  13649. }
  13650. }
  13651. fieldNum := int32(wire >> 3)
  13652. wireType := int(wire & 0x7)
  13653. if wireType == 4 {
  13654. return fmt.Errorf("proto: Header: wiretype end group for non-group")
  13655. }
  13656. if fieldNum <= 0 {
  13657. return fmt.Errorf("proto: Header: illegal tag %d (wire type %d)", fieldNum, wire)
  13658. }
  13659. switch fieldNum {
  13660. case 1:
  13661. if wireType != 2 {
  13662. return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
  13663. }
  13664. var msglen int
  13665. for shift := uint(0); ; shift += 7 {
  13666. if shift >= 64 {
  13667. return ErrIntOverflowTypes
  13668. }
  13669. if iNdEx >= l {
  13670. return io.ErrUnexpectedEOF
  13671. }
  13672. b := dAtA[iNdEx]
  13673. iNdEx++
  13674. msglen |= (int(b) & 0x7F) << shift
  13675. if b < 0x80 {
  13676. break
  13677. }
  13678. }
  13679. if msglen < 0 {
  13680. return ErrInvalidLengthTypes
  13681. }
  13682. postIndex := iNdEx + msglen
  13683. if postIndex > l {
  13684. return io.ErrUnexpectedEOF
  13685. }
  13686. if err := m.Version.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13687. return err
  13688. }
  13689. iNdEx = postIndex
  13690. case 2:
  13691. if wireType != 2 {
  13692. return fmt.Errorf("proto: wrong wireType = %d for field ChainID", wireType)
  13693. }
  13694. var stringLen uint64
  13695. for shift := uint(0); ; shift += 7 {
  13696. if shift >= 64 {
  13697. return ErrIntOverflowTypes
  13698. }
  13699. if iNdEx >= l {
  13700. return io.ErrUnexpectedEOF
  13701. }
  13702. b := dAtA[iNdEx]
  13703. iNdEx++
  13704. stringLen |= (uint64(b) & 0x7F) << shift
  13705. if b < 0x80 {
  13706. break
  13707. }
  13708. }
  13709. intStringLen := int(stringLen)
  13710. if intStringLen < 0 {
  13711. return ErrInvalidLengthTypes
  13712. }
  13713. postIndex := iNdEx + intStringLen
  13714. if postIndex > l {
  13715. return io.ErrUnexpectedEOF
  13716. }
  13717. m.ChainID = string(dAtA[iNdEx:postIndex])
  13718. iNdEx = postIndex
  13719. case 3:
  13720. if wireType != 0 {
  13721. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  13722. }
  13723. m.Height = 0
  13724. for shift := uint(0); ; shift += 7 {
  13725. if shift >= 64 {
  13726. return ErrIntOverflowTypes
  13727. }
  13728. if iNdEx >= l {
  13729. return io.ErrUnexpectedEOF
  13730. }
  13731. b := dAtA[iNdEx]
  13732. iNdEx++
  13733. m.Height |= (int64(b) & 0x7F) << shift
  13734. if b < 0x80 {
  13735. break
  13736. }
  13737. }
  13738. case 4:
  13739. if wireType != 2 {
  13740. return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
  13741. }
  13742. var msglen int
  13743. for shift := uint(0); ; shift += 7 {
  13744. if shift >= 64 {
  13745. return ErrIntOverflowTypes
  13746. }
  13747. if iNdEx >= l {
  13748. return io.ErrUnexpectedEOF
  13749. }
  13750. b := dAtA[iNdEx]
  13751. iNdEx++
  13752. msglen |= (int(b) & 0x7F) << shift
  13753. if b < 0x80 {
  13754. break
  13755. }
  13756. }
  13757. if msglen < 0 {
  13758. return ErrInvalidLengthTypes
  13759. }
  13760. postIndex := iNdEx + msglen
  13761. if postIndex > l {
  13762. return io.ErrUnexpectedEOF
  13763. }
  13764. if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil {
  13765. return err
  13766. }
  13767. iNdEx = postIndex
  13768. case 5:
  13769. if wireType != 0 {
  13770. return fmt.Errorf("proto: wrong wireType = %d for field NumTxs", wireType)
  13771. }
  13772. m.NumTxs = 0
  13773. for shift := uint(0); ; shift += 7 {
  13774. if shift >= 64 {
  13775. return ErrIntOverflowTypes
  13776. }
  13777. if iNdEx >= l {
  13778. return io.ErrUnexpectedEOF
  13779. }
  13780. b := dAtA[iNdEx]
  13781. iNdEx++
  13782. m.NumTxs |= (int64(b) & 0x7F) << shift
  13783. if b < 0x80 {
  13784. break
  13785. }
  13786. }
  13787. case 6:
  13788. if wireType != 0 {
  13789. return fmt.Errorf("proto: wrong wireType = %d for field TotalTxs", wireType)
  13790. }
  13791. m.TotalTxs = 0
  13792. for shift := uint(0); ; shift += 7 {
  13793. if shift >= 64 {
  13794. return ErrIntOverflowTypes
  13795. }
  13796. if iNdEx >= l {
  13797. return io.ErrUnexpectedEOF
  13798. }
  13799. b := dAtA[iNdEx]
  13800. iNdEx++
  13801. m.TotalTxs |= (int64(b) & 0x7F) << shift
  13802. if b < 0x80 {
  13803. break
  13804. }
  13805. }
  13806. case 7:
  13807. if wireType != 2 {
  13808. return fmt.Errorf("proto: wrong wireType = %d for field LastBlockId", wireType)
  13809. }
  13810. var msglen int
  13811. for shift := uint(0); ; shift += 7 {
  13812. if shift >= 64 {
  13813. return ErrIntOverflowTypes
  13814. }
  13815. if iNdEx >= l {
  13816. return io.ErrUnexpectedEOF
  13817. }
  13818. b := dAtA[iNdEx]
  13819. iNdEx++
  13820. msglen |= (int(b) & 0x7F) << shift
  13821. if b < 0x80 {
  13822. break
  13823. }
  13824. }
  13825. if msglen < 0 {
  13826. return ErrInvalidLengthTypes
  13827. }
  13828. postIndex := iNdEx + msglen
  13829. if postIndex > l {
  13830. return io.ErrUnexpectedEOF
  13831. }
  13832. if err := m.LastBlockId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  13833. return err
  13834. }
  13835. iNdEx = postIndex
  13836. case 8:
  13837. if wireType != 2 {
  13838. return fmt.Errorf("proto: wrong wireType = %d for field LastCommitHash", wireType)
  13839. }
  13840. var byteLen int
  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. byteLen |= (int(b) & 0x7F) << shift
  13851. if b < 0x80 {
  13852. break
  13853. }
  13854. }
  13855. if byteLen < 0 {
  13856. return ErrInvalidLengthTypes
  13857. }
  13858. postIndex := iNdEx + byteLen
  13859. if postIndex > l {
  13860. return io.ErrUnexpectedEOF
  13861. }
  13862. m.LastCommitHash = append(m.LastCommitHash[:0], dAtA[iNdEx:postIndex]...)
  13863. if m.LastCommitHash == nil {
  13864. m.LastCommitHash = []byte{}
  13865. }
  13866. iNdEx = postIndex
  13867. case 9:
  13868. if wireType != 2 {
  13869. return fmt.Errorf("proto: wrong wireType = %d for field DataHash", wireType)
  13870. }
  13871. var byteLen int
  13872. for shift := uint(0); ; shift += 7 {
  13873. if shift >= 64 {
  13874. return ErrIntOverflowTypes
  13875. }
  13876. if iNdEx >= l {
  13877. return io.ErrUnexpectedEOF
  13878. }
  13879. b := dAtA[iNdEx]
  13880. iNdEx++
  13881. byteLen |= (int(b) & 0x7F) << shift
  13882. if b < 0x80 {
  13883. break
  13884. }
  13885. }
  13886. if byteLen < 0 {
  13887. return ErrInvalidLengthTypes
  13888. }
  13889. postIndex := iNdEx + byteLen
  13890. if postIndex > l {
  13891. return io.ErrUnexpectedEOF
  13892. }
  13893. m.DataHash = append(m.DataHash[:0], dAtA[iNdEx:postIndex]...)
  13894. if m.DataHash == nil {
  13895. m.DataHash = []byte{}
  13896. }
  13897. iNdEx = postIndex
  13898. case 10:
  13899. if wireType != 2 {
  13900. return fmt.Errorf("proto: wrong wireType = %d for field ValidatorsHash", wireType)
  13901. }
  13902. var byteLen int
  13903. for shift := uint(0); ; shift += 7 {
  13904. if shift >= 64 {
  13905. return ErrIntOverflowTypes
  13906. }
  13907. if iNdEx >= l {
  13908. return io.ErrUnexpectedEOF
  13909. }
  13910. b := dAtA[iNdEx]
  13911. iNdEx++
  13912. byteLen |= (int(b) & 0x7F) << shift
  13913. if b < 0x80 {
  13914. break
  13915. }
  13916. }
  13917. if byteLen < 0 {
  13918. return ErrInvalidLengthTypes
  13919. }
  13920. postIndex := iNdEx + byteLen
  13921. if postIndex > l {
  13922. return io.ErrUnexpectedEOF
  13923. }
  13924. m.ValidatorsHash = append(m.ValidatorsHash[:0], dAtA[iNdEx:postIndex]...)
  13925. if m.ValidatorsHash == nil {
  13926. m.ValidatorsHash = []byte{}
  13927. }
  13928. iNdEx = postIndex
  13929. case 11:
  13930. if wireType != 2 {
  13931. return fmt.Errorf("proto: wrong wireType = %d for field NextValidatorsHash", wireType)
  13932. }
  13933. var byteLen int
  13934. for shift := uint(0); ; shift += 7 {
  13935. if shift >= 64 {
  13936. return ErrIntOverflowTypes
  13937. }
  13938. if iNdEx >= l {
  13939. return io.ErrUnexpectedEOF
  13940. }
  13941. b := dAtA[iNdEx]
  13942. iNdEx++
  13943. byteLen |= (int(b) & 0x7F) << shift
  13944. if b < 0x80 {
  13945. break
  13946. }
  13947. }
  13948. if byteLen < 0 {
  13949. return ErrInvalidLengthTypes
  13950. }
  13951. postIndex := iNdEx + byteLen
  13952. if postIndex > l {
  13953. return io.ErrUnexpectedEOF
  13954. }
  13955. m.NextValidatorsHash = append(m.NextValidatorsHash[:0], dAtA[iNdEx:postIndex]...)
  13956. if m.NextValidatorsHash == nil {
  13957. m.NextValidatorsHash = []byte{}
  13958. }
  13959. iNdEx = postIndex
  13960. case 12:
  13961. if wireType != 2 {
  13962. return fmt.Errorf("proto: wrong wireType = %d for field ConsensusHash", wireType)
  13963. }
  13964. var byteLen int
  13965. for shift := uint(0); ; shift += 7 {
  13966. if shift >= 64 {
  13967. return ErrIntOverflowTypes
  13968. }
  13969. if iNdEx >= l {
  13970. return io.ErrUnexpectedEOF
  13971. }
  13972. b := dAtA[iNdEx]
  13973. iNdEx++
  13974. byteLen |= (int(b) & 0x7F) << shift
  13975. if b < 0x80 {
  13976. break
  13977. }
  13978. }
  13979. if byteLen < 0 {
  13980. return ErrInvalidLengthTypes
  13981. }
  13982. postIndex := iNdEx + byteLen
  13983. if postIndex > l {
  13984. return io.ErrUnexpectedEOF
  13985. }
  13986. m.ConsensusHash = append(m.ConsensusHash[:0], dAtA[iNdEx:postIndex]...)
  13987. if m.ConsensusHash == nil {
  13988. m.ConsensusHash = []byte{}
  13989. }
  13990. iNdEx = postIndex
  13991. case 13:
  13992. if wireType != 2 {
  13993. return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType)
  13994. }
  13995. var byteLen int
  13996. for shift := uint(0); ; shift += 7 {
  13997. if shift >= 64 {
  13998. return ErrIntOverflowTypes
  13999. }
  14000. if iNdEx >= l {
  14001. return io.ErrUnexpectedEOF
  14002. }
  14003. b := dAtA[iNdEx]
  14004. iNdEx++
  14005. byteLen |= (int(b) & 0x7F) << shift
  14006. if b < 0x80 {
  14007. break
  14008. }
  14009. }
  14010. if byteLen < 0 {
  14011. return ErrInvalidLengthTypes
  14012. }
  14013. postIndex := iNdEx + byteLen
  14014. if postIndex > l {
  14015. return io.ErrUnexpectedEOF
  14016. }
  14017. m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...)
  14018. if m.AppHash == nil {
  14019. m.AppHash = []byte{}
  14020. }
  14021. iNdEx = postIndex
  14022. case 14:
  14023. if wireType != 2 {
  14024. return fmt.Errorf("proto: wrong wireType = %d for field LastResultsHash", wireType)
  14025. }
  14026. var byteLen int
  14027. for shift := uint(0); ; shift += 7 {
  14028. if shift >= 64 {
  14029. return ErrIntOverflowTypes
  14030. }
  14031. if iNdEx >= l {
  14032. return io.ErrUnexpectedEOF
  14033. }
  14034. b := dAtA[iNdEx]
  14035. iNdEx++
  14036. byteLen |= (int(b) & 0x7F) << shift
  14037. if b < 0x80 {
  14038. break
  14039. }
  14040. }
  14041. if byteLen < 0 {
  14042. return ErrInvalidLengthTypes
  14043. }
  14044. postIndex := iNdEx + byteLen
  14045. if postIndex > l {
  14046. return io.ErrUnexpectedEOF
  14047. }
  14048. m.LastResultsHash = append(m.LastResultsHash[:0], dAtA[iNdEx:postIndex]...)
  14049. if m.LastResultsHash == nil {
  14050. m.LastResultsHash = []byte{}
  14051. }
  14052. iNdEx = postIndex
  14053. case 15:
  14054. if wireType != 2 {
  14055. return fmt.Errorf("proto: wrong wireType = %d for field EvidenceHash", wireType)
  14056. }
  14057. var byteLen int
  14058. for shift := uint(0); ; shift += 7 {
  14059. if shift >= 64 {
  14060. return ErrIntOverflowTypes
  14061. }
  14062. if iNdEx >= l {
  14063. return io.ErrUnexpectedEOF
  14064. }
  14065. b := dAtA[iNdEx]
  14066. iNdEx++
  14067. byteLen |= (int(b) & 0x7F) << shift
  14068. if b < 0x80 {
  14069. break
  14070. }
  14071. }
  14072. if byteLen < 0 {
  14073. return ErrInvalidLengthTypes
  14074. }
  14075. postIndex := iNdEx + byteLen
  14076. if postIndex > l {
  14077. return io.ErrUnexpectedEOF
  14078. }
  14079. m.EvidenceHash = append(m.EvidenceHash[:0], dAtA[iNdEx:postIndex]...)
  14080. if m.EvidenceHash == nil {
  14081. m.EvidenceHash = []byte{}
  14082. }
  14083. iNdEx = postIndex
  14084. case 16:
  14085. if wireType != 2 {
  14086. return fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", wireType)
  14087. }
  14088. var byteLen int
  14089. for shift := uint(0); ; shift += 7 {
  14090. if shift >= 64 {
  14091. return ErrIntOverflowTypes
  14092. }
  14093. if iNdEx >= l {
  14094. return io.ErrUnexpectedEOF
  14095. }
  14096. b := dAtA[iNdEx]
  14097. iNdEx++
  14098. byteLen |= (int(b) & 0x7F) << shift
  14099. if b < 0x80 {
  14100. break
  14101. }
  14102. }
  14103. if byteLen < 0 {
  14104. return ErrInvalidLengthTypes
  14105. }
  14106. postIndex := iNdEx + byteLen
  14107. if postIndex > l {
  14108. return io.ErrUnexpectedEOF
  14109. }
  14110. m.ProposerAddress = append(m.ProposerAddress[:0], dAtA[iNdEx:postIndex]...)
  14111. if m.ProposerAddress == nil {
  14112. m.ProposerAddress = []byte{}
  14113. }
  14114. iNdEx = postIndex
  14115. default:
  14116. iNdEx = preIndex
  14117. skippy, err := skipTypes(dAtA[iNdEx:])
  14118. if err != nil {
  14119. return err
  14120. }
  14121. if skippy < 0 {
  14122. return ErrInvalidLengthTypes
  14123. }
  14124. if (iNdEx + skippy) > l {
  14125. return io.ErrUnexpectedEOF
  14126. }
  14127. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14128. iNdEx += skippy
  14129. }
  14130. }
  14131. if iNdEx > l {
  14132. return io.ErrUnexpectedEOF
  14133. }
  14134. return nil
  14135. }
  14136. func (m *Version) Unmarshal(dAtA []byte) error {
  14137. l := len(dAtA)
  14138. iNdEx := 0
  14139. for iNdEx < l {
  14140. preIndex := iNdEx
  14141. var wire uint64
  14142. for shift := uint(0); ; shift += 7 {
  14143. if shift >= 64 {
  14144. return ErrIntOverflowTypes
  14145. }
  14146. if iNdEx >= l {
  14147. return io.ErrUnexpectedEOF
  14148. }
  14149. b := dAtA[iNdEx]
  14150. iNdEx++
  14151. wire |= (uint64(b) & 0x7F) << shift
  14152. if b < 0x80 {
  14153. break
  14154. }
  14155. }
  14156. fieldNum := int32(wire >> 3)
  14157. wireType := int(wire & 0x7)
  14158. if wireType == 4 {
  14159. return fmt.Errorf("proto: Version: wiretype end group for non-group")
  14160. }
  14161. if fieldNum <= 0 {
  14162. return fmt.Errorf("proto: Version: illegal tag %d (wire type %d)", fieldNum, wire)
  14163. }
  14164. switch fieldNum {
  14165. case 1:
  14166. if wireType != 0 {
  14167. return fmt.Errorf("proto: wrong wireType = %d for field Block", wireType)
  14168. }
  14169. m.Block = 0
  14170. for shift := uint(0); ; shift += 7 {
  14171. if shift >= 64 {
  14172. return ErrIntOverflowTypes
  14173. }
  14174. if iNdEx >= l {
  14175. return io.ErrUnexpectedEOF
  14176. }
  14177. b := dAtA[iNdEx]
  14178. iNdEx++
  14179. m.Block |= (uint64(b) & 0x7F) << shift
  14180. if b < 0x80 {
  14181. break
  14182. }
  14183. }
  14184. case 2:
  14185. if wireType != 0 {
  14186. return fmt.Errorf("proto: wrong wireType = %d for field App", wireType)
  14187. }
  14188. m.App = 0
  14189. for shift := uint(0); ; shift += 7 {
  14190. if shift >= 64 {
  14191. return ErrIntOverflowTypes
  14192. }
  14193. if iNdEx >= l {
  14194. return io.ErrUnexpectedEOF
  14195. }
  14196. b := dAtA[iNdEx]
  14197. iNdEx++
  14198. m.App |= (uint64(b) & 0x7F) << shift
  14199. if b < 0x80 {
  14200. break
  14201. }
  14202. }
  14203. default:
  14204. iNdEx = preIndex
  14205. skippy, err := skipTypes(dAtA[iNdEx:])
  14206. if err != nil {
  14207. return err
  14208. }
  14209. if skippy < 0 {
  14210. return ErrInvalidLengthTypes
  14211. }
  14212. if (iNdEx + skippy) > l {
  14213. return io.ErrUnexpectedEOF
  14214. }
  14215. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14216. iNdEx += skippy
  14217. }
  14218. }
  14219. if iNdEx > l {
  14220. return io.ErrUnexpectedEOF
  14221. }
  14222. return nil
  14223. }
  14224. func (m *BlockID) Unmarshal(dAtA []byte) error {
  14225. l := len(dAtA)
  14226. iNdEx := 0
  14227. for iNdEx < l {
  14228. preIndex := iNdEx
  14229. var wire uint64
  14230. for shift := uint(0); ; shift += 7 {
  14231. if shift >= 64 {
  14232. return ErrIntOverflowTypes
  14233. }
  14234. if iNdEx >= l {
  14235. return io.ErrUnexpectedEOF
  14236. }
  14237. b := dAtA[iNdEx]
  14238. iNdEx++
  14239. wire |= (uint64(b) & 0x7F) << shift
  14240. if b < 0x80 {
  14241. break
  14242. }
  14243. }
  14244. fieldNum := int32(wire >> 3)
  14245. wireType := int(wire & 0x7)
  14246. if wireType == 4 {
  14247. return fmt.Errorf("proto: BlockID: wiretype end group for non-group")
  14248. }
  14249. if fieldNum <= 0 {
  14250. return fmt.Errorf("proto: BlockID: illegal tag %d (wire type %d)", fieldNum, wire)
  14251. }
  14252. switch fieldNum {
  14253. case 1:
  14254. if wireType != 2 {
  14255. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  14256. }
  14257. var byteLen int
  14258. for shift := uint(0); ; shift += 7 {
  14259. if shift >= 64 {
  14260. return ErrIntOverflowTypes
  14261. }
  14262. if iNdEx >= l {
  14263. return io.ErrUnexpectedEOF
  14264. }
  14265. b := dAtA[iNdEx]
  14266. iNdEx++
  14267. byteLen |= (int(b) & 0x7F) << shift
  14268. if b < 0x80 {
  14269. break
  14270. }
  14271. }
  14272. if byteLen < 0 {
  14273. return ErrInvalidLengthTypes
  14274. }
  14275. postIndex := iNdEx + byteLen
  14276. if postIndex > l {
  14277. return io.ErrUnexpectedEOF
  14278. }
  14279. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  14280. if m.Hash == nil {
  14281. m.Hash = []byte{}
  14282. }
  14283. iNdEx = postIndex
  14284. case 2:
  14285. if wireType != 2 {
  14286. return fmt.Errorf("proto: wrong wireType = %d for field PartsHeader", wireType)
  14287. }
  14288. var msglen int
  14289. for shift := uint(0); ; shift += 7 {
  14290. if shift >= 64 {
  14291. return ErrIntOverflowTypes
  14292. }
  14293. if iNdEx >= l {
  14294. return io.ErrUnexpectedEOF
  14295. }
  14296. b := dAtA[iNdEx]
  14297. iNdEx++
  14298. msglen |= (int(b) & 0x7F) << shift
  14299. if b < 0x80 {
  14300. break
  14301. }
  14302. }
  14303. if msglen < 0 {
  14304. return ErrInvalidLengthTypes
  14305. }
  14306. postIndex := iNdEx + msglen
  14307. if postIndex > l {
  14308. return io.ErrUnexpectedEOF
  14309. }
  14310. if err := m.PartsHeader.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14311. return err
  14312. }
  14313. iNdEx = postIndex
  14314. default:
  14315. iNdEx = preIndex
  14316. skippy, err := skipTypes(dAtA[iNdEx:])
  14317. if err != nil {
  14318. return err
  14319. }
  14320. if skippy < 0 {
  14321. return ErrInvalidLengthTypes
  14322. }
  14323. if (iNdEx + skippy) > l {
  14324. return io.ErrUnexpectedEOF
  14325. }
  14326. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14327. iNdEx += skippy
  14328. }
  14329. }
  14330. if iNdEx > l {
  14331. return io.ErrUnexpectedEOF
  14332. }
  14333. return nil
  14334. }
  14335. func (m *PartSetHeader) Unmarshal(dAtA []byte) error {
  14336. l := len(dAtA)
  14337. iNdEx := 0
  14338. for iNdEx < l {
  14339. preIndex := iNdEx
  14340. var wire uint64
  14341. for shift := uint(0); ; shift += 7 {
  14342. if shift >= 64 {
  14343. return ErrIntOverflowTypes
  14344. }
  14345. if iNdEx >= l {
  14346. return io.ErrUnexpectedEOF
  14347. }
  14348. b := dAtA[iNdEx]
  14349. iNdEx++
  14350. wire |= (uint64(b) & 0x7F) << shift
  14351. if b < 0x80 {
  14352. break
  14353. }
  14354. }
  14355. fieldNum := int32(wire >> 3)
  14356. wireType := int(wire & 0x7)
  14357. if wireType == 4 {
  14358. return fmt.Errorf("proto: PartSetHeader: wiretype end group for non-group")
  14359. }
  14360. if fieldNum <= 0 {
  14361. return fmt.Errorf("proto: PartSetHeader: illegal tag %d (wire type %d)", fieldNum, wire)
  14362. }
  14363. switch fieldNum {
  14364. case 1:
  14365. if wireType != 0 {
  14366. return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType)
  14367. }
  14368. m.Total = 0
  14369. for shift := uint(0); ; shift += 7 {
  14370. if shift >= 64 {
  14371. return ErrIntOverflowTypes
  14372. }
  14373. if iNdEx >= l {
  14374. return io.ErrUnexpectedEOF
  14375. }
  14376. b := dAtA[iNdEx]
  14377. iNdEx++
  14378. m.Total |= (int32(b) & 0x7F) << shift
  14379. if b < 0x80 {
  14380. break
  14381. }
  14382. }
  14383. case 2:
  14384. if wireType != 2 {
  14385. return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  14386. }
  14387. var byteLen int
  14388. for shift := uint(0); ; shift += 7 {
  14389. if shift >= 64 {
  14390. return ErrIntOverflowTypes
  14391. }
  14392. if iNdEx >= l {
  14393. return io.ErrUnexpectedEOF
  14394. }
  14395. b := dAtA[iNdEx]
  14396. iNdEx++
  14397. byteLen |= (int(b) & 0x7F) << shift
  14398. if b < 0x80 {
  14399. break
  14400. }
  14401. }
  14402. if byteLen < 0 {
  14403. return ErrInvalidLengthTypes
  14404. }
  14405. postIndex := iNdEx + byteLen
  14406. if postIndex > l {
  14407. return io.ErrUnexpectedEOF
  14408. }
  14409. m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  14410. if m.Hash == nil {
  14411. m.Hash = []byte{}
  14412. }
  14413. iNdEx = postIndex
  14414. default:
  14415. iNdEx = preIndex
  14416. skippy, err := skipTypes(dAtA[iNdEx:])
  14417. if err != nil {
  14418. return err
  14419. }
  14420. if skippy < 0 {
  14421. return ErrInvalidLengthTypes
  14422. }
  14423. if (iNdEx + skippy) > l {
  14424. return io.ErrUnexpectedEOF
  14425. }
  14426. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14427. iNdEx += skippy
  14428. }
  14429. }
  14430. if iNdEx > l {
  14431. return io.ErrUnexpectedEOF
  14432. }
  14433. return nil
  14434. }
  14435. func (m *Validator) Unmarshal(dAtA []byte) error {
  14436. l := len(dAtA)
  14437. iNdEx := 0
  14438. for iNdEx < l {
  14439. preIndex := iNdEx
  14440. var wire uint64
  14441. for shift := uint(0); ; shift += 7 {
  14442. if shift >= 64 {
  14443. return ErrIntOverflowTypes
  14444. }
  14445. if iNdEx >= l {
  14446. return io.ErrUnexpectedEOF
  14447. }
  14448. b := dAtA[iNdEx]
  14449. iNdEx++
  14450. wire |= (uint64(b) & 0x7F) << shift
  14451. if b < 0x80 {
  14452. break
  14453. }
  14454. }
  14455. fieldNum := int32(wire >> 3)
  14456. wireType := int(wire & 0x7)
  14457. if wireType == 4 {
  14458. return fmt.Errorf("proto: Validator: wiretype end group for non-group")
  14459. }
  14460. if fieldNum <= 0 {
  14461. return fmt.Errorf("proto: Validator: illegal tag %d (wire type %d)", fieldNum, wire)
  14462. }
  14463. switch fieldNum {
  14464. case 1:
  14465. if wireType != 2 {
  14466. return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
  14467. }
  14468. var byteLen int
  14469. for shift := uint(0); ; shift += 7 {
  14470. if shift >= 64 {
  14471. return ErrIntOverflowTypes
  14472. }
  14473. if iNdEx >= l {
  14474. return io.ErrUnexpectedEOF
  14475. }
  14476. b := dAtA[iNdEx]
  14477. iNdEx++
  14478. byteLen |= (int(b) & 0x7F) << shift
  14479. if b < 0x80 {
  14480. break
  14481. }
  14482. }
  14483. if byteLen < 0 {
  14484. return ErrInvalidLengthTypes
  14485. }
  14486. postIndex := iNdEx + byteLen
  14487. if postIndex > l {
  14488. return io.ErrUnexpectedEOF
  14489. }
  14490. m.Address = append(m.Address[:0], dAtA[iNdEx:postIndex]...)
  14491. if m.Address == nil {
  14492. m.Address = []byte{}
  14493. }
  14494. iNdEx = postIndex
  14495. case 3:
  14496. if wireType != 0 {
  14497. return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
  14498. }
  14499. m.Power = 0
  14500. for shift := uint(0); ; shift += 7 {
  14501. if shift >= 64 {
  14502. return ErrIntOverflowTypes
  14503. }
  14504. if iNdEx >= l {
  14505. return io.ErrUnexpectedEOF
  14506. }
  14507. b := dAtA[iNdEx]
  14508. iNdEx++
  14509. m.Power |= (int64(b) & 0x7F) << shift
  14510. if b < 0x80 {
  14511. break
  14512. }
  14513. }
  14514. default:
  14515. iNdEx = preIndex
  14516. skippy, err := skipTypes(dAtA[iNdEx:])
  14517. if err != nil {
  14518. return err
  14519. }
  14520. if skippy < 0 {
  14521. return ErrInvalidLengthTypes
  14522. }
  14523. if (iNdEx + skippy) > l {
  14524. return io.ErrUnexpectedEOF
  14525. }
  14526. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14527. iNdEx += skippy
  14528. }
  14529. }
  14530. if iNdEx > l {
  14531. return io.ErrUnexpectedEOF
  14532. }
  14533. return nil
  14534. }
  14535. func (m *ValidatorUpdate) Unmarshal(dAtA []byte) error {
  14536. l := len(dAtA)
  14537. iNdEx := 0
  14538. for iNdEx < l {
  14539. preIndex := iNdEx
  14540. var wire uint64
  14541. for shift := uint(0); ; shift += 7 {
  14542. if shift >= 64 {
  14543. return ErrIntOverflowTypes
  14544. }
  14545. if iNdEx >= l {
  14546. return io.ErrUnexpectedEOF
  14547. }
  14548. b := dAtA[iNdEx]
  14549. iNdEx++
  14550. wire |= (uint64(b) & 0x7F) << shift
  14551. if b < 0x80 {
  14552. break
  14553. }
  14554. }
  14555. fieldNum := int32(wire >> 3)
  14556. wireType := int(wire & 0x7)
  14557. if wireType == 4 {
  14558. return fmt.Errorf("proto: ValidatorUpdate: wiretype end group for non-group")
  14559. }
  14560. if fieldNum <= 0 {
  14561. return fmt.Errorf("proto: ValidatorUpdate: illegal tag %d (wire type %d)", fieldNum, wire)
  14562. }
  14563. switch fieldNum {
  14564. case 1:
  14565. if wireType != 2 {
  14566. return fmt.Errorf("proto: wrong wireType = %d for field PubKey", wireType)
  14567. }
  14568. var msglen int
  14569. for shift := uint(0); ; shift += 7 {
  14570. if shift >= 64 {
  14571. return ErrIntOverflowTypes
  14572. }
  14573. if iNdEx >= l {
  14574. return io.ErrUnexpectedEOF
  14575. }
  14576. b := dAtA[iNdEx]
  14577. iNdEx++
  14578. msglen |= (int(b) & 0x7F) << shift
  14579. if b < 0x80 {
  14580. break
  14581. }
  14582. }
  14583. if msglen < 0 {
  14584. return ErrInvalidLengthTypes
  14585. }
  14586. postIndex := iNdEx + msglen
  14587. if postIndex > l {
  14588. return io.ErrUnexpectedEOF
  14589. }
  14590. if err := m.PubKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14591. return err
  14592. }
  14593. iNdEx = postIndex
  14594. case 2:
  14595. if wireType != 0 {
  14596. return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType)
  14597. }
  14598. m.Power = 0
  14599. for shift := uint(0); ; shift += 7 {
  14600. if shift >= 64 {
  14601. return ErrIntOverflowTypes
  14602. }
  14603. if iNdEx >= l {
  14604. return io.ErrUnexpectedEOF
  14605. }
  14606. b := dAtA[iNdEx]
  14607. iNdEx++
  14608. m.Power |= (int64(b) & 0x7F) << shift
  14609. if b < 0x80 {
  14610. break
  14611. }
  14612. }
  14613. default:
  14614. iNdEx = preIndex
  14615. skippy, err := skipTypes(dAtA[iNdEx:])
  14616. if err != nil {
  14617. return err
  14618. }
  14619. if skippy < 0 {
  14620. return ErrInvalidLengthTypes
  14621. }
  14622. if (iNdEx + skippy) > l {
  14623. return io.ErrUnexpectedEOF
  14624. }
  14625. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14626. iNdEx += skippy
  14627. }
  14628. }
  14629. if iNdEx > l {
  14630. return io.ErrUnexpectedEOF
  14631. }
  14632. return nil
  14633. }
  14634. func (m *VoteInfo) Unmarshal(dAtA []byte) error {
  14635. l := len(dAtA)
  14636. iNdEx := 0
  14637. for iNdEx < l {
  14638. preIndex := iNdEx
  14639. var wire uint64
  14640. for shift := uint(0); ; shift += 7 {
  14641. if shift >= 64 {
  14642. return ErrIntOverflowTypes
  14643. }
  14644. if iNdEx >= l {
  14645. return io.ErrUnexpectedEOF
  14646. }
  14647. b := dAtA[iNdEx]
  14648. iNdEx++
  14649. wire |= (uint64(b) & 0x7F) << shift
  14650. if b < 0x80 {
  14651. break
  14652. }
  14653. }
  14654. fieldNum := int32(wire >> 3)
  14655. wireType := int(wire & 0x7)
  14656. if wireType == 4 {
  14657. return fmt.Errorf("proto: VoteInfo: wiretype end group for non-group")
  14658. }
  14659. if fieldNum <= 0 {
  14660. return fmt.Errorf("proto: VoteInfo: illegal tag %d (wire type %d)", fieldNum, wire)
  14661. }
  14662. switch fieldNum {
  14663. case 1:
  14664. if wireType != 2 {
  14665. return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType)
  14666. }
  14667. var msglen int
  14668. for shift := uint(0); ; shift += 7 {
  14669. if shift >= 64 {
  14670. return ErrIntOverflowTypes
  14671. }
  14672. if iNdEx >= l {
  14673. return io.ErrUnexpectedEOF
  14674. }
  14675. b := dAtA[iNdEx]
  14676. iNdEx++
  14677. msglen |= (int(b) & 0x7F) << shift
  14678. if b < 0x80 {
  14679. break
  14680. }
  14681. }
  14682. if msglen < 0 {
  14683. return ErrInvalidLengthTypes
  14684. }
  14685. postIndex := iNdEx + msglen
  14686. if postIndex > l {
  14687. return io.ErrUnexpectedEOF
  14688. }
  14689. if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14690. return err
  14691. }
  14692. iNdEx = postIndex
  14693. case 2:
  14694. if wireType != 0 {
  14695. return fmt.Errorf("proto: wrong wireType = %d for field SignedLastBlock", wireType)
  14696. }
  14697. var v int
  14698. for shift := uint(0); ; shift += 7 {
  14699. if shift >= 64 {
  14700. return ErrIntOverflowTypes
  14701. }
  14702. if iNdEx >= l {
  14703. return io.ErrUnexpectedEOF
  14704. }
  14705. b := dAtA[iNdEx]
  14706. iNdEx++
  14707. v |= (int(b) & 0x7F) << shift
  14708. if b < 0x80 {
  14709. break
  14710. }
  14711. }
  14712. m.SignedLastBlock = bool(v != 0)
  14713. default:
  14714. iNdEx = preIndex
  14715. skippy, err := skipTypes(dAtA[iNdEx:])
  14716. if err != nil {
  14717. return err
  14718. }
  14719. if skippy < 0 {
  14720. return ErrInvalidLengthTypes
  14721. }
  14722. if (iNdEx + skippy) > l {
  14723. return io.ErrUnexpectedEOF
  14724. }
  14725. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14726. iNdEx += skippy
  14727. }
  14728. }
  14729. if iNdEx > l {
  14730. return io.ErrUnexpectedEOF
  14731. }
  14732. return nil
  14733. }
  14734. func (m *PubKey) Unmarshal(dAtA []byte) error {
  14735. l := len(dAtA)
  14736. iNdEx := 0
  14737. for iNdEx < l {
  14738. preIndex := iNdEx
  14739. var wire uint64
  14740. for shift := uint(0); ; shift += 7 {
  14741. if shift >= 64 {
  14742. return ErrIntOverflowTypes
  14743. }
  14744. if iNdEx >= l {
  14745. return io.ErrUnexpectedEOF
  14746. }
  14747. b := dAtA[iNdEx]
  14748. iNdEx++
  14749. wire |= (uint64(b) & 0x7F) << shift
  14750. if b < 0x80 {
  14751. break
  14752. }
  14753. }
  14754. fieldNum := int32(wire >> 3)
  14755. wireType := int(wire & 0x7)
  14756. if wireType == 4 {
  14757. return fmt.Errorf("proto: PubKey: wiretype end group for non-group")
  14758. }
  14759. if fieldNum <= 0 {
  14760. return fmt.Errorf("proto: PubKey: illegal tag %d (wire type %d)", fieldNum, wire)
  14761. }
  14762. switch fieldNum {
  14763. case 1:
  14764. if wireType != 2 {
  14765. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  14766. }
  14767. var stringLen uint64
  14768. for shift := uint(0); ; shift += 7 {
  14769. if shift >= 64 {
  14770. return ErrIntOverflowTypes
  14771. }
  14772. if iNdEx >= l {
  14773. return io.ErrUnexpectedEOF
  14774. }
  14775. b := dAtA[iNdEx]
  14776. iNdEx++
  14777. stringLen |= (uint64(b) & 0x7F) << shift
  14778. if b < 0x80 {
  14779. break
  14780. }
  14781. }
  14782. intStringLen := int(stringLen)
  14783. if intStringLen < 0 {
  14784. return ErrInvalidLengthTypes
  14785. }
  14786. postIndex := iNdEx + intStringLen
  14787. if postIndex > l {
  14788. return io.ErrUnexpectedEOF
  14789. }
  14790. m.Type = string(dAtA[iNdEx:postIndex])
  14791. iNdEx = postIndex
  14792. case 2:
  14793. if wireType != 2 {
  14794. return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
  14795. }
  14796. var byteLen int
  14797. for shift := uint(0); ; shift += 7 {
  14798. if shift >= 64 {
  14799. return ErrIntOverflowTypes
  14800. }
  14801. if iNdEx >= l {
  14802. return io.ErrUnexpectedEOF
  14803. }
  14804. b := dAtA[iNdEx]
  14805. iNdEx++
  14806. byteLen |= (int(b) & 0x7F) << shift
  14807. if b < 0x80 {
  14808. break
  14809. }
  14810. }
  14811. if byteLen < 0 {
  14812. return ErrInvalidLengthTypes
  14813. }
  14814. postIndex := iNdEx + byteLen
  14815. if postIndex > l {
  14816. return io.ErrUnexpectedEOF
  14817. }
  14818. m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
  14819. if m.Data == nil {
  14820. m.Data = []byte{}
  14821. }
  14822. iNdEx = postIndex
  14823. default:
  14824. iNdEx = preIndex
  14825. skippy, err := skipTypes(dAtA[iNdEx:])
  14826. if err != nil {
  14827. return err
  14828. }
  14829. if skippy < 0 {
  14830. return ErrInvalidLengthTypes
  14831. }
  14832. if (iNdEx + skippy) > l {
  14833. return io.ErrUnexpectedEOF
  14834. }
  14835. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  14836. iNdEx += skippy
  14837. }
  14838. }
  14839. if iNdEx > l {
  14840. return io.ErrUnexpectedEOF
  14841. }
  14842. return nil
  14843. }
  14844. func (m *Evidence) Unmarshal(dAtA []byte) error {
  14845. l := len(dAtA)
  14846. iNdEx := 0
  14847. for iNdEx < l {
  14848. preIndex := iNdEx
  14849. var wire uint64
  14850. for shift := uint(0); ; shift += 7 {
  14851. if shift >= 64 {
  14852. return ErrIntOverflowTypes
  14853. }
  14854. if iNdEx >= l {
  14855. return io.ErrUnexpectedEOF
  14856. }
  14857. b := dAtA[iNdEx]
  14858. iNdEx++
  14859. wire |= (uint64(b) & 0x7F) << shift
  14860. if b < 0x80 {
  14861. break
  14862. }
  14863. }
  14864. fieldNum := int32(wire >> 3)
  14865. wireType := int(wire & 0x7)
  14866. if wireType == 4 {
  14867. return fmt.Errorf("proto: Evidence: wiretype end group for non-group")
  14868. }
  14869. if fieldNum <= 0 {
  14870. return fmt.Errorf("proto: Evidence: illegal tag %d (wire type %d)", fieldNum, wire)
  14871. }
  14872. switch fieldNum {
  14873. case 1:
  14874. if wireType != 2 {
  14875. return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  14876. }
  14877. var stringLen uint64
  14878. for shift := uint(0); ; shift += 7 {
  14879. if shift >= 64 {
  14880. return ErrIntOverflowTypes
  14881. }
  14882. if iNdEx >= l {
  14883. return io.ErrUnexpectedEOF
  14884. }
  14885. b := dAtA[iNdEx]
  14886. iNdEx++
  14887. stringLen |= (uint64(b) & 0x7F) << shift
  14888. if b < 0x80 {
  14889. break
  14890. }
  14891. }
  14892. intStringLen := int(stringLen)
  14893. if intStringLen < 0 {
  14894. return ErrInvalidLengthTypes
  14895. }
  14896. postIndex := iNdEx + intStringLen
  14897. if postIndex > l {
  14898. return io.ErrUnexpectedEOF
  14899. }
  14900. m.Type = string(dAtA[iNdEx:postIndex])
  14901. iNdEx = postIndex
  14902. case 2:
  14903. if wireType != 2 {
  14904. return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType)
  14905. }
  14906. var msglen int
  14907. for shift := uint(0); ; shift += 7 {
  14908. if shift >= 64 {
  14909. return ErrIntOverflowTypes
  14910. }
  14911. if iNdEx >= l {
  14912. return io.ErrUnexpectedEOF
  14913. }
  14914. b := dAtA[iNdEx]
  14915. iNdEx++
  14916. msglen |= (int(b) & 0x7F) << shift
  14917. if b < 0x80 {
  14918. break
  14919. }
  14920. }
  14921. if msglen < 0 {
  14922. return ErrInvalidLengthTypes
  14923. }
  14924. postIndex := iNdEx + msglen
  14925. if postIndex > l {
  14926. return io.ErrUnexpectedEOF
  14927. }
  14928. if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  14929. return err
  14930. }
  14931. iNdEx = postIndex
  14932. case 3:
  14933. if wireType != 0 {
  14934. return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType)
  14935. }
  14936. m.Height = 0
  14937. for shift := uint(0); ; shift += 7 {
  14938. if shift >= 64 {
  14939. return ErrIntOverflowTypes
  14940. }
  14941. if iNdEx >= l {
  14942. return io.ErrUnexpectedEOF
  14943. }
  14944. b := dAtA[iNdEx]
  14945. iNdEx++
  14946. m.Height |= (int64(b) & 0x7F) << shift
  14947. if b < 0x80 {
  14948. break
  14949. }
  14950. }
  14951. case 4:
  14952. if wireType != 2 {
  14953. return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType)
  14954. }
  14955. var msglen int
  14956. for shift := uint(0); ; shift += 7 {
  14957. if shift >= 64 {
  14958. return ErrIntOverflowTypes
  14959. }
  14960. if iNdEx >= l {
  14961. return io.ErrUnexpectedEOF
  14962. }
  14963. b := dAtA[iNdEx]
  14964. iNdEx++
  14965. msglen |= (int(b) & 0x7F) << shift
  14966. if b < 0x80 {
  14967. break
  14968. }
  14969. }
  14970. if msglen < 0 {
  14971. return ErrInvalidLengthTypes
  14972. }
  14973. postIndex := iNdEx + msglen
  14974. if postIndex > l {
  14975. return io.ErrUnexpectedEOF
  14976. }
  14977. if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil {
  14978. return err
  14979. }
  14980. iNdEx = postIndex
  14981. case 5:
  14982. if wireType != 0 {
  14983. return fmt.Errorf("proto: wrong wireType = %d for field TotalVotingPower", wireType)
  14984. }
  14985. m.TotalVotingPower = 0
  14986. for shift := uint(0); ; shift += 7 {
  14987. if shift >= 64 {
  14988. return ErrIntOverflowTypes
  14989. }
  14990. if iNdEx >= l {
  14991. return io.ErrUnexpectedEOF
  14992. }
  14993. b := dAtA[iNdEx]
  14994. iNdEx++
  14995. m.TotalVotingPower |= (int64(b) & 0x7F) << shift
  14996. if b < 0x80 {
  14997. break
  14998. }
  14999. }
  15000. default:
  15001. iNdEx = preIndex
  15002. skippy, err := skipTypes(dAtA[iNdEx:])
  15003. if err != nil {
  15004. return err
  15005. }
  15006. if skippy < 0 {
  15007. return ErrInvalidLengthTypes
  15008. }
  15009. if (iNdEx + skippy) > l {
  15010. return io.ErrUnexpectedEOF
  15011. }
  15012. m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  15013. iNdEx += skippy
  15014. }
  15015. }
  15016. if iNdEx > l {
  15017. return io.ErrUnexpectedEOF
  15018. }
  15019. return nil
  15020. }
  15021. func skipTypes(dAtA []byte) (n int, err error) {
  15022. l := len(dAtA)
  15023. iNdEx := 0
  15024. for iNdEx < l {
  15025. var wire uint64
  15026. for shift := uint(0); ; shift += 7 {
  15027. if shift >= 64 {
  15028. return 0, ErrIntOverflowTypes
  15029. }
  15030. if iNdEx >= l {
  15031. return 0, io.ErrUnexpectedEOF
  15032. }
  15033. b := dAtA[iNdEx]
  15034. iNdEx++
  15035. wire |= (uint64(b) & 0x7F) << shift
  15036. if b < 0x80 {
  15037. break
  15038. }
  15039. }
  15040. wireType := int(wire & 0x7)
  15041. switch wireType {
  15042. case 0:
  15043. for shift := uint(0); ; shift += 7 {
  15044. if shift >= 64 {
  15045. return 0, ErrIntOverflowTypes
  15046. }
  15047. if iNdEx >= l {
  15048. return 0, io.ErrUnexpectedEOF
  15049. }
  15050. iNdEx++
  15051. if dAtA[iNdEx-1] < 0x80 {
  15052. break
  15053. }
  15054. }
  15055. return iNdEx, nil
  15056. case 1:
  15057. iNdEx += 8
  15058. return iNdEx, nil
  15059. case 2:
  15060. var length int
  15061. for shift := uint(0); ; shift += 7 {
  15062. if shift >= 64 {
  15063. return 0, ErrIntOverflowTypes
  15064. }
  15065. if iNdEx >= l {
  15066. return 0, io.ErrUnexpectedEOF
  15067. }
  15068. b := dAtA[iNdEx]
  15069. iNdEx++
  15070. length |= (int(b) & 0x7F) << shift
  15071. if b < 0x80 {
  15072. break
  15073. }
  15074. }
  15075. iNdEx += length
  15076. if length < 0 {
  15077. return 0, ErrInvalidLengthTypes
  15078. }
  15079. return iNdEx, nil
  15080. case 3:
  15081. for {
  15082. var innerWire uint64
  15083. var start int = iNdEx
  15084. for shift := uint(0); ; shift += 7 {
  15085. if shift >= 64 {
  15086. return 0, ErrIntOverflowTypes
  15087. }
  15088. if iNdEx >= l {
  15089. return 0, io.ErrUnexpectedEOF
  15090. }
  15091. b := dAtA[iNdEx]
  15092. iNdEx++
  15093. innerWire |= (uint64(b) & 0x7F) << shift
  15094. if b < 0x80 {
  15095. break
  15096. }
  15097. }
  15098. innerWireType := int(innerWire & 0x7)
  15099. if innerWireType == 4 {
  15100. break
  15101. }
  15102. next, err := skipTypes(dAtA[start:])
  15103. if err != nil {
  15104. return 0, err
  15105. }
  15106. iNdEx = start + next
  15107. }
  15108. return iNdEx, nil
  15109. case 4:
  15110. return iNdEx, nil
  15111. case 5:
  15112. iNdEx += 4
  15113. return iNdEx, nil
  15114. default:
  15115. return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  15116. }
  15117. }
  15118. panic("unreachable")
  15119. }
  15120. var (
  15121. ErrInvalidLengthTypes = fmt.Errorf("proto: negative length found during unmarshaling")
  15122. ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow")
  15123. )
  15124. func init() { proto.RegisterFile("abci/types/types.proto", fileDescriptor_types_30d8160a6576aafe) }
  15125. func init() {
  15126. golang_proto.RegisterFile("abci/types/types.proto", fileDescriptor_types_30d8160a6576aafe)
  15127. }
  15128. var fileDescriptor_types_30d8160a6576aafe = []byte{
  15129. // 2282 bytes of a gzipped FileDescriptorProto
  15130. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0xcd, 0x73, 0x1c, 0x47,
  15131. 0x15, 0xd7, 0xec, 0xf7, 0xbc, 0xd5, 0x7e, 0xb8, 0x2d, 0xdb, 0xeb, 0xc5, 0x48, 0xae, 0x31, 0x38,
  15132. 0x52, 0xe2, 0xac, 0x12, 0x05, 0x53, 0x32, 0x0e, 0xa9, 0xd2, 0xda, 0x06, 0xa9, 0x62, 0x82, 0x18,
  15133. 0xdb, 0xe2, 0x42, 0xd5, 0x54, 0xef, 0x4e, 0x7b, 0x77, 0xca, 0xbb, 0x33, 0x93, 0x99, 0x5e, 0x79,
  15134. 0xc5, 0x91, 0x73, 0x0e, 0x39, 0xf0, 0x27, 0x70, 0xe0, 0x4f, 0xc8, 0x91, 0x13, 0x95, 0x23, 0x07,
  15135. 0xce, 0x06, 0x44, 0x71, 0xa1, 0x8a, 0x33, 0x70, 0xa3, 0xfa, 0x75, 0xcf, 0xa7, 0x66, 0x4d, 0x62,
  15136. 0xb8, 0xe5, 0xb2, 0x3b, 0xdd, 0xef, 0xf7, 0x7a, 0xba, 0xdf, 0xbc, 0xf7, 0x7e, 0xef, 0x35, 0x5c,
  15137. 0xa5, 0xa3, 0xb1, 0xb3, 0xcb, 0xcf, 0x7c, 0x16, 0xca, 0xdf, 0x81, 0x1f, 0x78, 0xdc, 0x23, 0x55,
  15138. 0x1c, 0xf4, 0xdf, 0x9d, 0x38, 0x7c, 0xba, 0x18, 0x0d, 0xc6, 0xde, 0x7c, 0x77, 0xe2, 0x4d, 0xbc,
  15139. 0x5d, 0x94, 0x8e, 0x16, 0xcf, 0x71, 0x84, 0x03, 0x7c, 0x92, 0x5a, 0xfd, 0xfb, 0x29, 0x38, 0x67,
  15140. 0xae, 0xcd, 0x82, 0xb9, 0xe3, 0xf2, 0xf4, 0xe3, 0x38, 0x38, 0xf3, 0xb9, 0xb7, 0x3b, 0x67, 0xc1,
  15141. 0x8b, 0x19, 0x53, 0x7f, 0x4a, 0x79, 0xff, 0xbf, 0x2a, 0xcf, 0x9c, 0x51, 0xb8, 0x3b, 0xf6, 0xe6,
  15142. 0x73, 0xcf, 0x4d, 0x6f, 0xb6, 0xbf, 0x35, 0xf1, 0xbc, 0xc9, 0x8c, 0x25, 0x9b, 0xe3, 0xce, 0x9c,
  15143. 0x85, 0x9c, 0xce, 0x7d, 0x09, 0x30, 0x7e, 0x5f, 0x81, 0xba, 0xc9, 0x3e, 0x5d, 0xb0, 0x90, 0x93,
  15144. 0x6d, 0xa8, 0xb0, 0xf1, 0xd4, 0xeb, 0x95, 0x6e, 0x6a, 0xdb, 0xcd, 0x3d, 0x32, 0x90, 0x0b, 0x29,
  15145. 0xe9, 0xa3, 0xf1, 0xd4, 0x3b, 0x5c, 0x33, 0x11, 0x41, 0xde, 0x81, 0xea, 0xf3, 0xd9, 0x22, 0x9c,
  15146. 0xf6, 0xca, 0x08, 0xbd, 0x9c, 0x85, 0xfe, 0x48, 0x88, 0x0e, 0xd7, 0x4c, 0x89, 0x11, 0xcb, 0x3a,
  15147. 0xee, 0x73, 0xaf, 0x57, 0x29, 0x5a, 0xf6, 0xc8, 0x7d, 0x8e, 0xcb, 0x0a, 0x04, 0xd9, 0x07, 0x08,
  15148. 0x19, 0xb7, 0x3c, 0x9f, 0x3b, 0x9e, 0xdb, 0xab, 0x22, 0xfe, 0x5a, 0x16, 0xff, 0x84, 0xf1, 0x9f,
  15149. 0xa2, 0xf8, 0x70, 0xcd, 0xd4, 0xc3, 0x68, 0x20, 0x34, 0x1d, 0xd7, 0xe1, 0xd6, 0x78, 0x4a, 0x1d,
  15150. 0xb7, 0x57, 0x2b, 0xd2, 0x3c, 0x72, 0x1d, 0xfe, 0x40, 0x88, 0x85, 0xa6, 0x13, 0x0d, 0xc4, 0x51,
  15151. 0x3e, 0x5d, 0xb0, 0xe0, 0xac, 0x57, 0x2f, 0x3a, 0xca, 0xcf, 0x84, 0x48, 0x1c, 0x05, 0x31, 0xe4,
  15152. 0x3e, 0x34, 0x47, 0x6c, 0xe2, 0xb8, 0xd6, 0x68, 0xe6, 0x8d, 0x5f, 0xf4, 0x1a, 0xa8, 0xd2, 0xcb,
  15153. 0xaa, 0x0c, 0x05, 0x60, 0x28, 0xe4, 0x87, 0x6b, 0x26, 0x8c, 0xe2, 0x11, 0xd9, 0x83, 0xc6, 0x78,
  15154. 0xca, 0xc6, 0x2f, 0x2c, 0xbe, 0xec, 0xe9, 0xa8, 0x79, 0x25, 0xab, 0xf9, 0x40, 0x48, 0x9f, 0x2e,
  15155. 0x0f, 0xd7, 0xcc, 0xfa, 0x58, 0x3e, 0x92, 0xbb, 0xa0, 0x33, 0xd7, 0x56, 0xaf, 0x6b, 0xa2, 0xd2,
  15156. 0xd5, 0xdc, 0x77, 0x71, 0xed, 0xe8, 0x65, 0x0d, 0xa6, 0x9e, 0xc9, 0x00, 0x6a, 0xc2, 0x19, 0x1c,
  15157. 0xde, 0x5b, 0x47, 0x9d, 0x8d, 0xdc, 0x8b, 0x50, 0x76, 0xb8, 0x66, 0x2a, 0x94, 0x30, 0x9f, 0xcd,
  15158. 0x66, 0xce, 0x29, 0x0b, 0xc4, 0xe6, 0x2e, 0x17, 0x99, 0xef, 0xa1, 0x94, 0xe3, 0xf6, 0x74, 0x3b,
  15159. 0x1a, 0x0c, 0xeb, 0x50, 0x3d, 0xa5, 0xb3, 0x05, 0x33, 0xde, 0x82, 0x66, 0xca, 0x53, 0x48, 0x0f,
  15160. 0xea, 0x73, 0x16, 0x86, 0x74, 0xc2, 0x7a, 0xda, 0x4d, 0x6d, 0x5b, 0x37, 0xa3, 0xa1, 0xd1, 0x86,
  15161. 0xf5, 0xb4, 0x9f, 0x18, 0xf3, 0x58, 0x51, 0xf8, 0x82, 0x50, 0x3c, 0x65, 0x41, 0x28, 0x1c, 0x40,
  15162. 0x29, 0xaa, 0x21, 0xb9, 0x05, 0x2d, 0xb4, 0x83, 0x15, 0xc9, 0x85, 0x9f, 0x56, 0xcc, 0x75, 0x9c,
  15163. 0x3c, 0x51, 0xa0, 0x2d, 0x68, 0xfa, 0x7b, 0x7e, 0x0c, 0x29, 0x23, 0x04, 0xfc, 0x3d, 0x5f, 0x01,
  15164. 0x8c, 0x1f, 0x40, 0x37, 0xef, 0x4a, 0xa4, 0x0b, 0xe5, 0x17, 0xec, 0x4c, 0xbd, 0x4f, 0x3c, 0x92,
  15165. 0x0d, 0x75, 0x2c, 0x7c, 0x87, 0x6e, 0xaa, 0x33, 0x7e, 0x5e, 0x8a, 0x95, 0x63, 0x6f, 0x22, 0xfb,
  15166. 0x50, 0x11, 0x41, 0x85, 0xda, 0xcd, 0xbd, 0xfe, 0x40, 0x46, 0xdc, 0x20, 0x8a, 0xb8, 0xc1, 0xd3,
  15167. 0x28, 0xe2, 0x86, 0x8d, 0x2f, 0x5f, 0x6d, 0xad, 0x7d, 0xfe, 0xa7, 0x2d, 0xcd, 0x44, 0x0d, 0x72,
  15168. 0x5d, 0x38, 0x04, 0x75, 0x5c, 0xcb, 0xb1, 0xd5, 0x7b, 0xea, 0x38, 0x3e, 0xb2, 0xc9, 0x01, 0x74,
  15169. 0xc7, 0x9e, 0x1b, 0x32, 0x37, 0x5c, 0x84, 0x96, 0x4f, 0x03, 0x3a, 0x0f, 0x55, 0xac, 0x45, 0x9f,
  15170. 0xff, 0x41, 0x24, 0x3e, 0x46, 0xa9, 0xd9, 0x19, 0x67, 0x27, 0xc8, 0x87, 0x00, 0xa7, 0x74, 0xe6,
  15171. 0xd8, 0x94, 0x7b, 0x41, 0xd8, 0xab, 0xdc, 0x2c, 0xa7, 0x94, 0x4f, 0x22, 0xc1, 0x33, 0xdf, 0xa6,
  15172. 0x9c, 0x0d, 0x2b, 0x62, 0x67, 0x66, 0x0a, 0x4f, 0x6e, 0x43, 0x87, 0xfa, 0xbe, 0x15, 0x72, 0xca,
  15173. 0x99, 0x35, 0x3a, 0xe3, 0x2c, 0xc4, 0x78, 0x5c, 0x37, 0x5b, 0xd4, 0xf7, 0x9f, 0x88, 0xd9, 0xa1,
  15174. 0x98, 0x34, 0xec, 0xf8, 0x6b, 0x62, 0xa8, 0x10, 0x02, 0x15, 0x9b, 0x72, 0x8a, 0xd6, 0x58, 0x37,
  15175. 0xf1, 0x59, 0xcc, 0xf9, 0x94, 0x4f, 0xd5, 0x19, 0xf1, 0x99, 0x5c, 0x85, 0xda, 0x94, 0x39, 0x93,
  15176. 0x29, 0xc7, 0x63, 0x95, 0x4d, 0x35, 0x12, 0x86, 0xf7, 0x03, 0xef, 0x94, 0x61, 0xb6, 0x68, 0x98,
  15177. 0x72, 0x60, 0xfc, 0x4d, 0x83, 0x4b, 0x17, 0xc2, 0x4b, 0xac, 0x3b, 0xa5, 0xe1, 0x34, 0x7a, 0x97,
  15178. 0x78, 0x26, 0xef, 0x88, 0x75, 0xa9, 0xcd, 0x02, 0x95, 0xc5, 0x5a, 0xea, 0xc4, 0x87, 0x38, 0xa9,
  15179. 0x0e, 0xaa, 0x20, 0xe4, 0x11, 0x74, 0x67, 0x34, 0xe4, 0x96, 0x8c, 0x02, 0x0b, 0xb3, 0x54, 0x39,
  15180. 0x13, 0x99, 0x8f, 0x69, 0x14, 0x2d, 0xc2, 0x39, 0x95, 0x7a, 0x7b, 0x96, 0x99, 0x25, 0x87, 0xb0,
  15181. 0x31, 0x3a, 0xfb, 0x25, 0x75, 0xb9, 0xe3, 0x32, 0xeb, 0x82, 0xcd, 0x3b, 0x6a, 0xa9, 0x47, 0xa7,
  15182. 0x8e, 0xcd, 0xdc, 0x71, 0x64, 0xec, 0xcb, 0xb1, 0x4a, 0xfc, 0x31, 0x42, 0xe3, 0x10, 0xda, 0xd9,
  15183. 0x5c, 0x40, 0xda, 0x50, 0xe2, 0x4b, 0x75, 0xc2, 0x12, 0x5f, 0x92, 0xdb, 0x50, 0x11, 0xcb, 0xe1,
  15184. 0xe9, 0xda, 0x71, 0x32, 0x55, 0xe8, 0xa7, 0x67, 0x3e, 0x33, 0x51, 0x6e, 0x18, 0xb1, 0xa7, 0xc6,
  15185. 0x81, 0x9b, 0x5f, 0xcb, 0xd8, 0x81, 0x4e, 0x2e, 0x89, 0xa4, 0x3e, 0x8b, 0x96, 0xfe, 0x2c, 0x46,
  15186. 0x07, 0x5a, 0x99, 0xdc, 0x61, 0x7c, 0x56, 0x85, 0x86, 0xc9, 0x42, 0x5f, 0x38, 0x1d, 0xd9, 0x07,
  15187. 0x9d, 0x2d, 0xc7, 0x4c, 0xa6, 0x6d, 0x2d, 0x97, 0x14, 0x25, 0xe6, 0x51, 0x24, 0x17, 0xe9, 0x23,
  15188. 0x06, 0x93, 0x9d, 0x0c, 0xe5, 0x5c, 0xce, 0x2b, 0xa5, 0x39, 0xe7, 0x4e, 0x96, 0x73, 0x36, 0x72,
  15189. 0xd8, 0x1c, 0xe9, 0xec, 0x64, 0x48, 0x27, 0xbf, 0x70, 0x86, 0x75, 0xee, 0x15, 0xb0, 0x4e, 0x7e,
  15190. 0xfb, 0x2b, 0x68, 0xe7, 0x5e, 0x01, 0xed, 0xf4, 0x2e, 0xbc, 0xab, 0x90, 0x77, 0xee, 0x64, 0x79,
  15191. 0x27, 0x7f, 0x9c, 0x1c, 0xf1, 0x7c, 0x58, 0x44, 0x3c, 0xd7, 0x73, 0x3a, 0x2b, 0x99, 0xe7, 0x83,
  15192. 0x0b, 0xcc, 0x73, 0x35, 0xa7, 0x5a, 0x40, 0x3d, 0xf7, 0x32, 0x9c, 0x00, 0x85, 0x67, 0x2b, 0x26,
  15193. 0x05, 0xf2, 0xfd, 0x8b, 0xac, 0x75, 0x2d, 0xff, 0x69, 0x8b, 0x68, 0x6b, 0x37, 0x47, 0x5b, 0x57,
  15194. 0xf2, 0xbb, 0xcc, 0xf1, 0x56, 0xc2, 0x3e, 0x3b, 0x22, 0x3f, 0xe4, 0x3c, 0x4d, 0xe4, 0x12, 0x16,
  15195. 0x04, 0x5e, 0xa0, 0x12, 0xbb, 0x1c, 0x18, 0xdb, 0x22, 0x63, 0x25, 0xfe, 0xf5, 0x1a, 0xa6, 0x42,
  15196. 0xa7, 0x4f, 0x79, 0x97, 0xf1, 0x85, 0x96, 0xe8, 0x62, 0xe4, 0xa7, 0xb3, 0x9d, 0xae, 0xb2, 0x5d,
  15197. 0x8a, 0xc0, 0x4a, 0x59, 0x02, 0xdb, 0x82, 0xa6, 0xc8, 0xa9, 0x39, 0x6e, 0xa2, 0x7e, 0xc4, 0x4d,
  15198. 0xe4, 0x6d, 0xb8, 0x84, 0xf9, 0x48, 0xd2, 0x9c, 0x0a, 0xc4, 0x0a, 0x06, 0x62, 0x47, 0x08, 0xa4,
  15199. 0xc5, 0x64, 0xa2, 0x7c, 0x17, 0x2e, 0xa7, 0xb0, 0x62, 0x5d, 0xcc, 0x85, 0x32, 0x49, 0x77, 0x63,
  15200. 0xf4, 0x81, 0xef, 0x1f, 0xd2, 0x70, 0x6a, 0xfc, 0x24, 0x31, 0x50, 0xc2, 0x7b, 0x04, 0x2a, 0x63,
  15201. 0xcf, 0x96, 0xe7, 0x6e, 0x99, 0xf8, 0x2c, 0xb8, 0x70, 0xe6, 0x4d, 0x70, 0x73, 0xba, 0x29, 0x1e,
  15202. 0x05, 0x2a, 0x0e, 0x25, 0x5d, 0xc6, 0x8c, 0xf1, 0x6b, 0x2d, 0x59, 0x2f, 0xa1, 0xc2, 0x22, 0xd6,
  15203. 0xd2, 0xfe, 0x17, 0xd6, 0x2a, 0x7d, 0x3d, 0xd6, 0x32, 0xce, 0xb5, 0xe4, 0x93, 0xc5, 0x7c, 0xf4,
  15204. 0x66, 0x47, 0x14, 0xde, 0xe3, 0xb8, 0x36, 0x5b, 0xa2, 0x49, 0xcb, 0xa6, 0x1c, 0x44, 0xa5, 0x42,
  15205. 0x0d, 0xcd, 0x9c, 0x2d, 0x15, 0xea, 0x38, 0x27, 0x07, 0xe4, 0x16, 0xf2, 0x98, 0xf7, 0x5c, 0x85,
  15206. 0x6a, 0x6b, 0xa0, 0x0a, 0xfa, 0x63, 0x31, 0x69, 0x4a, 0x59, 0x2a, 0xdb, 0xea, 0x19, 0x12, 0xbc,
  15207. 0x01, 0xba, 0xd8, 0x68, 0xe8, 0xd3, 0x31, 0xc3, 0xc8, 0xd3, 0xcd, 0x64, 0xc2, 0x78, 0x0a, 0xe4,
  15208. 0x62, 0xc4, 0x93, 0x8f, 0xa0, 0xc6, 0x4e, 0x99, 0xcb, 0x85, 0xc5, 0x85, 0xd1, 0xd6, 0x63, 0xda,
  15209. 0x61, 0x2e, 0x1f, 0xf6, 0x84, 0xa9, 0xfe, 0xfe, 0x6a, 0xab, 0x2b, 0x31, 0x77, 0xbc, 0xb9, 0xc3,
  15210. 0xd9, 0xdc, 0xe7, 0x67, 0xa6, 0xd2, 0x32, 0xfe, 0xa9, 0x09, 0x36, 0xc8, 0x64, 0x83, 0x42, 0xe3,
  15211. 0x45, 0x2e, 0x5f, 0x4a, 0x11, 0xfc, 0x57, 0x33, 0xe8, 0xb7, 0x01, 0x26, 0x34, 0xb4, 0x5e, 0x52,
  15212. 0x97, 0x33, 0x5b, 0x59, 0x55, 0x9f, 0xd0, 0xf0, 0xe7, 0x38, 0x21, 0xaa, 0x21, 0x21, 0x5e, 0x84,
  15213. 0xcc, 0x46, 0xf3, 0x96, 0xcd, 0xfa, 0x84, 0x86, 0xcf, 0x42, 0x66, 0xa7, 0xce, 0x56, 0x7f, 0x93,
  15214. 0xb3, 0x65, 0xed, 0xd9, 0xc8, 0xdb, 0xf3, 0xdf, 0x29, 0x5f, 0x4e, 0xc8, 0xf2, 0x9b, 0x71, 0xf6,
  15215. 0x7f, 0x68, 0xa2, 0x4e, 0xc8, 0xa6, 0x64, 0x72, 0x04, 0x97, 0xe2, 0x98, 0xb2, 0x16, 0x18, 0x6b,
  15216. 0x91, 0x57, 0xbd, 0x3e, 0x14, 0xbb, 0xa7, 0xd9, 0xe9, 0x90, 0x7c, 0x02, 0xd7, 0x72, 0x19, 0x21,
  15217. 0x5e, 0xb0, 0xf4, 0xda, 0xc4, 0x70, 0x25, 0x9b, 0x18, 0xa2, 0xf5, 0x12, 0x6b, 0x94, 0xdf, 0xc8,
  15218. 0xcb, 0xbf, 0x23, 0x0a, 0xac, 0x34, 0x99, 0x14, 0x7d, 0x53, 0xe3, 0x37, 0x1a, 0x74, 0x72, 0x1b,
  15219. 0x22, 0xdb, 0x50, 0x95, 0x7c, 0xa6, 0x65, 0xda, 0x58, 0xb4, 0x98, 0xda, 0xb3, 0x04, 0x90, 0xf7,
  15220. 0xa1, 0xc1, 0x54, 0xad, 0xa7, 0x0e, 0x79, 0x25, 0x57, 0x02, 0x2a, 0x7c, 0x0c, 0x23, 0xdf, 0x03,
  15221. 0x3d, 0x36, 0x5d, 0xae, 0xce, 0x8f, 0x2d, 0xad, 0x94, 0x12, 0xa0, 0xf1, 0x00, 0x9a, 0xa9, 0xd7,
  15222. 0x93, 0x6f, 0x81, 0x3e, 0xa7, 0x4b, 0x55, 0xac, 0xcb, 0xf2, 0xad, 0x31, 0xa7, 0x4b, 0xac, 0xd3,
  15223. 0xc9, 0x35, 0xa8, 0x0b, 0xe1, 0x84, 0x4a, 0xc3, 0x97, 0xcd, 0xda, 0x9c, 0x2e, 0x7f, 0x4c, 0x43,
  15224. 0x63, 0x07, 0xda, 0xd9, 0x6d, 0x45, 0xd0, 0x88, 0x10, 0x25, 0xf4, 0x60, 0xc2, 0x8c, 0xbb, 0xd0,
  15225. 0xc9, 0xed, 0x86, 0x18, 0xd0, 0xf2, 0x17, 0x23, 0xeb, 0x05, 0x3b, 0xb3, 0x70, 0xbb, 0xe8, 0x26,
  15226. 0xba, 0xd9, 0xf4, 0x17, 0xa3, 0x8f, 0xd9, 0x99, 0xa8, 0x47, 0x43, 0xe3, 0x09, 0xb4, 0xb3, 0x65,
  15227. 0xb4, 0x48, 0x99, 0x81, 0xb7, 0x70, 0x6d, 0x5c, 0xbf, 0x6a, 0xca, 0x81, 0xe8, 0xc4, 0x4f, 0x3d,
  15228. 0xe9, 0x19, 0xe9, 0xba, 0xf9, 0xc4, 0xe3, 0x2c, 0x55, 0x7c, 0x4b, 0x8c, 0xe1, 0x40, 0x15, 0xbf,
  15229. 0xb9, 0xf8, 0x7e, 0x58, 0x10, 0x2b, 0x0a, 0x16, 0xcf, 0xe4, 0x31, 0x00, 0xe5, 0x3c, 0x70, 0x46,
  15230. 0x8b, 0x64, 0xb9, 0xf6, 0x40, 0x5e, 0x8f, 0x0c, 0x3e, 0x3e, 0x39, 0xa6, 0x4e, 0x30, 0xbc, 0xa1,
  15231. 0x7c, 0x65, 0x23, 0x41, 0xa6, 0xfc, 0x25, 0xa5, 0x6f, 0xfc, 0xaa, 0x0a, 0x35, 0xd9, 0x3e, 0x90,
  15232. 0x41, 0xb6, 0x39, 0x15, 0xab, 0xaa, 0x4d, 0xca, 0x59, 0xb5, 0xc7, 0x98, 0xf1, 0x6f, 0xe7, 0x3b,
  15233. 0xbc, 0x61, 0xf3, 0xfc, 0xd5, 0x56, 0x1d, 0xd9, 0xf2, 0xe8, 0x61, 0xd2, 0xee, 0xad, 0xea, 0x86,
  15234. 0xa2, 0xde, 0xb2, 0xf2, 0xb5, 0x7b, 0xcb, 0x6b, 0x50, 0x77, 0x17, 0x73, 0x8b, 0x2f, 0x43, 0x95,
  15235. 0x6d, 0x6a, 0xee, 0x62, 0xfe, 0x74, 0x89, 0x5e, 0xc2, 0x3d, 0x4e, 0x67, 0x28, 0x92, 0xb9, 0xa6,
  15236. 0x81, 0x13, 0x42, 0xb8, 0x0f, 0xad, 0x54, 0x51, 0xe1, 0xd8, 0xaa, 0x38, 0x6d, 0xa7, 0x9d, 0xfd,
  15237. 0xe8, 0xa1, 0x3a, 0x65, 0x33, 0x2e, 0x32, 0x8e, 0x6c, 0xb2, 0x9d, 0x6d, 0xa5, 0xb0, 0x16, 0x69,
  15238. 0x60, 0x48, 0xa5, 0xba, 0x25, 0x51, 0x89, 0x88, 0x0d, 0x88, 0x20, 0x93, 0x10, 0x1d, 0x21, 0x0d,
  15239. 0x31, 0x81, 0xc2, 0xb7, 0xa0, 0x93, 0xd0, 0xb9, 0x84, 0x80, 0x5c, 0x25, 0x99, 0x46, 0xe0, 0x7b,
  15240. 0xb0, 0xe1, 0xb2, 0x25, 0xb7, 0xf2, 0xe8, 0x26, 0xa2, 0x89, 0x90, 0x9d, 0x64, 0x35, 0xbe, 0x0b,
  15241. 0xed, 0x24, 0x15, 0x21, 0x76, 0x5d, 0x36, 0xb4, 0xf1, 0x2c, 0xc2, 0xae, 0x43, 0x23, 0x2e, 0xa6,
  15242. 0x5a, 0x08, 0xa8, 0x53, 0x59, 0x43, 0xc5, 0xe5, 0x59, 0xc0, 0xc2, 0xc5, 0x8c, 0xab, 0x45, 0xda,
  15243. 0x88, 0xc1, 0xf2, 0xcc, 0x94, 0xf3, 0x88, 0xbd, 0x05, 0xad, 0x28, 0xba, 0x25, 0xae, 0x83, 0xb8,
  15244. 0xf5, 0x68, 0x12, 0x41, 0x3b, 0xd0, 0xf5, 0x03, 0xcf, 0xf7, 0x42, 0x16, 0x58, 0xd4, 0xb6, 0x03,
  15245. 0x16, 0x86, 0xbd, 0xae, 0x5c, 0x2f, 0x9a, 0x3f, 0x90, 0xd3, 0xc6, 0xfb, 0x50, 0x8f, 0xaa, 0xc4,
  15246. 0x0d, 0xa8, 0x0e, 0xe3, 0x4c, 0x54, 0x31, 0xe5, 0x40, 0xf0, 0xd0, 0x81, 0xef, 0xab, 0x3b, 0x11,
  15247. 0xf1, 0x68, 0xfc, 0x02, 0xea, 0xea, 0x83, 0x15, 0x76, 0xca, 0x3f, 0x84, 0x75, 0x9f, 0x06, 0xe2,
  15248. 0x18, 0xe9, 0x7e, 0x39, 0xea, 0x43, 0x8e, 0x69, 0xc0, 0x9f, 0x30, 0x9e, 0x69, 0x9b, 0x9b, 0x88,
  15249. 0x97, 0x53, 0xc6, 0x3d, 0x68, 0x65, 0x30, 0x62, 0x5b, 0xe8, 0x47, 0x51, 0x50, 0xe3, 0x20, 0x7e,
  15250. 0x73, 0x29, 0x79, 0xb3, 0x71, 0x1f, 0xf4, 0xf8, 0xdb, 0x88, 0x72, 0x39, 0x3a, 0xba, 0xa6, 0xcc,
  15251. 0x2d, 0x87, 0x78, 0x15, 0xe0, 0xbd, 0x64, 0x81, 0x8a, 0x09, 0x39, 0x30, 0x9e, 0xa5, 0x92, 0x90,
  15252. 0x64, 0x05, 0x72, 0x07, 0xea, 0x2a, 0x09, 0xa9, 0xa8, 0x8c, 0x9a, 0xfe, 0x63, 0xcc, 0x42, 0x51,
  15253. 0xd3, 0x2f, 0x73, 0x52, 0xb2, 0x6c, 0x29, 0xbd, 0xec, 0x0c, 0x1a, 0x51, 0xa2, 0xc9, 0x66, 0x63,
  15254. 0xb9, 0x62, 0x37, 0x9f, 0x8d, 0xd5, 0xa2, 0x09, 0x50, 0x78, 0x47, 0xe8, 0x4c, 0x5c, 0x66, 0x5b,
  15255. 0x49, 0x08, 0xe1, 0x3b, 0x1a, 0x66, 0x47, 0x0a, 0x1e, 0x47, 0xf1, 0x62, 0xbc, 0x07, 0x35, 0xb9,
  15256. 0xb7, 0xc2, 0xf4, 0x55, 0x44, 0x49, 0x7f, 0xd4, 0xa0, 0x11, 0xe5, 0xe9, 0x42, 0xa5, 0xcc, 0xa6,
  15257. 0x4b, 0x5f, 0x75, 0xd3, 0xff, 0xff, 0xc4, 0x73, 0x07, 0x88, 0xcc, 0x2f, 0xa7, 0x1e, 0x77, 0xdc,
  15258. 0x89, 0x25, 0x6d, 0x2d, 0x73, 0x50, 0x17, 0x25, 0x27, 0x28, 0x38, 0x16, 0xf3, 0x6f, 0xdf, 0x82,
  15259. 0x66, 0xea, 0xee, 0x82, 0xd4, 0xa1, 0xfc, 0x09, 0x7b, 0xd9, 0x5d, 0x23, 0x4d, 0xa8, 0x9b, 0x0c,
  15260. 0x3b, 0xd1, 0xae, 0xb6, 0xf7, 0x59, 0x15, 0x3a, 0x07, 0xc3, 0x07, 0x47, 0x07, 0xbe, 0x3f, 0x73,
  15261. 0xc6, 0x14, 0x5b, 0x97, 0x5d, 0xa8, 0x60, 0xf7, 0x56, 0x70, 0x4b, 0xdd, 0x2f, 0xba, 0x46, 0x20,
  15262. 0x7b, 0x50, 0xc5, 0x26, 0x8e, 0x14, 0x5d, 0x56, 0xf7, 0x0b, 0x6f, 0x13, 0xc4, 0x4b, 0x64, 0x9b,
  15263. 0x77, 0xf1, 0xce, 0xba, 0x5f, 0x74, 0xa5, 0x40, 0x3e, 0x02, 0x3d, 0xe9, 0xae, 0x56, 0xdd, 0x5c,
  15264. 0xf7, 0x57, 0x5e, 0x2e, 0x08, 0xfd, 0xa4, 0x02, 0x5d, 0x75, 0x01, 0xdb, 0x5f, 0xd9, 0x85, 0x93,
  15265. 0x7d, 0xa8, 0x47, 0xb5, 0x7b, 0xf1, 0xdd, 0x72, 0x7f, 0x45, 0xe3, 0x2f, 0xcc, 0x23, 0x1b, 0xa6,
  15266. 0xa2, 0x0b, 0xf0, 0x7e, 0xe1, 0xed, 0x04, 0xb9, 0x0b, 0x35, 0x55, 0x44, 0x15, 0xde, 0x2f, 0xf7,
  15267. 0x8b, 0xdb, 0x77, 0x71, 0xc8, 0xa4, 0x65, 0x5c, 0x75, 0x49, 0xdf, 0x5f, 0x79, 0x8d, 0x42, 0x0e,
  15268. 0x00, 0x52, 0x7d, 0xcf, 0xca, 0xdb, 0xf7, 0xfe, 0xea, 0xeb, 0x11, 0x72, 0x1f, 0x1a, 0xc9, 0x95,
  15269. 0x57, 0xf1, 0x7d, 0x7a, 0x7f, 0xd5, 0x8d, 0xc5, 0xf0, 0xc6, 0xbf, 0xfe, 0xb2, 0xa9, 0xfd, 0xf6,
  15270. 0x7c, 0x53, 0xfb, 0xe2, 0x7c, 0x53, 0xfb, 0xf2, 0x7c, 0x53, 0xfb, 0xc3, 0xf9, 0xa6, 0xf6, 0xe7,
  15271. 0xf3, 0x4d, 0xed, 0x77, 0x7f, 0xdd, 0xd4, 0x46, 0x35, 0x8c, 0x91, 0x0f, 0xfe, 0x13, 0x00, 0x00,
  15272. 0xff, 0xff, 0x92, 0xed, 0x9f, 0xca, 0x3f, 0x1a, 0x00, 0x00,
  15273. }