## Description
The `io/ioutil` package has been deprecated in Go 1.16 (See https://golang.org/doc/go1.16#ioutil). Since cosmos-sdk has upgraded to Go 1.17 (#9987), this PR replaces the existing `io/ioutil` functions with their new definitions in `io` and `os` packages.
---
### 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
- [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)
- [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
- [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)
<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->
## Description
The draft PR #9222Closes: #7108
<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->
- implement proto definition for `Record`
- rename `Info.go` to `legacyInfo.go` within `keyring` package
- implement CLI `migrate` command that migrates all keys from legacyInfo to proto according to @robert-zaremba migration [algorithm](https://github.com/cosmos/cosmos-sdk/pull/9222/#discussion_r624683839)
- remove legacy keybase entirely.
- add `Migrate` and `MigrateAll` functions in `keyring.go` for single key and all keys migration
- add tests
- fix tests
---
### 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)
- [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`
- [ ] 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)
<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->
## Description
Closes: #8700
<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->
---
### 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
- [x] 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`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [x] 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)
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
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
* 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>
* 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>
* remove unused functions
* create helper func to send tx
* refactor to use test help to send tx by client
* Commit before getting backend.
* Temporal commit
* temp commit
* remove the creation of txbuilder from cli
* fix imports
* update changelog
* Remove unused function.
* Add flag home into tx sign command.
* migrade TestCLIValidateSignatures to use new test suite
* migrate test one
* Add changes to make sign batch.
* make test pass
* refactor common logic
* First part of cli sign.
* Add test for sign batch.
* refactor a little and improve the test
* migrate broadcast command
* fix linter
* Remove printf for debug in bank module.
* Fix unused err var.
* fix linter
* fix test
* fix tests client
* Fix linter.
* Temp commit signature.
* encode tx
* migrate tests
* Fix imports.
* Remove changelog
* fix tests
* Fix tests.
* Update x/bank/client/testutil/cli_helpers.go
* Remove alias.
* Remove wait for N block func.
* export callCmd function into its own file.
* fix imports
* bring back to inner functions
* apply mock io
* the helpers use mockio
* fix bug
* Add Helpers.
* return to put the function in testutil package
* return BufferWriter in ExecTestCLICmd
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
The command processes list of transactions from file
(one StdTx each line), generate signed transactions
or signatures and print their JSON encoding, delimited
by '\n'. As the signatures are generated, the command
increments the sequence number automatically.
Author: @jgimeno
Reviewed-by: @alessio
As part of #5864 part 2), this PR decouples the new client/tx
package from x/auth (as an incremental step to deprecating
all the tx logic in x/auth) and adds StdFee, StdSignature,
StdSignMsgBase and StdTxBase to codec/std, while
deprecating the corresponding types in x/auth.
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>
* 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>
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