## 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)
## 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)
## Description
+ fixing `x/bank/migrations/v44.migrateDenomMetadata` - we could potentially put a wrong data in a new key if the old keys have variable length.
+ linting the code
Putting in the same PR because i found the issue when running a linter.
Depends on: #10112
---
### 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))
- [ ] 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)
## Description
Ref: #9707
<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->
Add `client.md` page to `bank` module spec.
---
### 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 `docs:` prefix in the PR title
- [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 [documentation writing guidelines](https://github.com/cosmos/cosmos-sdk/blob/master/docs/DOC_WRITING_GUIDELINES.md)
- [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 `docs:` prefix in the PR title
- [ ] confirmed all author checklist items have been addressed
- [ ] confirmed that this PR only changes documentation
- [ ] reviewed content for consistency
- [ ] reviewed content for thoroughness
- [ ] reviewed content for spelling and grammar
- [ ] tested instructions (if applicable)
* Add back supply proto
* Add migration for supply
* Fix lint
* Update x/bank/spec/01_state.md
* Fix test
* Proto gen
* Update x/bank/spec/01_state.md
* Make proto gen
Co-authored-by: Jonathan Gimeno <jgimeno@gmail.com>
* change(bank): add utxo events and simplify logic
* add(bank): balance and supply tracking test
* chore(bank): fix balance tracking test comment
* fix(grpc): service test
* fix(bank): sub unlocked coins to use less gas
* fix(auth): cli test gas
* fix(rest): grpc gas test
* fix(staking/cli): increase delegation required gas
* add: burn events, fix tests
* fix(auth/tx): grpc test
* add(bank): coin events in delegate
* fix(bank): add amt check in delegate coins back
* change(bank): add coin spent and coin recv events in burn and mint
* change(bank): revert sub coin function
* change(auth): revert cli test
* change(auth): revert service test
* chore(auth): fix events comment in service_test.go
* chore: update CHANGELOG.md
* remove(bank): balanceError func
* chore(bank): address lint warnings
* chore(bank): update events spec
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* temp commit
* setbalance now is internal
* remove set balances in genesis
* feedback test commit
* update tests
* fix: genesis panic message
* fix not bonded pool
* fix(staking): genesis test
* fix(simapp): rollback state fix change
* fix(staking): genesis large val set test
* [Bank Refactor] Frojdi jonathan/remove setsupply (#8491)
* init supply in a different way
* remove external usage of set supply
* change(staking): replace SetSupply with MintCoins in tests
* change(evidence): replace SetSupply with MintCoins in tests
* change(crisis): remove SetSupply in tests
* change(bank): remove set supply from genesis tests
* change(bank): remove set supply from keeper tests
* change(bank): remove remaining set supply usage from keeper tests
* change(bank): remove set supply usage from grpc query and querier tests
* change(bank): remove SetSupply from keeper interface
Co-authored-by: Frojdi Dymylja <frojdi.dymylja@gmail.com>
* remove setbalances from genesis in gov
* remove keyring
* add init genesis state
* change(staking): make genesis checks coherent and add tests
* remove setbalances on distribution
* fix(staking): genesis tests
* [Bank Refactor]: Remove SetBalances usage from the code and tests (#8509)
* change(distribution): remove SetBalances usage from keeper tests
* add(simapp): FundAccount utility function
* chore(staking): use FundAccount in keeper tests
* change(staking): remove usage of SetBalance in allocation tests
* change(staking): remove usage of SetBalance in delegation tests
* change(staking): remove usage of SetBalance in proposal handler tests
* change(staking): remove usage of SetBalances in grpc query tests
* change(staking): remove usage of SetBalances in operations tests
* change(distribution): remove usage of SetBalances in genesis
* change(authz): remove usage of SetBalances keeper and operations test
* fix(authz): TestKeeperFees failing test
* change(slashing): remove SetBalances from expected BankKeeper
* change(slashing): remove usage of SetBalances in tests
* change(distribution): remove SetBalances from expected BankKeeper
* change(genutil): remove usage of SetBalances from tests
* change(gov): remove SetBalances from expected BankKeeper
* change(gov): remove usage of SetBalances from tests
* change(staking): remove usage of SetBalances from slash tests
* change(staking): remove SetBalances from expected BankKeeper
* change(staking): remove usage of SetBalances from delegation tests
* change(staking): remove usage of SetBalances from operations tests
* change(staking): remove usage of SetBalances from validator tests
* change(bank): remove usage of SetBalances from app tests
* change(bank): remove usage of SetBalances from bench tests
* change(bank): remove usage of SetBalances from querier tests
* change(bank): remove usage of SetBalances from grpc query tests
* change(bank): remove usage of SetBalances from operations tests
* change(bank): partially remove usage of SetBalances from keeper tests
* change(bank): finalize removal of usage of SetBalances from keeper tests
* change(auth): remove usage of SetBalances from verify tests
* change(auth): partially remove usage of SetBalances from tests
* [Bank refactor]: finalize removal of setbalances from auth (#8527)
* add tests with is check tx
* temp commit
* fix test
* fix other test and remove setbalances
* change(auth): remove usage of SetBalances is vesting tests
Co-authored-by: Jonathan Gimeno <jgimeno@gmail.com>
* change(types): remove usage of SetBalances in queries
* fix(types): pagination tests
* [Bank refactor] fix pagination tests (#8550)
* fix tests
* lint
* change(bank): remove SetBalances from keeper public API
Co-authored-by: Jonathan Gimeno <jgimeno@gmail.com>
Co-authored-by: SaReN <sahithnarahari@gmail.com>
* change(bank): remove SubtractCoins from keeper public API
* change(ibc/transfer): remove AddCoins from relay tests
* change(bank): remove AddCoins from public keeper API
* fix imports
* remove set balances
* fix fee test
* remove set balances
* fix(staking): remove dependency on minter authorization for staking pools
* chore: update CHANGELOG.md
* update: x/distribution/keeper/keeper_test.go
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
* Update simapp/test_helpers.go
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
* Update x/staking/genesis_test.go
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
* fix(simapp): FundAccount amount variable name
* fix some PR issues
Co-authored-by: Frojdi Dymylja <frojdi.dymylja@gmail.com>
Co-authored-by: Frojdi Dymylja <33157909+fdymylja@users.noreply.github.com>
Co-authored-by: SaReN <sahithnarahari@gmail.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
* Add 1st version of migrate
* Put migration logic into Configurator
* add test to bank store migration
* add test for configurator
* Error if no migration found
* Remove RunMigrations from Configurator interface
* Update spec
* Rename folders
* copy-paste from keys.go
* Fix nil map
* rename function
* Update simapp/app.go
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
* Update simapp/app_test.go
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
* Adderss reviews
* Fix tests
* Update testutil/context.go
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
* Update docs for ConsensusVersion
* Rename to forVersion
* Fix tests
* Check error early
* Return 1 for intiial version
* Use MigrationKeeper
* Fix test
* Revert adding marshaler to Configurator
* Godoc updates
* Update docs
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
Co-authored-by: Aaron Craelius <aaron@regen.network>
* initial implementation of per denom sendenabled
* Fix for accidentally removed keyword
* Validate individual param in param array
* Lint fix
* Refactor bank params to use protobuf
Modified SendEnabled property to be part of generic Params object
Updated genesis functions to use default params structure
* Refactor simulation genesis for clarity
* update changelog for bank sendenable per denom
* fix NoOpMsg type in multisend test
* Add a coin denom send check utility function
* Additional godoc comments and clarification
* Add default send enabled parameter to bank.
Remove empty denom capability from SendEnabled parameters
Update simulation to exercise both configuration options independently
* Minor suggested improvements.
* simulation fix
* bank proto sendenabled package name removed
* Remove extra gogo proto yaml tags
* Params rename IsSendEnabled to SendEnabledDenom
* Refactor to SendEnabledCoin(s)
* update slashing test to use bank params
* Clean up change log entry for feature.
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
* encoding
* working on baseapp doc
* baseapp work
* reorg
* almost there
* finish first draft
* remove old files
* module doc start
* finish intro
* working
* workinnn
* add transactions into core
* hans comments
* add transactions into core
* working
* gautier comments
* clean
* working
* consolidate intro
* querier
* workiiiing
* refactor for new module interface
* karoly review
* working on baseapp doc
* baseapp work
* reorg
* almost there
* finish first draft
* remove old files
* finish intro
* workinnn
* initial commit after rebase
* query-lifecycle and started modules-interfaces
* query-lifecycle first draft done
* module interfaces first draft
* rest and intro skeletons
* rest and intro done
* small edits and links
* comments
* revisions
* cli.md comments
* comments
* minor edits
* better flow for query lifecycle
* add transactions into core
* hans comments
* add transactions into core
* checkout master-docs files
* deleted some
* remove modules readme
* cli.md comments
* comments
* module-interfaces comments
* Merge PR #4857: Add Context concept doc
* working
* working
* finish messages and queries
* handler
* querier
* last comments!
* punctuation
* querier2
* consolidate intro
* querier
* workiiiing
* refactor for new module interface
* karoly review
* working on baseapp doc
* baseapp work
* reorg
* almost there
* finish first draft
* remove old files
* finish intro
* workinnn
* initial commit after rebase
* query-lifecycle and started modules-interfaces
* query-lifecycle first draft done
* module interfaces first draft
* rest and intro skeletons
* rest and intro done
* small edits and links
* comments
* revisions
* cli.md comments
* comments
* minor edits
* better flow for query lifecycle
* checkout master-docs files
* deleted some
* remove modules readme
* cli.md comments
* comments
* module-interfaces comments
* keeper
* genesis
* finish
* Apply suggestions from code review
Co-Authored-By: Hans Schoenburg <hschoenburg@users.noreply.github.com>
* hans review
* Update docs/core/baseapp.md
Co-Authored-By: Hans Schoenburg <hschoenburg@users.noreply.github.com>
* working
* last comment
* workin
* Apply suggestions from code review
* encoding and node
* almost finish store
* finish docs
* fixes
* fede comments + permalinks
* hans review
* add more permalinks
* update docs theme version (#5239)
* R4R: Docs Cleanup (#5246)
* start
* work
* work
* work
* remove table of content
* links intro
* fix links
* remove junk
* cleanup
* cleanup
* work
* finish cleanup
* addback readmes
* remove nft
* fix links
* remove dup
* remove dup
* remove dup
* remove dup
* remove dup
* fix links
* add subscribe events
* refine rest
* index page
* sidebar
* theme version
* theme version
* testing netlify
* theme version
* tooltip example
* version
* testing code embedding
* reverting back
* theme version
* version
* version
* version
* readme and version
* cleanup
* redo app anatomy
* modules readme, theme version
* theme version
* fix modules list
* theme version
* new snippets
* modules readme
* update docs readme
* modify synopsis
* version
* fix yaml
* version
* version
* version
* version
* version
* version
* version
* version
* version
* version
* add hide banner
* version
* version
* version
* small fixes
* modules readme, version
* remove hotkeys dep, version
* version
* version
* version
* version
* version
* version
* version
* slight notice
* fix links and hide
* permalinks
* small clean
* version
* resolve conflicts, add google analytics
* fix merge remants
* version
* changelog 1/2
* Changelog: docs UI
* version
* remove merge conflicts
* Code: Update link for Contributing to the docs to docs_readme
* HTML/CSS: Update layout of homepage footer to match new layout in Figma
* version
* final modifs
* modules, version
* modules readme
* link to module list from homepage
* version
* building modules link
* version
* version
* fonts
* version
* version
* fix link
* fix package.json
* links in explore sdk section
* core concepts
* version
* change delimeters for frontmatter
* frontmatter in comments
* version
* temp add tiny-cookie
* fixed link issues
* fixed styling issues, copy
* hide frontmatter
* hide frontmatter
* layout fixes, padded ascii diagram
* fira sans font for code
* consolidate intro
* start anatomy of sdk app
* wokring
* working
* querier
* working
* workiiiing
* finish
* add dep and makefile
* Apply suggestions from code review
Co-Authored-By: Alessio Treglia <quadrispro@ubuntu.com>
* typo
* typo
* Apply suggestions from code review
Co-Authored-By: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-Authored-By: Alessio Treglia <quadrispro@ubuntu.com>
Co-Authored-By: frog power 4000 <rigel.rozanski@gmail.com>
* refactor for new module interface
* karoly review
* Apply suggestions from code review
Co-Authored-By: Karoly Albert Szabo <szabo.karoly.a@gmail.com>
Co-Authored-By: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* encoding
* working on baseapp doc
* baseapp work
* reorg
* almost there
* finish first draft
* remove old files
* module doc start
* finish intro
* working
* workinnn
* add transactions into core
* hans comments
* add transactions into core
* working
* gautier comments
* clean
* working
* consolidate intro
* querier
* workiiiing
* refactor for new module interface
* karoly review
* working on baseapp doc
* baseapp work
* reorg
* almost there
* finish first draft
* remove old files
* finish intro
* workinnn
* initial commit after rebase
* query-lifecycle and started modules-interfaces
* query-lifecycle first draft done
* module interfaces first draft
* rest and intro skeletons
* rest and intro done
* small edits and links
* comments
* revisions
* cli.md comments
* comments
* minor edits
* better flow for query lifecycle
* add transactions into core
* hans comments
* add transactions into core
* checkout master-docs files
* deleted some
* remove modules readme
* cli.md comments
* comments
* module-interfaces comments
* Merge PR #4857: Add Context concept doc
* working
* working
* finish messages and queries
* handler
* querier
* last comments!
* punctuation
* querier2
* consolidate intro
* querier
* workiiiing
* refactor for new module interface
* karoly review
* working on baseapp doc
* baseapp work
* reorg
* almost there
* finish first draft
* remove old files
* finish intro
* workinnn
* initial commit after rebase
* query-lifecycle and started modules-interfaces
* query-lifecycle first draft done
* module interfaces first draft
* rest and intro skeletons
* rest and intro done
* small edits and links
* comments
* revisions
* cli.md comments
* comments
* minor edits
* better flow for query lifecycle
* checkout master-docs files
* deleted some
* remove modules readme
* cli.md comments
* comments
* module-interfaces comments
* keeper
* genesis
* finish
* Apply suggestions from code review
Co-Authored-By: Hans Schoenburg <hschoenburg@users.noreply.github.com>
* hans review
* Update docs/core/baseapp.md
Co-Authored-By: Hans Schoenburg <hschoenburg@users.noreply.github.com>
* working
* last comment
* workin
* Apply suggestions from code review
* encoding and node
* almost finish store
* finish docs
* fixes
* fede comments + permalinks
* hans review
* add more permalinks
* update docs theme version (#5239)
* R4R: Docs Cleanup (#5246)
* start
* work
* work
* work
* remove table of content
* links intro
* fix links
* remove junk
* cleanup
* cleanup
* work
* finish cleanup
* addback readmes
* remove nft
* fix links
* remove dup
* remove dup
* remove dup
* remove dup
* remove dup
* fix links
* add subscribe events
* refine rest
* index page
* sidebar
* theme version
* theme version
* testing netlify
* theme version
* tooltip example
* version
* testing code embedding
* reverting back
* theme version
* version
* version
* version
* readme and version
* cleanup
* redo app anatomy
* modules readme, theme version
* theme version
* fix modules list
* theme version
* new snippets
* modules readme
* update docs readme
* modify synopsis
* version
* fix yaml
* version
* version
* version
* version
* version
* version
* version
* version
* version
* version
* add hide banner
* version
* version
* version
* small fixes
* modules readme, version
* remove hotkeys dep, version
* version
* version
* version
* version
* version
* version
* version
* slight notice
* fix links and hide
* permalinks
* small clean
* version
* resolve conflicts, add google analytics
* fix merge remants
* version
* changelog 1/2
* Changelog: docs UI
* version
* remove merge conflicts
* Code: Update link for Contributing to the docs to docs_readme
* HTML/CSS: Update layout of homepage footer to match new layout in Figma
* version
* final modifs
* modules, version
* modules readme
* link to module list from homepage
* version
* building modules link
* version
* version
* fonts
* version
* Update post.sh