* testing: refactore Validation and Delegation handling of x/staking
This Changeset introduces set of improvements for writing tests.
The idea is to create a testing subpackage which will provide functions
to make tests more dev-friendly and wrap higher level use-cases.
Here is a show-up of of creating a service for staking module
for tests.
This PR also changes the `x/staking/types.MsgCreateValidator.Pubkey` from string
to types.Any. This change motivated the other change to show the pattern I'm describing here.
* add validator checks
* type change fixes
* use deprecated
* adding test slashing
* new network comment update
* working on tests
* Fix TestMsgPkDecode test
* Add UnpackInterfaces to MsgCreateValidator
* Fix tests
* Convert bech32 pubkey to proto
* Fix test
* fix v039/migrate_test/TestMigrate
* fix tests
* testslashing: rename Service to Helper
* file rename
* update TestMsgDecode
Co-authored-by: blushi <marie.gauthier63@gmail.com>
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
Co-authored-by: Cory Levinson <cjlevinson@gmail.com>
Introduce 'norace' build tag that is used to
filter out test files containing test cases
or test suites that, if run with the -race
flag on would cause race conditions.
Supersede #7300.
* Add allow_governance_override_after_expiry flag to tendermint NewCreateClientCmd
* 1) Add LatestTimestamp to ClientState struct by adding a new attribute latest_timestamp to the message ClientState in proto/ibc/tendermint/tendermint.proto
2) Autogenerate x/ibc/07-tendermint/types/tendermint.pb.go by running 'make proto-gen'. Strangely, as a side effect x/distribution/types/genesis.pb.go, x/evidence/types/genesis.pb.go were also modified by the command 'make proto-gen'
3) Add Expired() function
* Fix tests
* 1) Add allow_governance_override_after_expiry flag to tendemint clientStatus
2) Add allow_governance_override_after_misbehaviour flag to tendermint ClientStatus
* Cosmetic changes
* Fix tests
* Add Unfreeze function
* Add new ClientUpdateProposal type
* Add minor fixes
* Add NewClientUpdateProposalHandler unit tests
* Fix proto-lint-docker
* Delete x/ibc/07-tendermint/tendermint_test.go
* Follow convention to put signer last in msg function signature
* 1) Add GetLatestTimestamp function to ClientStatus interface
2) Change Expired() signature to Expired(now time.Time)
* 1) Add override flag to UpdateClient function
2) Fix tests
* Refactor HandleClientUpdateProposal
* 1) Extend exported Header interface with MarshalBinaryBare and UnmarshalBinaryBare methods
2) Move ClientUpdateProposal message to from ibc.proto to client.proto
3) Refactoring code
4) Add override flag to UpdateClient method
5) Fix tests
* 1) Uncomment tests and clean up code
2) Add basic validation of the header (ValidateBasic) when the override flag is true
* Cosmetic changes
* Add TODO comments
* Fix header MarshalBinaryBare, UnmarshalBinaryBare by using protobuf encoding/decoding
* Fix proto comments
* Fix override logic
* undo gettimestamp for solo machine and localhost
* add update after proposal func, some major refactoring in progress, various issues addressed
* fix tendermint proposal update handling
* run make proto-gen
* remove timestamp from tendemint client
* fix build issue for tm types
* apply various review comments
* add tests for 02-client functionality
* self review fixes
* typo
* update tests slightly
* update tendermint proposal handling tests
* Update x/ibc/02-client/keeper/proposal.go
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* Update x/ibc/07-tendermint/types/proposal_handle.go
Co-authored-by: Aditya <adityasripal@gmail.com>
* Update x/ibc/07-tendermint/types/proposal_handle.go
Co-authored-by: Aditya <adityasripal@gmail.com>
* apply most of @fedekunze and some of @AdityaSripal suggestions
* convert test to bools
* update docs and increase code cov
* fix build
* fix typo, remove omitempty
* add switch
* apply @fedekunze latest suggestions
* fix lint
* Update x/ibc/02-client/keeper/proposal_test.go
Co-authored-by: Christopher Goes <cwgoes@pluranimity.org>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Colin Axner <colinaxner@berkeley.edu>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aditya <adityasripal@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Make JSONMarshaler require proto.Message
* Use &msg with MarshalJSON
* Use *LegacyAmino in queriers instead of JSONMarshaler
* Revert ABCIMessageLogs String() and coins tests
* Use LegacyAmino in client/debug and fix subspace tests
* Use LegacyAmino in all legacy queriers and adapt simulation
* Make AminoCodec implement Marshaler and some godoc fixes
* Test fixes
* Remove unrelevant comment
* Use TxConfig.TxJSONEncoder
* Use encoding/json in genutil cli migrate/validate genesis cmds
* Address simulation related comments
* Use JSONMarshaler in cli tests
* Use proto.Message as respType in cli tests
* Use tmjson for tm GenesisDoc
* Update types/module/simulation.go
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* Update types/module/module_test.go
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* Add godoc comments
* Remove unused InsertKeyJSON
* Fix tests
Co-authored-by: Aaron Craelius <aaronc@users.noreply.github.com>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* Replaced hardcoded 'cosmos' and 'cosmosvaloper' help references
* Ran make format target
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* create base proto package, move ValAddresses to staking
* move tx, crypto, query proto packages into base; mark module level packages as beta
* new cosmos/base/abci.proto file, refactor some message names
* add comments to TxResponse
* refactor RegisterInterface calls to new proto package names
* fix bug in merge commit
* move missing module proto packages to beta, move cosmos.kv to cosmos.base.kv
* add tx.proto files, holding proto messages for module Msgs
* rm old generated pb.go files
* cosmos/base/base.proto -> cosmos/base/coin.proto
* mark genutil proto package as beta
* Fix conflicts
* Restructure proto files
* Re put signing
* Fix test
* Update slashing genesis
* Ignore confio proto files
* Fix interface register
* Make proto-gen
* Fix lint
* Put tx service into tx.v1beta1
* Use v1beta1 in interface registry
* Remove to cosmos.base.store
* Remove extra confio in buf
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* Add required fields for queries, p1
* Add comments
* Remove required
* More modules
* 2 to go
* Finish all modules
* Fix typo
* Fix test
* Make proto-gen
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
* Update genutil collect and gentx to use TxGenerator
* Remove print statement
* Use Tx in genutil DeliverGenTxs
* Use Tx in genutil genesis_state
* Use Tx in ValidateGenesis
* Use amino txJSONDecoder and txBinaryEncoder in genutil InitGenesis
* Use TxConfig in place of TxGenerator
* Add gentx tests
* Remove commented line
* Test fixes
* Apply suggestions from code review
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
* Fixes
* Fixes
* Fixes
* Fixes
* Remove unneeded test case (doesn't apply to proto marshaling)
* linting
* Refactor to use new TxEncodingConfig interface in genutil module
* Replace golang/protobuf with gogo/protobuf package
* Use TxEncodingConfig in InitTestnet
* Remove old amino.go file
* Use TxJSONDecoder in genutil ValidateGenesis
* Add parameter to ValidateGenesis to resolve the tx JSON decoder issue
* Address review feedback
Co-authored-by: Jack Zampolin <jack.zampolin@gmail.com>
Co-authored-by: Aaron Craelius <aaronc@users.noreply.github.com>
Co-authored-by: Aaron Craelius <aaron@regen.network>
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* remove verifier
* more removal of trustnode flag
* add todo
* fix lint
* remove file
* remove viper and add link to issue
* remve mention of trustnode
* Rename proto Req to Pagination
* Change Res to Pagination
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* WIP: using encoding config
* Make it compile, test fails
* test should be okay
* Make tests pass
* Add comments
* Convert more tests
* Make TestAnteHandlerSigErrors work
* Make first 2 tests pass
* TestAnteHandlerAccountNumbers
* Use table tests
* Remove print
* Use test table
* TestAnteHandlerSigErrors
* TestAnteHandlerAccountNumbers
* TestAnteHandlerAccountNumbers
* Refactor TestAccount
* Refactor getSignBytes
* TestAnteHandlerAccountNumbersAtBlockHeightZero
* TestAnteHandlerSequences
* TestAnteHandlerFees
* TestAnteHandlerMultiSigner
* TestAnteHandlerBadSignBytes
* TestAnteHandlerSetPubKey
* TestAnteHandlerSigLimitExceeded
* TestCustomSignatureVerificationGasConsumer
* TestAnteHandlerReCheck
* Make all tests pass
* Refactor a little bit more
* Fee test
* SetupTest
* All tests pass
* Refactor to RunTestCase
* Don't use StdFee
* Revert some little stuff
* Finish up last couple of test cases
* Less verbose
* s/TxGenerator/TxConfig
* Add comments
* Indent
* Move KeyTestPubAddr to testdata
* Move testdata to /testutil
* Revert to use signature: nil step in signing
* Add comments
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
* refactor auths broadcast cmd in alignment with #6216
* add TxResponse proto definition, and related refactoring
* re-run make proto-gen, updating staking.pb.go
* cleanup TxResponse tests to handle nil return values
* properly handle nil Tx value in TxResponse's implementation of UnpackInterfaces
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* Rename SimulateSubmitProposal to SimulateMsgSubmitProposal to keep naming convention the same as in other similar cases
* x/gov/simulation/operations.go: add unit tests
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Prepare migrating testing auxiliary functions from tests
to testutil.
Remove local duplicates on testutil.WriteToNewTempFile().
Always favor testutil.NewTestCaseDir() over ioutil.TempDir().
Add test cases for the testing auxiliary functions.
* consolidate proto files into single directory, turn on PACKAGE_DIRECTORY_MATCH linting
* add third_party root for third party proto files
* move ibc proto files to top level folder, rename .proto files to types.proto as before
* update protocgen script, and run code generation
* move vesting proto definition to cosmos namespace, rename from types.proto in alignment with buf.build naming conventions
* update Makefile so proto dependencies are set with new structure when updated
* add comment for sed usage in makefile
* remove unused aliases of proto generated types
* add settings.json instructions to contributing.md for including protobuf paths
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Aaron Craelius <aaron@regen.network>
x/staking: Fix all linter warnings.
Fixed warnings across base packages.
New linters:
- unparam
- nolintlint
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
* enable the wsl linter
Fix various wsl-related warnings.
x/ibc/04-channel/keeper/handshake.go: fix missing return statement in ChanOpenTry().
* goimports -w files
* remove unknown linter references
* run make format
* Revert "run make format"
This reverts commit f810b62b9e4993f08506663d4e5f2ec2228a9863.
* run make format
* lint: various linting fixs
Signed-off-by: Marko Baricevic <marbar3778@yahoo.com>
* more linting
* more linting fixes
* more errchecking
* comment out errcheck for now
* undo error check
* address some comments
* remore require error
* change delete to batch delete
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
* change abci file to use BinaryBare
* change all calls to EncodeLengthPrefixed to BinaryBare in distribution keeper store.
* change all calls to EncodeLengthPrefixed to BinaryBare in mint keeper store.
* change all calls to EncodeLengthPrefixed to BinaryBare in auth keeper store.
* change all calls to EncodeLengthPrefixed to BinaryBare in distribution keeper store.
* change all calls to EncodeLengthPrefixed to BinaryBare in staking keeper store.
* change all calls to EncodeLengthPrefixed to BinaryBare in staking keeper store.
* change all calls to EncodeLengthPrefixed to BinaryBare in gov keeper store.
* change all calls to EncodeLengthPrefixed to BinaryBare in slashing keeper store.
* update decoder test
* migrate decoder
* migrate gov simulation decoder
* migrate baseapp_test
* refactor QuerySubspace
* refactor coedc std codec
* migrate keybase
* migrate iavl store
* migrate root multi
* migrate ante basic
* migrate tx type to bare
* migrate auth client
* update auth types
* update decoder
* migrate supply decoder
* migrate stake encoding
* migrate staking simulation
* migrate genutil
* migrate simapp test helpers
* migrate docs
* upgrade changelog
* Update CHANGELOG.md
Co-Authored-By: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
* make .golangcy.yml work with Goland's Golint plugin
Explicitly disable all linters. Whitelist of enabled
plugins is already provided.
This would enable Goland users to user Golint plugin.
* fix deadcode warnings
* fix gocritic error
unslice: could simplify pkBytes[:] to pkBytes
* dep: bump tendermint version to 0.33.1
Signed-off-by: Marko Baricevic <marbar3778@yahoo.com>
* minor touch up
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Packages named utils, common, or misc provide clients with no
sense of what the package contains. This makes it harder for
clients to use the package and makes it harder for maintainers
to keep the package focused. Over time, they accumulate dependencies
that can make compilation significantly and unnecessarily slower,
especially in large programs. And since such package names are
generic, they are more likely to collide with other packages
imported by client code, forcing clients to invent names to
distinguish them.
cit. https://blog.golang.org/package-names
* Bump Tendermint version to v0.33.0
* Deprecate old cmn package with new packages
* Update update DB APIs
* More DB updates
* Bump IAVL to v0.13.0
* Handle error returned by iavl.NewMutableTree
* Fix some IAVL stuffs
* Update IAVL
* More updates
* Passing tests
* Fix unit tests
Co-authored-by: Jack Zampolin <jack.zampolin@gmail.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