The speed is the same as old implementation, but the new one uses slightly
less memory and make the code easier to maintain.
name old time/op new time/op delta
SanitizeBalances500-8 933µs ± 1% 935µs ± 1% ~ (p=0.400 n=9+10)
SanitizeBalances1000-8 1.91ms ± 0% 1.92ms ± 0% +0.58% (p=0.000 n=10+10)
name old alloc/op new alloc/op delta
SanitizeBalances500-8 588kB ± 0% 556kB ± 0% -5.41% (p=0.000 n=9+9)
SanitizeBalances1000-8 1.18MB ± 0% 1.12MB ± 0% -5.37% (p=0.000 n=9+9)
name old allocs/op new allocs/op delta
SanitizeBalances500-8 5.02k ± 0% 4.02k ± 0% -19.94% (p=0.000 n=10+10)
SanitizeBalances1000-8 10.0k ± 0% 8.0k ± 0% -19.93% (p=0.000 n=9+10)
Fixes#9259
* -add comments to proto fields
-add comments to msg and query server
-remove decorator from docs
-add coments to msgs.go
-remove decorator from godoc
* Update x/feegrant/spec/04_events.md
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
* refactor and add to docs
*refactor proto msg names and functions
*add docs pertaining to auth's ante handler for deducted fees
* lint
* update comment
* gofmt
Co-authored-by: technicallyty <48813565+tytech3@users.noreply.github.com>
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
When testing with -race, sometimes the random source generate the same
string for consecutive calls, causing duplicated voter address. So the
number of votes in DB is not 20.
To fix this, we ensure unique addresses are generated, by using a map
for tracking which one was produced, and skip the duplicated address and
generated new one. Testing with:
go test -race -v -count=1000 -run=TestPaginatedVotesQuery
now passes.
Updates #9010
* Updates to Genesis
* Move grpc_query tests to keeper pkg
* Unify CLI command usage message
* Use timestamp for time based expiration in cli
* Update FlagExpiration
* Update wording
* Add test case for invalid expiration
* Update cli Long description
* Update exp date examples
* Use constants
* Set proper default command output
* Removed duplicated cmd.SetErr(cmd.ErrOrStderr()) and cmd.SetOut(cmd.OutOrStdout())
* Moved command initialization and added CHANGELOG
* fix: groom all uses of cmd.Print*
* Ran make format
Co-authored-by: Michael FIG <mfig@agoric.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
addrLen is encoded in a byte, so it's an uint8. The code in
AddressFromBalancesStore cast it to int for bound checking, but wrongly uses "addrLen+1", which can be overflow.
To fix this, just cast addrLen once and use it in all places.
Found by fuzzing added in #9060.
Fixes#9111
Delegations and undelegations calculations performed during
accounting operations for vesting accounts were correct but
were not written back to the account store.
closes: #8601closes: #8812
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Jonathan Gimeno <jgimeno@gmail.com>
Co-authored-by: Frojdi Dymylja <frojdi.dymylja@gmail.com>
Co-authored-by: Adam Bozanich <adam.boz@gmail.com>
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
Co-authored-by: SaReN <sahithnarahari@gmail.com>
Currently, AddressFromBalancesStore uses the input key without any
validation, so an empty key or an invalid key length cause it panics.
This commit fixes the problem, by returning an error in case of invalid
key was passed.
Found by fuzzing added in #9060.
Fixed#9062
* Overview of keepers in object capability model (OCM)
* Updates to the spec, making clarifications
* Create a sequence diagram of a (fresh) delegation
* Misc notes, not yet decided where to put them
* Description of the shares abstraction in validators
* Model all keeper dependencies and move the UML file to docs
* Move and rename delegation sequence diagram
* Move shares description
* Remove TODO
* Diagram touch-ups
* Add how consensus power is calculated
* remove temp file
* Diagram improvements
* Describe slashing in more detail
* Describe redelegation
* Describe unbonding
* Delegation updates
* Delegation updates
* Make a diagram describing overall transaction flow
* Add delegation flows for the events of tokens being bonded/unbonding/etc.
* Grammar fix
* Diagram updates: distinguish alts, remove numbering.
* Use groups instead of "func:" participants
* Remove unused keepers from dependency diagram
* Add title to unbonding diagram
* Move keeper dependencies
* small doc updates
* remove numbers on sequence diagram
* !!!WIP EndBlock
* Explain "Last"-prefix in storage
* Remove `panic` step (they are supposed to never happen)
* EndBlock sequence diagram (with TODOs)
* Add TODO
* More visible TODOs
* Remove numbering
* Complete EndBlock
* Remove numbering
* Remove TODOs and update title
* add title back
* remove endblock seq-diagram
* Make power index update conditional on not being jailed
* update title
* Move files to /docs
* Install PlantUML and compile images to png and txt
* Use transaction flow in documentation
* Use staking UML in staking docs
* Clarify uml with inline doc
* Add keeper deps diagram to docs
* Only produce SVG images
Co-authored-by: hjort <>
Co-authored-by: Marko <marbar3778@yahoo.com>
* -added consensus version tracking to x/upgrade
* -added interface to module manager -added e2e test for migrations using consensus version store in x/upgrade -cleaned up x/upgrade Keeper -handler in apply upgrade now handles errors and setting consensus versions -cleaned up migration map keys -removed init chainer method -simapp now implements GetConsensusVersions to assist with testing
* protocol version p1
* add protocol version to baseapp
* rebase against master
* add test
* added test case
* cleanup
* docs and change to bigendian
* changelog
* cleanup keeper
* swap appVersion and version
* cleanup
* change interface id
* update keeper field name to versionSetter
* reorder keys and docs
* -move interface into exported folder
* typo
* typo2
* docs on keeper fields
* docs for upgrade NewKeeper
* cleanup
* NewKeeper docs
Co-authored-by: technicallyty <48813565+tytech3@users.noreply.github.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
* Make clearer that the distribution iterates over all active validators, not just ones that voted
* Update x/distribution/keeper/allocation.go
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
* Move comment to docstring
* Change variable name
* Fix: remove git conflict markers
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Marko <marbar3778@yahoo.com>
Co-authored-by: SaReN <sahithnarahari@gmail.com>
* First run
* Remove dead code
* Make test pass
* Proto gen
* Fix lint
* Add changelog
* Fix tests
* Fix test
* Update x/auth/tx/service.go
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
* Remove protoTxProvider
* Add grpc-gateway test
* Add comment
* move to api breaking
* lesser diff
* remove conflict
* empty commit to rerun CI
* empty commit to rerun CI
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* update MsgCreateValidator ValidateBasic to enforce self delegation minimum
MsgCreateValidator ValidateBasic requires a self delegation of at least one consensus power, this prevents a common, but hard to debug error
* add changelog
* Update CHANGELOG.md
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* fix simulation tests
Construct successfuly MsgCreateValidator to use a self delegation which is greater than the PowerReduction
* fix cli tests
* fix cli tests
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Marko <marbar3778@yahoo.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* -added consensus version tracking to x/upgrade
* -added interface to module manager -added e2e test for migrations using consensus version store in x/upgrade -cleaned up x/upgrade Keeper -handler in apply upgrade now handles errors and setting consensus versions -cleaned up migration map keys -removed init chainer method -simapp now implements GetConsensusVersions to assist with testing
* Changed MigrationMap identifier to VersionMap
removed module_test
* updated docs
* forgot this
* added line to changelog for this PR
* Change set consensus version function to match adr 041 spec
* add documentation
* remove newline from changelog
unnecessary newline removed
* updated example in simapp for RunMigrations, SetCurrentConsensusVersions now returns an error
* switch TestMigrations to use Require instead of t.Fatal
* Update CHANGELOG.md
Co-authored-by: Aaron Craelius <aaron@regen.network>
* docs for SetVersionManager
* -init genesis method added -removed panics/fails from setting consensus versions
* update identifiers to be more go-like
* update docs and UpgradeHandler fnc sig
* Upgrade Keeper now takes a VersionMap instead of a VersionManager interface
* upgrade keeper transition to Version Map
* cleanup, added versionmap return to RunMigrations
* quick fix
* Update docs/architecture/adr-041-in-place-store-migrations.md
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
* remove support for versionmap field on upgrade keeper
* cleanup
* rename get/set version map keeper functions
* update adr doc to match name changes
* remove redudant line
Co-authored-by: technicallyty <48813565+tytech3@users.noreply.github.com>
Co-authored-by: Aaron Craelius <aaron@regen.network>
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Overview of keepers in object capability model (OCM)
* Updates to the spec, making clarifications
* Create a sequence diagram of a (fresh) delegation
* Misc notes, not yet decided where to put them
* Description of the shares abstraction in validators
* Model all keeper dependencies and move the UML file to docs
* Move and rename delegation sequence diagram
* Move shares description
* Remove TODO
* Diagram touch-ups
* Add how consensus power is calculated
* remove temp file
* Diagram improvements
* Describe slashing in more detail
* Describe redelegation
* Describe unbonding
* Delegation updates
* Delegation updates
* Make a diagram describing overall transaction flow
* Add delegation flows for the events of tokens being bonded/unbonding/etc.
* Grammar fix
* Diagram updates: distinguish alts, remove numbering.
* Use groups instead of "func:" participants
* Remove unused keepers from dependency diagram
* Add title to unbonding diagram
* Move keeper dependencies
* small doc updates
* remove numbers on sequence diagram
* !!!WIP EndBlock
* Explain "Last"-prefix in storage
* Remove `panic` step (they are supposed to never happen)
* EndBlock sequence diagram (with TODOs)
* Add TODO
* More visible TODOs
* Remove numbering
* Complete EndBlock
* Remove numbering
* Remove TODOs and update title
* add title back
* remove endblock seq-diagram
* spec updates
* Make power index update conditional on not being jailed
* update title
* Delete sequnce diagrams
* Fix tokens to consensus power ratio
* Fix type
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
Co-authored-by: hjort <>
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* remove time based upgrades
* cleanup
* cleanup evidence of time based upgrades
* cleanup docs referring to time based upgrades
* forgot one
* added line to changelog deprecated section
* Update proto/cosmos/upgrade/v1beta1/upgrade.proto
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
* update changelog line to correct section
* update buf config to allow reserved fields
Co-authored-by: technicallyty <48813565+tytech3@users.noreply.github.com>
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
Co-authored-by: SaReN <sahithnarahari@gmail.com>
Co-authored-by: Aaron Craelius <aaron@regen.network>
* Skips very noisy benchmarks that end up running only for b.N=1 because
their entire time is spent in setup, and varying parameters doesn't change
much given that the number of stores is what dominates the expense. To
ensure we can provide reliable benchmarks, progressively for the project,
skip these until there is a proper re-work of what the benchmarks need to do
* Previously sub-benchmarks: b.Run(...) did not b.ReportAllocs() due to a faulty
assumption that invoking b.ReportAllocs() at the top would be inherited by
all sub-benchmarks. This change fixes that
Fixes#8779Fixes#8855
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Move all migration scripts to v043
* Fix permaling
* Fix test
* Fix test again
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* 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>