* refactor: Move some methods inside TX Factory (#9421)
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
v ✰ Thanks for creating a PR! ✰
v Before smashing the submit button please review the checkboxes.
v If a checkbox is n/a - please still include it but + a little note why
☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -->
## Description
<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review.
-->
Putting some things inside the factory (which was very anemic struct) has helped me to understand the flow. Feel free to merge if you see some benefit.
closes: #XXXX
---
Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.
- [ ] Targeted PR against correct branch (see [CONTRIBUTING.md](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Code follows the [module structure standards](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/structure.md).
- [ ] Wrote unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] Updated relevant documentation (`docs/`) or specification (`x/<module>/spec/`)
- [ ] Added relevant `godoc` [comments](https://blog.golang.org/godoc-documenting-go-code).
- [ ] Added a relevant changelog entry to the `Unreleased` section in `CHANGELOG.md`
- [ ] Re-reviewed `Files changed` in the Github PR explorer
- [ ] Review `Codecov Report` in the comment section below once CI passes
(cherry picked from commit e17be874bb)
# Conflicts:
# CHANGELOG.md
* Update CHANGELOG.md
Co-authored-by: Jonathan Gimeno <jgimeno@gmail.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
* chore(types): add sdk.Context.Codec and deprecate JSONCodec
* Use clientContext.Codec rather than JSONCodec everywhere
* update tests to use clientContext.Codec
* added a note that EncodingConfig.Marshaler will be renamed to Codec
* update changelog
* fix tests to use clientCtx.WithCodec instead of WithJSONCodec
* fix genutil build
* Update simapp/params/encoding.go
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
* cli: convert coins to smallest unit registered
fixes: #7623
- test order of decimal operations
- support both int and decimal coins, truncate when normalizing to
base unit
* Update types/coin_test.go
* Update types/coin_test.go
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Amaury <amaury.martiny@protonmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@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>
x/staking: Fix all linter warnings.
Fixed warnings across base packages.
New linters:
- unparam
- nolintlint
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
crypto/keyring:
`Keybase` interface gives way to its successor: `Keyring`. `LegacyKeybase`
interface is added in order to guarantee limited backward compatibility with
the old `Keybase` interface for the sole purpose of migrating keys across
the new keyring backends.
The package no longer depends on the `github.com/types.Config`
singleton.
`SupportedAlgos` and `SupportedLedgerAlgos` methods have been removed.
The keyring just fails when trying to perform an action with an unsupported
algorithm.
crypto/ subdirs reorganization:
`crypto/keys/hd` was moved to `crypto/hd`, which now groups together
all HD wallets related types and utilities.
client/input:
* Removal of unnecessary `GetCheckPassword`, `PrintPrefixed` functions.
* `GetConfirmation`'s signature changed to take in a io.Writer for better integration
with `cobra.Command` types.
client/context:
* In-memory keyring is allocated in the context when `--gen-only` flag is passed
in. `GetFromFields` does no longer silently allocate a keyring, it takes one as
argument.
Co-authored with @jgimeno
Co-authored-by: Jonathan Gimeno <jgimeno@gmail.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>
Client commands accept a new `--keyring-backend` option through which users can specify which backend should be used by the new key store:
- os: use OS default credentials storage (default).
- file: use encrypted file-based store.
- test: use password-less key store (highly insecure).
* Switch keys commands to keyring
* Replace NewKeybase with NewKeyring
* Fix delete test
* Purge dead code
* Override COSMOS_SDK_TEST_KEYRING envvar to switch to a test keyring
* s/unningOnServer/unningUnattended/
C'ing @tnachen
* Add deprecated warning, output looks like the following:
```
$ gaiacli keys update --help
Command "update" is deprecated, it takes no effect with the new keyring
based backend and is provided only for backward compatibility with the
legacy LevelDB based backend.
Refer to your operating system's manual to learn how to change your
keyring's password.
Change the password used to protect private key
Usage:
gaiacli keys update <name> [flags]
Flags:
-h, --help help for update
Global Flags:
--chain-id string Chain ID of tendermint node
-e, --encoding string Binary encoding (hex|b64|btc) (default "hex")
--home string directory for config and data (default "/home/alessio/.gaiacli")
-o, --output string Output format (text|json) (default "text")
--trace print out full stack trace on errors
```
* Update multisign command
* Modify server.GenerateSaveCoinKey()
* GenerateSaveCoinKey more modifications
* Update docs
* Update upgrade module
Gaia is removed from cosmos-sdk repository.
Few changes were required to make sure no packages depend on gaia subpackages.
CI config is amended accordingly.
Unnecessary targets are removed from Makefile.
Simulations run through a lightweight version of gaia renamed to simapp.
Closes: #4104
* first commit
* gaia cleanup
* ...
* staking multihooks
* missing module function return args
* bank module name constant
* working, module interface for x/
* got this thing compiling
* make test compiles and passes
* remove expanded simulation invariants
* genesis issue
* continued
* continued
* register crisis routes thought mm
* begin blocker to mm
* end blocker to mm
* empty routes not initialized
* move gaia initChainer sanity check to baseapp
* remove codecs from module manager
* reorging genesis stuff
* module manager passed by reference/bugfixes from working last commit
int
int
* move invariant checks from gaia to crisis
* typo
* basic refactors cmd/gaia/init
* working
* MultiStakingHooks from types to x/staking/types
int
* default module manager order of operations from input modules
* working
* typo
* add AppModuleBasic
* moduleBasicManager / non-test code compiles
* working attempting to get tests passing
* make test passes
* sim random genesis fix
* export bug
* ...
* genutil module
* genutil working
* refactored - happy with non-testing code in cmd/
* ...
* lint fixes
* comment improvement
* cli test fix
* compile housing
* working through compile errors
* working gettin' compilin'
* non-test code compiles
* move testnet to its own module
* reworking tests
int
* bez staging PR 1 comments
* concise module function-of names
* moved all tests from genesis_test.go to other genutil tests
* genaccounts package, add genutil and genaccounts to app.go
* docs for genutil genaccounts
* genaccounts iterate fn
* non-test code with genaccounts/ now compiles
* working test compiling
* debugging tests
* resolved all make test compile errors
* test debuggin
* resolved all unit tests, introduced param module
* cli-test compile fixes
* staking initialization bug
* code comment improvements, changelog entries
* BasicGaiaApp -> ModuleBasics
* highlevel explanation in types/module.go
* @alexanderbez comment revisions
* @fedekunze PR comments
* @alexanderbez PR comments (x2)
* @cwgoes comments (minor updates)
* @fedekunze suggestions
* panic on init with multiple validator updates from different modules
* initchain panic makes validate genesis fail
int
* AppModuleGenesis seperation
int
* test
* remove init panic logic in validate genesis replaced with TODO
* set maxprocs to match system's GOMAXPROCS
* Update circleci
* Cap maxprocs in CI to 4
* @alexanderbez recent comments addressed
* less blocks in twouble sims
int
* runsim error output flag
* -e on import_export as well
* error out
int
* Try to fix failures
* runsim