Skip to content

Commit

Permalink
feat(x/auth): Add auth sim decoder case for AccountNumberStoreKeyPref…
Browse files Browse the repository at this point in the history
…ix (cosmos#13048)

* [13028]: Add auth sim decoder case for AccountNumberStoreKeyPrefix (and a unit test case for it).

* [13028]: Add changelog entry.
  • Loading branch information
SpicyLemon authored and Wryhder committed Oct 26, 2022
1 parent 539ee7e commit 295029f
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
* [#12455](https://github.com/cosmos/cosmos-sdk/pull/12455) Show attempts count in error for signing.
* [#12886](https://github.com/cosmos/cosmos-sdk/pull/12886) Amortize cost of processing cache KV store
* [#12953](https://github.com/cosmos/cosmos-sdk/pull/12953) Change the default priority mechanism to be based on gas price.
* [#13048](https://github.com/cosmos/cosmos-sdk/pull/13048) Add handling of AccountNumberStoreKeyPrefix to the x/auth simulation decoder.

### State Machine Breaking

Expand Down
15 changes: 15 additions & 0 deletions x/auth/simulation/decoder.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
gogotypes "github.com/gogo/protobuf/types"

"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/kv"
"github.com/cosmos/cosmos-sdk/x/auth/types"
)
Expand Down Expand Up @@ -41,6 +42,20 @@ func NewDecodeStore(ak AuthUnmarshaler) func(kvA, kvB kv.Pair) string {

return fmt.Sprintf("GlobalAccNumberA: %d\nGlobalAccNumberB: %d", globalAccNumberA, globalAccNumberB)

case bytes.HasPrefix(kvA.Key, types.AccountNumberStoreKeyPrefix):
var accNumA, accNumB sdk.AccAddress
err := accNumA.Unmarshal(kvA.Value)
if err != nil {
panic(err)
}

err = accNumB.Unmarshal(kvB.Value)
if err != nil {
panic(err)
}

return fmt.Sprintf("AccNumA: %s\nAccNumB: %s", accNumA, accNumB)

default:
panic(fmt.Sprintf("unexpected %s key %X (%s)", types.ModuleName, kvA.Key, kvA.Key))
}
Expand Down
5 changes: 5 additions & 0 deletions x/auth/simulation/decoder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ func TestDecodeStore(t *testing.T) {
Key: types.GlobalAccountNumberKey,
Value: cdc.MustMarshal(&globalAccNumber),
},
{
Key: types.AccountNumberStoreKey(5),
Value: acc.GetAddress().Bytes(),
},
{
Key: []byte{0x99},
Value: []byte{0x99},
Expand All @@ -63,6 +67,7 @@ func TestDecodeStore(t *testing.T) {
}{
{"Account", fmt.Sprintf("%v\n%v", acc, acc)},
{"GlobalAccNumber", fmt.Sprintf("GlobalAccNumberA: %d\nGlobalAccNumberB: %d", globalAccNumber, globalAccNumber)},
{"AccNum", fmt.Sprintf("AccNumA: %s\nAccNumB: %s", acc.GetAddress(), acc.GetAddress())},
{"other", ""},
}

Expand Down

0 comments on commit 295029f

Please sign in to comment.