Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: ADR-049 state sync hooks #10976

Merged
merged 15 commits into from
Feb 15, 2022
Merged

Conversation

adu-web3
Copy link
Contributor

@adu-web3 adu-web3 commented Jan 19, 2022

Description

Closes: #7340

This is the initial draft of ADR-049 state sync hooks based on the discussion of all parties and the proposal from @yihuang in #7340 and the implementation in #10961.


Author Checklist

All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.

I have...

  • included the correct type prefix in the PR title
  • added ! to the type prefix if API or client breaking change
  • targeted the correct branch (see PR Targeting)
  • provided a link to the relevant issue or specification
  • followed the guidelines for building modules
  • included the necessary unit and integration tests
  • added a changelog entry to CHANGELOG.md
  • included comments for documenting Go code
  • updated the relevant documentation or specification
  • reviewed "Files changed" and left comments if necessary
  • confirmed all CI checks have passed

Reviewers Checklist

All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.

I have...

  • confirmed the correct type prefix in the PR title
  • confirmed ! in the type prefix if API or client breaking change
  • confirmed all author checklist items have been addressed
  • reviewed state machine logic
  • reviewed API design and naming
  • reviewed documentation is accurate
  • reviewed tests and test coverage
  • manually tested (if applicable)

@github-actions github-actions bot added the T: ADR An issue or PR relating to an architectural decision record label Jan 19, 2022
Copy link
Contributor

@ethanfrey ethanfrey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the ADR, I was looking for a high-level intro to the work done in #10961 before digging into that.

I ask a few clarifying questions, which may be best resolved by adding a comment to the referenced messages.

At a high-level, this seems to define a way to register a snapshotted, such that more data gets written to the snapshot stream. I do not see some delimiter to mark the end of said stream, which seems like it would be useful to handle errors. Difference between connection break and finalised stream.

Another high-level issue that is missing for me, is how to register the restorers. On the side receiving this packet, we need some way to "restore" the state from these packets, which would parse in such SnapshotExtensionPayload. It would be nice to see a section on that as well.

And maybe how to test this without running a full network, but that is a large question about State Sync not just the hooks design.

int32 height = 4;
}

// SnapshotExtensionMeta contains metadata about an external snapshotter.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here there would be one SnapshotExtensionMeta for x/wasm module, maybe a second one for Ethermint module, etc?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, one for each extension snapshotter. You can have multiple snapshotters.

Copy link
Contributor Author

@adu-web3 adu-web3 Jan 21, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// One module may need multiple snapshotters, so each module may have multiple SnapshotExtensionMeta.

add a comment and hope that can help clarify the question here

// SnapshotExtensionMeta contains metadata about an external snapshotter.
message SnapshotExtensionMeta {
string name = 1;
uint32 format = 2;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

format is globally unique?
like x/wasm needs one, ethermint another, agoric a 3rd?
Or is this used within one namespace?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It’s used within the snapshotter/namespace.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They don't need to globally unique. They need to be unique in the state machine. So if you are 3 different modules that use different types of state sync packets you need formats 1, 2, 3. I don't see why they should be global

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, they are not global, they can be 1 at the same time.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zmanian and @yihuang you are saying different things.

Zaki: They need to be unique in the state machine

This was more or less what I meant by globally unique (on the chain). That you cannot have 2 modules on the same chain both using format 1.

Yi Huang: yes, they are not global, they can be 1 at the same time.

This is what I understood the answer to be, that (name, format) must be unique within this state machine. (And if we keep name globally unique, then we only have to consider format in the context of our own module).

Copy link
Collaborator

@yihuang yihuang Jan 24, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To clarify there are two formats at play in the snapshot:

  • one is the snapshot format currently used, it decides both the msg serialization/chunking and multi-store snapshot formats.
  • then it's the extension snapshotter formats, they are only used by each extension snapshotter to decide the format of payloads included in SnapshotExtensionPayload message. So they are not related to one another.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is what I understood the answer to be, that (name, format) must be unique within this state machine. (And if we keep name globally unique, then we only have to consider format in the context of our own module).

technically speaking we can have duplicated names in the stream, it just means the snapshotter's Restore methods will be called multiple times. But I don't think that makes much sense, maybe we should even validate to prevent that situation.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is somewhat confusing. I recommend updating the field comment to be very explicit.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Up. It would be good to clarify if name is unique, or (name, format) is. IMO first one is simpler.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Up. It would be good to clarify if name is unique, or (name, format) is. IMO first one is simpler.

name is unique in current implementation.

@yihuang
Copy link
Collaborator

yihuang commented Jan 20, 2022

Thank you for the ADR, I was looking for a high-level intro to the work done in #10961 before digging into that.

I ask a few clarifying questions, which may be best resolved by adding a comment to the referenced messages.

At a high-level, this seems to define a way to register a snapshotted, such that more data gets written to the snapshot stream. I do not see some delimiter to mark the end of said stream, which seems like it would be useful to handle errors. Difference between connection break and finalised stream.

The chunk hashes should be able to ensure data integrity, so I think we don’t need to worry about that at app level. I guess we should also briefly explain how compression and chunking are handled.

Another high-level issue that is missing for me, is how to register the restorers. On the side receiving this packet, we need some way to "restore" the state from these packets, which would parse in such SnapshotExtensionPayload. It would be nice to see a section on that as well.

There’s a public method RegisterExtensions([]NamedSnapshotter…), you call this to register the snapshotters when setup app, it’ll handle both taking snapshot and restoration. We should introduce that in this adr too.

And maybe how to test this without running a full network, but that is a large question about State Sync not just the hooks design.

Copy link
Contributor

@ethanfrey ethanfrey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates.
The uniqueness requirements of format is a critical design decision and it seems like there are 2 opinions here. It would be great if you both and discuss which one is correct, so that can be properly documented.

// SnapshotExtensionMeta contains metadata about an external snapshotter.
message SnapshotExtensionMeta {
string name = 1;
uint32 format = 2;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zmanian and @yihuang you are saying different things.

Zaki: They need to be unique in the state machine

This was more or less what I meant by globally unique (on the chain). That you cannot have 2 modules on the same chain both using format 1.

Yi Huang: yes, they are not global, they can be 1 at the same time.

This is what I understood the answer to be, that (name, format) must be unique within this state machine. (And if we keep name globally unique, then we only have to consider format in the context of our own module).

// SnapshotExtensionMeta contains metadata about an external snapshotter.
message SnapshotExtensionMeta {
string name = 1;
uint32 format = 2;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you two can discuss this and determine which interpretation is correct (I am inclined to accept Yi Huang's answer as he is working on this code, but Zaki knows details about the state sync abci framework that the rest of us are missing)

For extension snapshotters that have implemented the `NamedSnapshotter` interface, their names should be registered to the snapshotter `Manager` by calling
`RegisterExtensions` when setting up the application.
For extension snapshotters that implement the `NamedSnapshotter` interface, their names should be registered to the snapshot `Manager` by
calling `RegisterExtensions` when setting up the application. And the snapshotters will handle both taking snapshot and restoration.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, key point here. Thanks

@@ -148,7 +154,7 @@ As a result of this implementation, we are able to create snapshots of binary ch

### Backwards Compatibility

This ADR introduces new proto message types, add field for extension snapshotters to snapshot `Manager`, add new function signatures `SnapshotFormat()`, `SupportedFormats()` to `Snapshotter` interface and add new `NamedSnapshotter` interface, so this is not backwards compatible.
This ADR introduces new proto message types, add field for extension snapshotters to snapshot `Manager`, add new function signatures `SnapshotFormat()`, `SupportedFormats()` to `Snapshotter` interface and add new `ExtensionSnapshotter` interface, so this is not backwards compatible.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be worth mentioning that the wire format of the snapshot is backward compatible when there's no ExtensionSnapshotter registered.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, I think this is significant for application chains that don't have additional state to take snapshots.
So for application chains of this kind, this ADR should be completely backwards compatible?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, let's add some wording that the stream is backwards-compatible if no extension is registered.

Copy link
Member

@tac0turtle tac0turtle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks of the ADR and sorry for the long time to get you a response.

We should mention that even though this data is outside the tree, for determinism we require a hash of the external data to be posted in the tree.

General design looks good to me.

@adu-web3
Copy link
Contributor Author

adu-web3 commented Feb 7, 2022

Thanks of the ADR and sorry for the long time to get you a response.

We should mention that even though this data is outside the tree, for determinism we require a hash of the external data to be posted in the tree.

General design looks good to me.

thanks for your advice.
I have add this detail in the doc

A simple proposal based on our existing implementation is that, we can add two new message types: `SnapshotExtensionMeta` 
and `SnapshotExtensionPayload`, and they are appended to the existing multi-store stream with `SnapshotExtensionMeta` 
acting as a delimiter between extensions. Even for modules that maintain the data outside of the tree, for determinism we
require that the hash of the external data should be posted in the IAVL tree. As the chunk hashes should be able to ensure 
data integrity, we don't need a delimiter to mark the end of the snapshot stream.

delimiter to mark the end of the snapshot stream.
acting as a delimiter between extensions. Even for modules that maintain the data outside of the tree, for determinism we
require that the hash of the external data should be posted in the IAVL tree. As the chunk hashes should be able to ensure
data integrity, we don't need a delimiter to mark the end of the snapshot stream.
Copy link
Collaborator

@yihuang yihuang Feb 7, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the purpose of posting the external state hash into the IAVL tree is to commit the external state in the app hash/header hash. so the state sync client can validate the data against the header hash.

Copy link
Contributor Author

@adu-web3 adu-web3 Feb 7, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about change this sentence like this:

Even for modules that maintain the data outside of the tree, for the purpose of the state sync client being able to validate the data against the header hash, we require that the hash of the external data should be posted in the IAVL tree. As the state sync client could validate the data integrity against the header hash, we don't need a delimiter to mark the end of the snapshot stream.

Copy link
Collaborator

@yihuang yihuang Feb 7, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what do you mean by , we don't need a delimiter to mark the end of the snapshot stream.? I think the delimiter is irrelevant here. we still need the meta item to separate the extension snapshots.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I add this sentence to clarify the question from @ethanfrey I do not see some delimiter to mark the end of said stream, which seems like it would be useful to handle errors. Difference between connection break and finalised stream.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I add this sentence to clarify the question from @ethanfrey I do not see some delimiter to mark the end of said stream, which seems like it would be useful to handle errors. Difference between connection break and finalised stream.

We have chunk hashes to detect a corrupted stream, so there's no problem here I think.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so chunk hashes should be something different from the hash in the merkle tree, right?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so chunk hashes should be something different from the hash in the merkle tree, right?

yes, it's different. chunk hashes are for data integrity check during transport, merkle tree hash is for on-chain consensus check.

Copy link
Contributor

@alexanderbez alexanderbez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. I left some formatting and general grammatical feedback. Overall, I think the approach is solid.

docs/architecture/adr-049-state-sync-hooks.md Outdated Show resolved Hide resolved
docs/architecture/adr-049-state-sync-hooks.md Outdated Show resolved Hide resolved
docs/architecture/adr-049-state-sync-hooks.md Outdated Show resolved Hide resolved
docs/architecture/adr-049-state-sync-hooks.md Outdated Show resolved Hide resolved
docs/architecture/adr-049-state-sync-hooks.md Outdated Show resolved Hide resolved
docs/architecture/adr-049-state-sync-hooks.md Outdated Show resolved Hide resolved
docs/architecture/adr-049-state-sync-hooks.md Outdated Show resolved Hide resolved
docs/architecture/adr-049-state-sync-hooks.md Outdated Show resolved Hide resolved
docs/architecture/adr-049-state-sync-hooks.md Outdated Show resolved Hide resolved
docs/architecture/adr-049-state-sync-hooks.md Outdated Show resolved Hide resolved
adu-web3 and others added 2 commits February 14, 2022 17:36
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Copy link
Contributor

@amaury1093 amaury1093 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, pending a couple of last clarifying comments

docs/architecture/adr-049-state-sync-hooks.md Outdated Show resolved Hide resolved
Comment on lines +71 to +76
// extension1 snapshot
SnapshotExtensionMeta
{SnapshotExtensionPayload, ...}
// extension2 snapshot
SnapshotExtensionMeta
{SnapshotExtensionPayload, ...}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the ordering of these extensions in the stream if we register multiple in RegisterExtensions? Alphabetical by name?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's alphabetical by name in current implementation.

Copy link
Contributor

@amaury1093 amaury1093 Feb 14, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good, would like to see some wording for this. i suppose name should be unique then (ref: #10976 (comment))?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good, would like to see some wording for this. i suppose name should be unique then (ref: #10976 (comment))?

yes

// SnapshotExtensionMeta contains metadata about an external snapshotter.
message SnapshotExtensionMeta {
string name = 1;
uint32 format = 2;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Up. It would be good to clarify if name is unique, or (name, format) is. IMO first one is simpler.

@tac0turtle tac0turtle added the A:automerge Automatically merge PR once all prerequisites pass. label Feb 15, 2022
@mergify mergify bot merged commit d10034f into cosmos:master Feb 15, 2022
@adu-web3 adu-web3 deleted the state-sync-hooks-adr branch February 16, 2022 06:54
adu-web3 added a commit to adu-web3/cosmos-sdk that referenced this pull request Mar 7, 2022
* [WIP] refactor multistore => root store

simapp, baseapp and dependencies
update db interface
options refactor
app.CloseStore()
LoadLatestVersion => Init
...

* baseapp - disable snapshot tests

* store updates, fixes

"as cache" glue funcs

* updates, rf

fix storeloader test

* changelog + docs

* fixes

group keeper: remove redundant iter.Close()

* changelog fix

* cleanup

* nit, StoreConfig =>StoreParams

* store doc

* store rearrange

* godoc nits

* rm StoreConstructor

not needed after all

* compatibility wrapper for original MultiStore interface

* rename BasicMultiStore -> MultiStore

* docs: proto generation scripts (#11133)

## Description

+ Updates proto generation scripts
+ adds more docs on how to install protoc dependencies

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* build(deps): Bump amannn/action-semantic-pull-request (#11153)

Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/master/CHANGELOG.md)
- [Commits](https://github.com/amannn/action-semantic-pull-request/compare/v4.1.0...v4.2.0)

---
updated-dependencies:
- dependency-name: amannn/action-semantic-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): Bump actions/setup-go from 2.1.5 to 2.2.0 (#11154)

Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.1.5 to 2.2.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v2.1.5...v2.2.0)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): Bump github.com/jhump/protoreflect from 1.10.2 to 1.10.3 (#11155)

Bumps [github.com/jhump/protoreflect](https://github.com/jhump/protoreflect) from 1.10.2 to 1.10.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/jhump/protoreflect/releases">github.com/jhump/protoreflect's releases</a>.</em></p>
<blockquote>
<h2>v1.10.3</h2>
<p>This release contains several fixes to the <code>desc/protoparse</code> package and one fix to the <code>grpcreflect</code> package.</p>
<h3>&quot;github.com/jhump/protoreflect/desc/protoparse&quot;</h3>
<p>Changes/fixes:</p>
<ul>
<li>If a custom option value contains a message literal, <code>protoc</code> accepts identifiers <code>t</code>, <code>f</code>, <code>True</code>, and <code>False</code> as synonyms for <code>true</code> and <code>false</code>. Use of these alternate spellings would be rejected by this package. This is now fixed so that this package accepts the same values as <code>protoc</code>.</li>
<li>If a custom option refers to an enum which has values named <code>true</code> or <code>false</code>, this package would reject the option, misunderstanding the <code>true</code> or <code>false</code> identifier to be a boolean literal instead of an enum value name. This has been fixed.</li>
<li>There were several cases where references to a custom option or extension, in an option name or in a message literal, were resolved differently by this package than by <code>protoc</code>. This lead to some variances -- some source files that <code>protoc</code> would accept but that this package would not (because it was unable to resolve a reference), and some source files that this package would accept but that <code>protoc</code> would reject (because this package was using different lexical scoping rules during resolution). This has been fixed and this package now resolves extension names the same way as <code>protoc</code>.</li>
<li>When specifying a custom option value for a message whose type is <code>google.protobuf.Any</code>, <code>protoc</code> supports a special syntax that makes it possible to use a simple text format for the contained message, instead of having to include a byte string representation of a marshaled/encoded value. This package did not previously implement that syntax, so would reject proto sources that used it. This has been remedied, and the special syntax is now supported by this package.</li>
<li>This package would previously accept a <code>repeated</code> extension for a message that used message-set wire format. However, only <code>optional</code> extensions are allowed for such messages. This has been fixed, and proto sources that try to define such a <code>repeated</code> extension will be rejected.</li>
<li>Extensions are not allowed to set a <code>json_name</code> option, however this package was accepting proto sources that did so. This has been fixed, and proto sources that define an extension with the <code>json_name</code> option will be rejected.</li>
</ul>
<h3>&quot;github.com/jhump/protoreflect/grpcreflect&quot;</h3>
<p>Changes/fixes:</p>
<ul>
<li>In some cases, servers implementing the reflection service has been observed to incorrectly include extra file descriptors in response to a <code>file_containing_symbol</code> request. Also, the reflection service does not actually specify any ordering requirements for responses that choose to include more than one file. But this package mistakenly assumed an ordering (based on an older implementation of the reflection service in the official Java runtime), which could cause such cases (responses with multiple or even superfluous files) to return the incorrect file descriptor. This has been fixed. Now all responses to <code>file_containing_symbol</code>, <code>file_containing_extension</code> and <code>file_by_filename</code> requests correctly support multiple files (even superfluous ones) in any order.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/jhump/protoreflect/commit/65315df2c2942f100121ac93d92319eb0d0395c1"><code>65315df</code></a> protoparse: message-set extensions must be optional (<a href="https://github-redirect.dependabot.com/jhump/protoreflect/issues/489">#489</a>)</li>
<li><a href="https://github.com/jhump/protoreflect/commit/4ced19e52d8d9d531d1273028cb11943880c7e97"><code>4ced19e</code></a> protoparse: extensions are not allowed to use json_name option (<a href="https://github-redirect.dependabot.com/jhump/protoreflect/issues/488">#488</a>)</li>
<li><a href="https://github.com/jhump/protoreflect/commit/38023d35f21c53f9e33051333f88e5312bb1124d"><code>38023d3</code></a> grpcreflect: handle case where server sends back multiple files (<a href="https://github-redirect.dependabot.com/jhump/protoreflect/issues/487">#487</a>)</li>
<li><a href="https://github.com/jhump/protoreflect/commit/1bb2aa9349c21cd01d4a1137769f0192e8e6b2ab"><code>1bb2aa9</code></a> protoparse: add support for special syntax for Any messages in message litera...</li>
<li><a href="https://github.com/jhump/protoreflect/commit/260eab9e91b970770c3ea1bdb44319a7ff3cce4c"><code>260eab9</code></a> protoparse: fix extension resolution in custom options to match protoc (<a href="https://github-redirect.dependabot.com/jhump/protoreflect/issues/484">#484</a>)</li>
<li><a href="https://github.com/jhump/protoreflect/commit/d4949d2b823ebe4ed589249501f890de833bca6c"><code>d4949d2</code></a> improvements to protoparse's handling of message literals in custom options (...</li>
<li>See full diff in <a href="https://github.com/jhump/protoreflect/compare/v1.10.2...v1.10.3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/jhump/protoreflect&package-manager=go_modules&previous-version=1.10.2&new-version=1.10.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* docs: Improve markdownlint configuration (#11104)

## Description

Closes: #9404



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [x] reviewed "Files changed" and left comments if necessary
- [x] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* feat: add grants by grantee authz query (#10944)

* fix(cosmovisor): fix version when 'go install ...cosmovisor' (#10460)

## Description

Closes: #10459

TODO:
- [x] Crete prepare-release make job to update the version number.

NOTE: I'm not sure if there is a good and simple way to automate this.

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* cosmovisor v1.1 udpates (#11160)

* feat: Add percentage decision policy to x/group (#11072)

## Description

Closes: #10946 

Add a percentage decision policy to group module.

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* perf: add inplace decimal operations (#11004)

closes #9046

* add mutable decimal methods

* fix root

* gofmt

* add Clone(), rm assignment quo

* add SetInt64

* fix SetInt64

* More mut speedups

Co-authored-by: mconcat <monoidconcat@gmail.com>
Co-authored-by: ValarDragon <dojha12@gmail.com>




---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* chore: add cosmovisor v1.1 release notes (#11162)

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* docs: add mention of modes from 0.35 (#11167)

* fix proto generation (#11169)

* feat: supply by denom as param (#11170)

* change to param

* generate proto and fix tests

* changelog entry

* move changelog

* fix(orm): ValidateJSON fails when tables are missing (#11174)

* refactor!: remove 'keep-every' from pruning (#11152)

* fix: Fix `raw_log` when ABCIMessageLog.MsgIndex is 0 (#11147)

This will make sure `raw_log` always shows `msg_index`, and not just when it's 1 or above.



## Description

Closes: #XXXX



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* feat:  Add debug pubkey-raw cli command (#11006)

## Description

Very handy to inspect pubkeys that were stored in legacy bech32 format.  This is the case for a lot of multisig management.



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [x] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [x] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* patch multistore

to be consistent with v1, upgrades shouldn't be a slice

fix query and tests

* patch compat store

* refactor: Align on gov/group Proposals and Vote syntax (#11097)

## Description

Closes: #11070

- Proto-breaking changes:
  - group Choice -> VoteOption
  - group MsgCreateProposal -> MsgSubmitProposal
  - group enums -> prepend `PROPOSAL_` (e.g. `PROPOSAL_STATUS_`, `PROPOSAL_RESULT_`)
  - group Tally -> TallyResult
- CLI-breaking changes:
  - group submit proposal: takes a single arg which is a proposal.json file



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* refactor(orm)!: rename table interfaces from Store -> Table in codegen (#11176)

## Description

I realize it's more intuitive to name the interfaces in codegen `FooTable` rather than `FooStore` for the type `Foo`.

Since we (and possibly others) are starting to build off of this, better to change now rather than later.

How does this change look?



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* fix: failing tests in x/group (#11184)

* fix: failing tests in `x/group`

* add comments

* unnecessary line of code

* docs: Code blocks in SDK docs are broken (#11189)

* multi store- use StoreKey instances, not strings

* wrap v1 MultiStore in v2 interface; use in baseapp

* viewstore.CacheStore() replaces CacheMultiStoreWithVersion

* test cleanup

* trace context fence

backport https://github.com/cosmos/cosmos-sdk/pull/11117

* get all versions

backport https://github.com/cosmos/cosmos-sdk/pull/11124

* fix: non consistent keyring (#10844)

## Description

Normally keyring module creates two record for each public key created in keyringdb.
The first one with an address as a key witch contains only name of the second key, wich actually contains a public key
![Screenshot_20211227_173827](https://user-images.githubusercontent.com/62722506/147482783-ffd495e6-7f16-4497-b1a3-50e9db90e1e8.png)

But a couple of times we have faced an issue, when the first record exists, and the second for some reason does not. 
![Screenshot_20211227_173846](https://user-images.githubusercontent.com/62722506/147482893-ffe159fd-9eeb-493f-a9db-75c7ccedbf80.png)

In such case you are unable to import public key due to error
```shell
$ go run ./cmd/terrad/ keys --keyring-backend kwallet add swelf --pubkey '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Ap1W7ww/FaZVpAd487QUVXh7Nmxk4FlREr5IGPuzEnJu"}'
Error: public key already exists in keybase
```
in the same time terrad cli do not see any keys in the keyring
```shell
$ go run ./cmd/terrad/ keys --keyring-backend kwallet list
[]
```
The error occurs when the record with address still exists in the keyring db.

I would like to resolve the error.
I see at least three different ways to do it.
1) Informing the user about situation and recreate public key
```shell
$ go run ./cmd/terrad/ keys --keyring-backend kwallet add swelf --pubkey '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Ap1W7ww/FaZVpAd487QUVXh7Nmxk4FlREr5IGPuzEnJu"}'
**address "7cc4633deb18c0531b382a50275ad94e05f84580" exists but pubkey itself does not
recreating pubkey record**

- name: swelf
  type: offline
  address: terra10nzxx00trrq9xxec9fgzwkkefczls3vqkpkjl4
  pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Ap1W7ww/FaZVpAd487QUVXh7Nmxk4FlREr5IGPuzEnJu"}'
  mnemonic: ""
```
with notifying user about an issue
2) Asking the user to confirm procedure of restoring public key
3) Just informing user about an issue and do nothing.

I prefer the first way, i do not see a reason when user do not want to fix an issue.

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* build(deps): Bump github.com/jhump/protoreflect from 1.10.3 to 1.11.0 (#11183)

Bumps [github.com/jhump/protoreflect](https://github.com/jhump/protoreflect) from 1.10.3 to 1.11.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/jhump/protoreflect/releases">github.com/jhump/protoreflect's releases</a>.</em></p>
<blockquote>
<h2>v1.11.0</h2>
<h3>&quot;github.com/jhump/protoreflect/desc/protoprint&quot;</h3>
<p>Changes/fixes:</p>
<ul>
<li>If an option on a method included comments and was the kind of option that <code>protoprint</code> is able to handle, they would fail to be included in the printed output. Options were supported on all other types, just not on methods. This has been remedied: methods now have the same support for options comments as other elements.</li>
<li>The <code>Printer</code> type includes three new fields, to control formatting of complex options: <code>ShortOptionsExpansionThresholdCount</code> and <code>ShortOptionsExpansionThresholdLength</code> control when &quot;short options&quot; will be expanded to multiple lines, based on the number of options and the length of the options when rendered; <code>MessageLiteralExpansionThresholdLength</code> controls when message literals in option values will be expanded to multi-line form, based on if the length of the rendered string is too long.</li>
</ul>
<h3>&quot;github.com/jhump/protoreflect/grpcreflect&quot;</h3>
<p>Changes/fixes:</p>
<ul>
<li>The <code>LoadServiceDescriptors</code> function now accepts an interface, not just the concrete type <code>*grpc.Server</code>. Since <code>*grpc.Server</code> implements the interface, this change should be <em>mostly</em> backwards compatible. However, if there are usages that rely on the precise signature, such as assigning to a function variable whose signature requires <code>*grpc.Server</code>, this is a minor breaking change. Such usage is not expected.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/jhump/protoreflect/commit/e5b652849f7f16dfb9db81453ec5d2804266750b"><code>e5b6528</code></a> protoprint: new fields to control expanding short options and message literal...</li>
<li><a href="https://github.com/jhump/protoreflect/commit/0e352ebba5222fa2fd794602e6b762830f8e0d0d"><code>0e352eb</code></a> protoprint: fix bug where comments on method options were not included in out...</li>
<li><a href="https://github.com/jhump/protoreflect/commit/6224817bacc55de881e0ffd48a6350e01795d5a9"><code>6224817</code></a> grpcdynamic, grpcreflect: use grpc.ClientConnInterface and reflection.GRPCSer...</li>
<li><a href="https://github.com/jhump/protoreflect/commit/c329f1e3b99b2407ae7fc9925d260d43506d7885"><code>c329f1e</code></a> some cleanup in Makefile, CI config, and dependencies (<a href="https://github-redirect.dependabot.com/jhump/protoreflect/issues/490">#490</a>)</li>
<li>See full diff in <a href="https://github.com/jhump/protoreflect/compare/v1.10.3...v1.11.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/jhump/protoreflect&package-manager=go_modules&previous-version=1.10.3&new-version=1.11.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* docs: ADR-049 state sync hooks (#10976)

## Description

Closes: #7340 

This is the initial draft of ADR-049 state sync hooks based on the discussion of all parties and the proposal from @yihuang  in #7340 and the implementation in #10961.



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* feat(orm): support nil PageRequest (#11171)

## Description

Closes: #XXXX



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* disable url parameter in swagger-ui page (#11202)

Closes: #11201
Solution:
- update swagger-ui to recent release
- add option `queryConfigEnabled: false`

* fix: gov 0.46 migration (#11206)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* feat(authz)!: pruning expired authorizations (#10714)

## Description

Ref: #8311 
closes: #10611 



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [x] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [x] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* chore: rename migrations v045 -> v046 (#11210)

* feat(baseapp): support pulsar gRPC query servers (#11192)

## Description

This adds support for registering gRPC query server implementations that were generated using pulsar. It should make integration with the ORM easier.

This should be backportable.

This does not enable support for pulsar msg servers or tx's.



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* patches

* build(deps): Bump url-parse from 1.5.3 to 1.5.7 in /docs (#11221)

Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.3 to 1.5.7.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.3...1.5.7)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docs: ADR 047: Extend Upgrade Plan - Initial Draft (#10602)

## Description

This PR creates a DRAFT ADR document discussing additions to the software upgrade `Plan` proto, `x/upgrade` module, and `Cosmovisor`.

Closes: #10583

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [x] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [ ] ~~followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)~~ _N/A_
- [ ] ~~included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)~~ _N/A_
- [ ] ~~added a changelog entry to `CHANGELOG.md`~~ _N/A_
- [ ] ~~included comments for [documenting Go code](https://blog.golang.org/godoc)~~ _N/A_
- [ ] ~~updated the relevant documentation or specification~~ _N/A_
- [x] reviewed "Files changed" and left comments if necessary
- [ ] ~~confirmed all CI checks have passed~~ _N/A_

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* patches

* fix v1asv2 commit

* feat: Allow to restrict MintCoins from app.go (#10771)

## Description

Closes: https://github.com/cosmos/cosmos-sdk/issues/10386

This PR adds feature to the bank module so that other modules using bankKeeper would be able to call the keeper with restricted permissions when minting coins. `WithMintCoinsRestriction` would be able to get called within app.go when setting keeper components for each individual keeper, taking a function that would validate minting denom as an argument.

The example below demonstrates adding bank module with restricted permissions.
```
	app.DistrKeeper = distrkeeper.NewKeeper(
		appCodec, keys[distrtypes.StoreKey], app.GetSubspace(distrtypes.ModuleName), app.AccountKeeper, app.BankKeeper.WithMintCoinsRestriction(DistributionMintingRestriction),
		&stakingKeeper, authtypes.FeeCollectorName, app.ModuleAccountAddrs(),
	)
```
while there would be a seperate function that would restrict and validate allowed denoms as such.

```

func DistributionMintingRestriction(ctx sdk.Context, coins sdk.Coins) errors {
  for _, coin := range coins {
    if coin.Denom != ctx.NativeStakingDenom {
       return errors.New(fmt.Sprintf("Distribution can only print denom %s, tried minting %s", ctx.NativeStakingDenom, coin.Denom))
     }
  }
}
```

The sdk's simapp currently does not have any keepers that are to be changed with this implementation added, thus remaining unchanged in `app.go`.







---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* docs: improve RegisterMigration docs (#11225)

## Description

Small documentation improvement. By reading the function header I thought `forVersion` will mean the `destination` and made a bug. So, I propose to use more clear function argument name: `forVersion` -> `fromVersion`. 

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* feat: Add `MsgCreateGroupWithPolicy` to x/group (#10963)

## Description

Closes: #10655

This PR adds a new msg MsgCreateGroupWithPolicy
It has a boolean field GroupPolicyAsAdmin, if set to true, that would update also the admin of the newly created group and group policy to the group policy address itself

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* chore: retract v0.43.0 from usage (#11211)

## Description

realised we never retracted 0.43.0

https://go.dev/ref/mod#go-mod-file-retract

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* build(deps): Bump bufbuild/buf-setup-action from 0.7.0 to 1.0.0 (#11231)

Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 0.7.0 to 1.0.0.
- [Release notes](https://github.com/bufbuild/buf-setup-action/releases)
- [Commits](https://github.com/bufbuild/buf-setup-action/compare/v0.7.0...v1.0.0)

---
updated-dependencies:
- dependency-name: bufbuild/buf-setup-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: move from relative links to git links (#11238)

* move from relative links to git links

* permalinks

* build(deps): Bump github.com/tendermint/tm-db in /orm (#11244)

Bumps [github.com/tendermint/tm-db](https://github.com/tendermint/tm-db) from 0.6.6 to 0.6.7.
- [Release notes](https://github.com/tendermint/tm-db/releases)
- [Changelog](https://github.com/tendermint/tm-db/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tendermint/tm-db/compare/v0.6.6...v0.6.7)

---
updated-dependencies:
- dependency-name: github.com/tendermint/tm-db
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): Bump github.com/jhump/protoreflect from 1.11.0 to 1.12.0 (#11243)

Bumps [github.com/jhump/protoreflect](https://github.com/jhump/protoreflect) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/jhump/protoreflect/releases)
- [Commits](https://github.com/jhump/protoreflect/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: github.com/jhump/protoreflect
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: implement Amino serialization for x/authz and x/feegrant (#11224)

* fix: Add RegisterLegacyAminoCodec for authz/feegrant

* add module name

* Fix GetSignByes, add tests

* removed module names from registered messages to match other modules

* added interfaces and concrete types registration

* unseal amino instances to allow external grant and authorization registration

* fixed messages tests

* allow to register external types into authz modulecdc

* use legacy.Cdc instead of ModuleCdc inside x/authz

* move the legacy.Cdc initialization outside init function

* added serialization docs

* Update docs/core/encoding.md

Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>

* added the Ledger specification

* fixed tests

Co-authored-by: Amaury M <1293565+amaurym@users.noreply.github.com>

* feat: Add ics23 proof tools: `ics23-{iavl,tendermint,smt}` (#10802)

Moves the separate repos for ICS23 proof tooling into `store/tools`

I've set `github.com/confio/ics23/go` to version 0.7.0 in anticipation of https://github.com/confio/ics23/pull/61 being merged, as it's a dependency for SMT proofs, so this shouldn't be merged until that version exists.

Closes: https://github.com/cosmos/cosmos-sdk/issues/10801



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [x] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks h…
mhofman pushed a commit to agoric-labs/cosmos-sdk that referenced this pull request Feb 24, 2023
Closes: cosmos#7340

This is the initial draft of ADR-049 state sync hooks based on the discussion of all parties and the proposal from @yihuang  in cosmos#7340 and the implementation in cosmos#10961.

(cherry picked from commit d10034f)
mhofman pushed a commit to agoric-labs/cosmos-sdk that referenced this pull request Mar 8, 2023
Closes: cosmos#7340

This is the initial draft of ADR-049 state sync hooks based on the discussion of all parties and the proposal from @yihuang  in cosmos#7340 and the implementation in cosmos#10961.

(cherry picked from commit d10034f)
mhofman pushed a commit to agoric-labs/cosmos-sdk that referenced this pull request Mar 14, 2023
Closes: cosmos#7340

This is the initial draft of ADR-049 state sync hooks based on the discussion of all parties and the proposal from @yihuang  in cosmos#7340 and the implementation in cosmos#10961.

(cherry picked from commit d10034f)
mhofman pushed a commit to agoric-labs/cosmos-sdk that referenced this pull request Mar 23, 2023
Closes: cosmos#7340

This is the initial draft of ADR-049 state sync hooks based on the discussion of all parties and the proposal from @yihuang  in cosmos#7340 and the implementation in cosmos#10961.

(cherry picked from commit d10034f)
JeancarloBarrios pushed a commit to agoric-labs/cosmos-sdk that referenced this pull request Sep 28, 2024
Closes: cosmos#7340

This is the initial draft of ADR-049 state sync hooks based on the discussion of all parties and the proposal from @yihuang  in cosmos#7340 and the implementation in cosmos#10961.

(cherry picked from commit d10034f)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A:automerge Automatically merge PR once all prerequisites pass. T: ADR An issue or PR relating to an architectural decision record
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add hooks to allow app modules to add things to state-sync
8 participants