Commit Graph

3763 Commits

Author SHA1 Message Date
Emmanuel T Odeke
481569ce4f
fix: all: fix resource leaks found by staticmajor (#13394)
Fixes resource leaks in which a .Close, .Stop method
wasn't invoked in return routes such as with errors.

Found by https://github.com/cosmos/cosmos-sdk/pull/13392
2022-10-06 20:11:40 +00:00
Julien Robert
74ce07eb26
docs: improve documentation navigation and redirection (#13455) 2022-10-06 15:51:10 +02:00
Amaury
ff39d243d4
refactor: Improve x/bank deterministic tests (#13450)
* refactor: Improve x/bank deterministic tests

* typo

* Less changes

* Rename var

* Fix SpendableBalances

* Fix pagination tests

* Fix TestGRPCQueryTotalSupply

* Remove explicit SetupTest()

* Fix TestGRPCSendEnabled

Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
2022-10-06 12:05:56 +00:00
Amaury
90bd3161a1
refactor: Improve and clarify API around AccountAddressById (#13460)
* Revert "chore: change id to use uint64 in `AccountAddressByID` (#13411)"

This reverts commit 3d0e214446.

* Add since

* Update CLI command

* make proto-gen

* id->accNum

* No API breaking changes

* improve err msg

* Update CHANGELOG.md

Co-authored-by: Julien Robert <julien@rbrt.fr>

* Update CHANGELOG.md

Co-authored-by: Julien Robert <julien@rbrt.fr>

Co-authored-by: Julien Robert <julien@rbrt.fr>
2022-10-06 11:05:25 +00:00
Marko
306a9a7170
feat!: consensus module (#12905) 2022-10-05 18:06:24 +00:00
emidev98
c2f0c0f785
feat: context on simulate error (#13435) 2022-10-03 22:36:56 +00:00
Julien Robert
80ce491734
refactor: move x/{moduleName}/test{ModuleName} to x/{moduleName}/testutil (#13427)
* refactor: move `x/{moduleName}/test{ModuleName}` to `x/{moduleName}/testutil`

* updates

* updates
2022-10-02 10:42:52 -04:00
Marko
c221d7f1de
chore: minor cleanup of types (#13430) 2022-10-02 15:03:03 +02:00
atheeshp
60ab6086d2
feat: x/bank deterministic tests (#13362)
* feat: `x/bank` deterministic tests

* fix tests

* add all balances regressions

* refactor

* `spendable coins` tests

* total supply regressions

* `SupplyOf` regressions

* params regressions

* add few more tests

* `denomOwners` tests

* refactor

* review changes
2022-09-29 09:24:37 +00:00
atheeshp
3d0e214446
chore: change id to use uint64 in AccountAddressByID (#13411) 2022-09-28 12:42:53 -04:00
Julien Robert
91d66f30e1
refactor!: extract simulation helpers out of simapp (#13402) 2022-09-27 21:19:44 +02:00
Julien Robert
53519ea5b3
refactor: simplify hooks implementation (#13396) 2022-09-27 20:37:26 +02:00
Julien Robert
684ee627d1
fix: attempt at fixing flaky e2e tests (#13401)
* fix: attempt at fixing flaky e2e tests

* `make format`

* add links
2022-09-27 13:39:04 -04:00
omahs
6f337b4d74
docs: fix typos (#13399) 2022-09-27 09:30:41 +00:00
Sai Kumar
445a99f710
feat(cli): add --append flag to sign-batch cli cmd (#13147)
* feat(cli): add `multi-msg-sign`

* chore: update the changelog

* chore: fix the lint issue

* chore: address the pr comments

* chore: address the pr comments

* refactor: refactored `sign-batch` to generate single signed tx

* chore: updated the changelog

* fix: fix the lint

* test: fix the tests on auth

Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
2022-09-27 00:31:58 +02:00
Emmanuel T Odeke
abdf61e292
fix: all: remove map iteration non-determinism with keys + sorting (#13377) 2022-09-24 16:20:54 +00:00
Jacob Gadikian
af816057f2
chore: run make format (#13375) 2022-09-24 00:22:03 +02:00
likhita-809
09b0f58932
feat: make helper function for adding accounts to genesis state (#13298) 2022-09-23 19:25:36 +00:00
Julien Robert
df40c0a9d1
refactor!: remove broadcast mode block (#12659) 2022-09-23 15:16:31 +00:00
Julien Robert
7eb259fd86
feat: add draft-proposal for x/group (#13353)
* feat: add `draft-proposal` for x/group

* add changelog

* extract useful function

* add `GetMsgFromTypeURL` tests
2022-09-22 00:53:02 +02:00
Emmanuel T Odeke
a2118afc21
fix: x/gov/client/cli: update & tighten Prompt.Parse tests (#13350)
Adds more rigorous checks to ensure that the output
is as expected with range failures. While here also
added control tests to ensure that we can parse integers
within range of int.

Updates #13346
2022-09-21 05:59:11 +00:00
Emmanuel T Odeke
9c2aef342d
chore: all: use golang.org/x/exp/maps.(Keys, Values) where necessary (#13349)
Uses golang.org/x/exp/maps.(Keys, Values) to sort out flagged
potential non-determinism issues due to map iteration which is
randomized in maps.

These were flagged by cosmos/gosec in

* https://github.com/cosmos/cosmos-sdk/security/code-scanning/724
* https://github.com/cosmos/cosmos-sdk/security/code-scanning/725
* https://github.com/cosmos/cosmos-sdk/security/code-scanning/726
* https://github.com/cosmos/cosmos-sdk/security/code-scanning/727
* https://github.com/cosmos/cosmos-sdk/security/code-scanning/728
* https://github.com/cosmos/cosmos-sdk/security/code-scanning/729
* https://github.com/cosmos/cosmos-sdk/security/code-scanning/782
* https://github.com/cosmos/cosmos-sdk/security/code-scanning/813
* https://github.com/cosmos/cosmos-sdk/security/code-scanning/814
* https://github.com/cosmos/cosmos-sdk/security/code-scanning/816

which complained about potential non-determinism in
map iteration in which we only want appends in map iteration loops,
this change instead uses golang.org/x/exp/maps.Keys to retrieve
the keys then sort.Strings which simplifies the helper code.

This change fixes issues in:
* orm/model/ormdb: non-determinism in ExportJSON
* store/internal/proofs
* types/module
* x/auth/keeper
* x/bank
* x/genutil/client/cli

Fixes #13348
2022-09-21 02:08:13 +00:00
Emmanuel T Odeke
56a49aba46
fix: x/gov/client/cli: fix integer overflow in parsing int prompted values (#13347)
Reported by cosmos/gosec in https://github.com/cosmos/cosmos-sdk/security/code-scanning/5730.
This change checks for errors from strconv.Atoi in which case we were
susceptible to out of range errors, this change also adds tests to
prevent regressions.

Fixes #13346
2022-09-21 01:26:50 +02:00
Julien Robert
79f277c111
fix: fix buf commit link (#13345) 2022-09-20 21:21:45 +02:00
Aleksandr Bezobchuk
c1c23a75d9
fix: ensure withdraw_rewards events are always emitted on reward withdrawal (#13323) 2022-09-20 10:23:21 +00:00
likhita-809
7ebbfa0b30
refactor(nft): CLI tests using Tendermint Mock (#13256)
* wip: move nft cli tests to e2e tests

* wip: add cli tests using Tendermint Mock

* cleanup genutil test file

* remove unncessary test cases

* address review comments

Co-authored-by: Julien Robert <julien@rbrt.fr>
Co-authored-by: Marko <marbar3778@yahoo.com>
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
2022-09-19 13:01:49 +00:00
Julien Robert
7252f4a758
feat: CLI tooling to generate proposal JSONs (#13304) 2022-09-19 14:22:04 +02:00
Marko
d04392c5e2
chore: cleanup changelog (#13320) 2022-09-16 10:48:43 -04:00
Aaron Craelius
d9ef976412
feat(x/auth): define simplified account query service (#13210) 2022-09-16 09:12:41 +00:00
yihuang
6c4f94b671
fix: keep the balance query endpoint compatible with legacy blocks (#13301)
* keep the balance query endpoint compatible with legacy blocks

Closes: #13296

A temporary solution before the proxy tool developed, since the balance endpoint is too important.

* Update CHANGELOG.md

* Apply suggestions from code review

Co-authored-by: Julien Robert <julien@rbrt.fr>
Co-authored-by: Marko <marbar3778@yahoo.com>
2022-09-16 09:57:42 +02:00
atheeshp
ceffc5e01c
feat: x/auth determinism tests for Account query (#13255)
* WIP: rapid tests

* remove commented code

* review changes

* review changes

* review changes

* review changes

* review changes

* review changes

* review changes

* review changes

* review changes

* review changes

* `go mod tidy`
2022-09-16 09:22:09 +02:00
Amaury
340c01bf5a
fix!: Fix group amino codec (#13307)
* fix!: Fix group amino codec

* changelog
2022-09-15 17:06:43 +00:00
Aaron Craelius
5deb137f7a
feat: add proto annotation for Msg services (#13178)
* feat: add proto annotation for Msg services

* add annotation to Msg services

* proto gen

* add CHANGELOG entry

* expand doc string

* codegen

* revert

* proto-gen

* revert
2022-09-14 09:27:45 +00:00
Matt Kocubinski
b96bed5534
feat: add mempool interfaces (#13249)
* working out interfaces

* integration to checkTx

* use struct fields directly in sz calculation

* fix typo

* nil guard on mempool

* Remove tx builder method

* impl with panic
2022-09-13 21:25:44 +02:00
atheeshp
04858ea2ea
fix: sequence in sign-batch (#13200)
## Description

Closes: #13199 



---

### 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/main/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/main/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/main/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)
2022-09-13 13:35:51 +00:00
Marko
a79eafa0b1
build docker without build-linux (#13257) 2022-09-13 10:08:38 +00:00
cool-developer
c2c2d24b14
add cli test (#13194)
Co-authored-by: Julien Robert <julien@rbrt.fr>
2022-09-13 08:52:58 +00:00
likhita-809
97a77a47dc
refactor(genutil): CLI tests using Tendermint Mock (#13190)
* wip

* wip

* wip: add more tests

* refactor tests

* add expCmdOutput field to tests struct

* remove unnecessary code

Co-authored-by: Marko <marbar3778@yahoo.com>
2022-09-12 15:27:32 +00:00
Marko
855695d677
feat: bring back filter logging (#13236)
* bring back filter logging

* fix build

* remove zerologger

* add changelog entry & docs

* fix lint
2022-09-12 16:08:13 +02:00
Emmanuel T Odeke
abe3e0c6da
perf: all: remove unnecessary allocations from strings.Builder.WriteString(fmt.Sprintf(...)) (#13230)
This change removes a code pattern that I noticed while on a late night
audit of cosmovisor in which
strings.Builder.WriteString(fmt.Sprintf(...))
calls were being made, yet that's counterproductive to using fmt.Fprintf
which will check whether the writer implements .WriteString and then
avoids the need to firstly build a string using fmt.Sprintf.

The performance wins from this change transcend all dimensions as
exhibited below:

```shell
$ benchstat before.txt after.txt
name            old time/op    new time/op    delta
DetailString-8    5.48µs ±23%    4.40µs ±11%  -19.79%  (p=0.000 n=20+17)

name            old alloc/op   new alloc/op   delta
DetailString-8    2.63kB ± 0%    2.11kB ± 0%  -19.76%  (p=0.000 n=20+20)

name            old allocs/op  new allocs/op  delta
DetailString-8      63.0 ± 0%      50.0 ± 0%  -20.63%  (p=0.000 n=20+20)
```

Fixes #13229
2022-09-09 21:57:46 +00:00
atheeshp
8cd279eeaf
feat: add mocks for x/slashing cli tests (#13215)
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
2022-09-09 15:29:45 +00:00
Julien Robert
5912f75a7d
fix: remove newly introduced simapp dependency (#13219) 2022-09-09 13:16:26 +02:00
likhita-809
fdf5a7b161
fix: Add withdraw proposal cmd to group's CLI tx cmds (#13214)
* add withdraw proposal cmd to group's cli tx cmds

* add changelog
2022-09-09 09:18:36 +02:00
Daniel Wedul
6a6e6c7802
feat(bank): Create message for Setting SendEnabled settings (#11981)
* go mod tidy everything.

* Add some third_party proto files that are imported but not included.

* [11859]: Add a new key for the SendEnabled flags and keeper methods for getting, setting, and deleting them.

* [11859]: Remove the send_enabled field from the bank Params proto.

* Revert "Add some third_party proto files that are imported but not included."

This reverts commit 8b7acf89f27825ba25bfef3379fd422a307a5e1b.

* [11859]: Regenerate the bank params stuff from the changed proto.

* [11859]: Add a send_enabled field to the bank genesis proto.

* Revert "[11859]: Remove the send_enabled field from the bank Params proto."

This reverts commit 0bd904c1f6ac0ea2d6e5b7dd43911d596cbf3ac9.

* Revert "[11859]: Regenerate the bank params stuff from the changed proto."

This reverts commit 33d4652696d2c3aefc6937dbf281525c1f86f79e.

* [11859]: Deprecate the bank Params send_enabled field.

* [11859]: Regenerate the bank go code from the updated protos.

* [11859]: Reduce the number of times the store is recreated during IsSendEnabledCoins. Store creation has some overhead.

* [11859]: Add the SendEnabled stuff to the genesis methods. Make a couple TODO notes. Create a way to iterate over the SendEnabled entries and get all of them.

* [11859]: Update the bank sim genesis stuff to create random SendEnabled entries similar to when they were params.

* Remove some of the bank params methods that are no longer meaningful.

* Add a comment about why we're calling a mutation method in a Validate function.

* [11859]: Add some more TODO notes and make the SendEnabled.String() function significantlly simpler.

* [11859]: Get rid of the SendEnabledParams type.

* Fix up a few comments.

* [11859]: Update the bank keeper test due to recent changes.

* [11859]: Tweak the bank Params and SendEnabled String funcs. Params no longer returns {} when there aren't any SendEnabled entries and the default is false. SendEnabled is back to outputting a yaml format.

* [11859]: Fix the params tests and add some new ones to it and key_test.

* [11859]: Create a 1-store method for updating several SendEnabled entries at once.

* [11859]: Create a migration for both the module and genesis state.

* [11859]: Create a new MsgSetSendEnabled for governanance proposals to set SendEnabled.

* [11859]: Add SetAllSendEnabled to the SendKeeper interface.

* [11859]: Add an authority to the bank keeper and create the handler for MsgSetSendEnabled.

* [11859]: Add an rpc endpoint for querying SendEnabled.

* [11859]: Implement the SendEnabled query.

* [11859]: Add a function for decoding a --page-key base64 value so that pagination can work as expected.

* [11859]: Implement a CLI command for querying SendEnabled.

* [11859]: Move the v047 store migration stuff into Migrate3to4 directly to prevent a circular dependency between 047 and the keeper. Not using the keeper for that would be a significant pain in the butt.

* [11869]: Implement the Msg interface for MsgSetSendEnabled.

* [11859]: Fix some unit tests that I broke along the way.

* [11859]: Reorg the funcs added to the SendKeeper interface.

* [11859]: Fix the return values of a couple of the MsgSetSendEnabled LegacyMsg funcs.

* [11859]: Tweak MigrateSendEnabled to add stuff to the existing slice (if there's anything to add). And then use that in the MigrateGenState function.

* [11859]: Don't set the Pagination field when looking up specific entries.

* [11859]: Put validateSendEnabledParams back to the way it was to allow reading the old Params without error.

* [11859]: Write up a bunch of unit tests.

* [11859]: Update the MsgSetSendEnabled.ValidateBasic() function with some extra failure points. Write up some tests.

* Update a test I fixed then broke.

* [11859]: Have the run-tests make target exit with a non-zero status if any of the tests fail.

* [11859]: Add changelog entries.

* [11859]: Add a missing func comment.

* [11859]: Only do a couple assertions if the elements exist to do so.

* [11859]: Add some more missing function comments.

* [11859]: Update the bank spec documentation.

* [11859]: Change name of WithPageKeyDecoded to FlagSetWithPageKeyDecoded, have it return an error and make MustFlagSetWithPageKeyDecoded for the one-liner.

* [11859]: Update the documentation on the SendEnabled query.

* [11859]: Add final newline to query.proto.

* [11859]: Upddate the SetSendEnabled endpoint to allow deleting entries and update the default value.

* [11859]: Regen code from protos to include recent changes.

* [11859]: Implement the functionality newly added to MsgSetSendEnabled.

* [11859]: Remove the SetSendEnabled msg and endpoint.

* [11859]: Add new fields to NewMsgSetSendEnabled.

* [11859]: Tweak the incorrect authority error a little to make it clearer.

* [11859]: Add some unit tests on handling of the MsgSetSendEnabled message.

* [11859]: Change the use_default field to use_default_for to make it less ambiguous.

* [11859]: Tweak a test to check that DeleteSendEnabled works with multiple denoms.

* [11859]: Add a test about a bad denom in the UseDefaultFor list.

* [11859]: Use nil instead of an empty slice of SendEnabled for defaults and where called for.

* [11859]: Update SetParams to migrate entries too.

* [11859]: Remove the spec doc info about the MsgSetSendEnabled that's part of another PR.

* [11859]: Update the bank spec docs again since that last merge undid it.

* [11859]: Update the changelog.

* Revert "[11859]: Update the changelog."

This reverts commit 85052b8579ec6bfac3411970a1597363329d6d66.

* [11859]: Update the changelog.

* [11859]: Rename the QuerySendEnabled message to QuerySendEnabledRequest to match the other messages in that proto.

* [11859]: Remove the authority field that is only needed for governance stuff (in the other PR).

* Revert "[11859]: Remove the authority field that is only needed for governance stuff (in the other PR)."

This reverts commit 93f414887109dc97062a68746616f7f5ce0e3648.

* [11859]: Add a version to the deprecation message.

* [11859]: Add unit test on MsgSetSendEnabled with the correct authority, but not signed by that address.

* [11859]: Update the comment on the now-deprecated SendEnabled params proto field to reference 0.46 instead of 0.47.

* Add some spacing to GetCmdQuerySendEnabled -> RunE.

* [11859]: Create banktypes.GenesisState.GetAllSendEnabled() to house the combination logic of the SendEnabled field and Params.SendEnabled. Have MigrateSendEnabled() use that. Remove some calls to MigrateSendEnabled and use GetAllSendEnabled in those cases.

* [11859]: Update Bank's ConsensusVersion to 4.

* [11859]: Add 'Since' comments to the new proto stuff.

* Add the authority to the bankInputs so it can be provided to NewBaseKeeper. I've no clue how that will get set though.

* [11859]: Fix a unit test that broke because it assumed the bank module's version was 3.

* [11859]: Remove an empty line.

Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>

* [11859]: Remove movement of SendEnabled from the `ExportGenesis` function too.

Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>

* [11859]: Hard-code the bank authority value with a TODO to allow injection of that value.

* [11859]: Inject the authority string for the bank module provider.

* [11859]: inject the bank authority value for module unit tests that need it.

* [11859]: Add a unit test for MsgSendEnabled.ValidateBasic that has an empty authority.

* [11859]: Don't require a MsgSetSendEnabled.Authority value in ValidateBasic. Maybe that field is supposed to be filed in by the governance module before passing on the message.

* [11859]: Update the capability testutil app_config to include the new bank authority value.

* [11859]: Undo the banktypes.Authority type thing.

* [11859]: Fix bad merge piece.

* Fix a couple unit tests that broke with the merge.

* [11859]: Remove the Route and Type LegacyMsg functions from the new MsgSetSendEnabled.

* [11859]: Add 'Since: cosmos-sdk 0.47' to the new proto stuff.

* [11859]: Get rid fo the BaseKeeper.GetAuthority since it was added to the SendKeeper.

* [11859]: emit an event when processing a SetSendEnabled.

* [11859]: Update MsgSetSendEnabled.ValidateBasic to return wrapped sdk errors.

* Add a link in the bank spec readme to the MsgUpdateParams.

* rename govtypesv1 import to govv1 since that's what's used elsewhere.

* [11859]: Update changelog link to point at the PR instead of the issue number.

* [11859]: Add some extra test cases for GetAuthority.

* Move changelog entry to unreleased.

* [11859]: Change a call to moduletestutil.MakeTestEncodingConfig (from simapp.MakeTestEncodingConfig).

* [11859]: Add SetSendEnabled to the MockBankKeeper.

* [11859]: make mocks.

* [11859]: Fix the bank app tests (had compilation issues due to merge changes).

* [11859]: Remove the set_default_send_enabled and default_send_enabled fields from MsgSetSendEnabled.

* [11859]: Remove any uses/references to the removed set_default_send_enabled and default_send_enabled fields.

Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Daniel Wedul <github@wedul.com>
Co-authored-by: Marko <marbar3778@yahoo.com>
2022-09-09 00:21:54 +00:00
Julien Robert
6d0ef15b0a
refactor: migrate to cosmos/gogoproto (#13070) 2022-09-08 17:27:48 +00:00
Amaury
d9972c4dd1
fix!: Fix gov amino codec (#13196)
* fix!: Fix gov amino codec

* changelog
2022-09-08 15:35:57 +00:00
Amaury
279f3f17a5
feat: Add proto annotation for deterministic queries (#13174)
* feat: Add proto annotation for deterministic queries

* Add comment

* Tweak comment

* protocgen

* Add gas
2022-09-08 13:33:40 +00:00
Marko
6ec25b6261
feat: consensus module (#13164)
* add module

* pulsar

* fix++

* adddress comments

* comments on genesis methods

* register migration

* Update x/consensus/exported/exported.go

Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>

* address

* remove annotations

* remove migrations

* fix lint

Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
2022-09-08 03:28:44 +00:00
atheeshp
1756c19cd7
feat: feegrant cli mocks (#13068)
* add mocks

* review changes

* fix tests

* review changes

* review changes

* review

Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
2022-09-07 17:02:59 +00:00
likhita-809
ff3803fdc6
refactor(upgrade): CLI tests using Tendermint Mock (#13170)
* wip

* add cli tests

Co-authored-by: Marko <marbar3778@yahoo.com>
2022-09-07 15:27:12 +00:00