Skip to content

Commit ee6f443

Browse files
committed
add unit test
1 parent d336ef6 commit ee6f443

File tree

7 files changed

+685
-85
lines changed

7 files changed

+685
-85
lines changed

x/restake/client/cli/tx.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66

7+
sdkmath "cosmossdk.io/math"
78
"github.com/cosmos/cosmos-sdk/client"
89
"github.com/cosmos/cosmos-sdk/client/flags"
910
"github.com/cosmos/cosmos-sdk/client/tx"
@@ -121,7 +122,7 @@ func GetTxCmdLockPower() *cobra.Command {
121122
}
122123

123124
key := args[0]
124-
amount, ok := sdk.NewIntFromString(args[1])
125+
amount, ok := sdkmath.NewIntFromString(args[1])
125126
if !ok {
126127
return fmt.Errorf("invalid amount")
127128
}

x/restake/keeper/grpc_query_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ func (suite *KeeperTestSuite) TestQueryRewards() {
123123
Key: ValidKey2,
124124
Rewards: nil,
125125
},
126+
{
127+
Key: ValidKey3,
128+
Rewards: nil,
129+
},
126130
},
127131
}
128132
},

x/restake/keeper/keeper_key.go

Lines changed: 50 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,36 @@
11
package keeper
22

33
import (
4+
sdkmath "cosmossdk.io/math"
45
sdk "github.com/cosmos/cosmos-sdk/types"
56
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
67

78
"github.com/bandprotocol/chain/v2/x/restake/types"
89
)
910

11+
func (k Keeper) GetOrCreateKey(ctx sdk.Context, keyName string) (types.Key, error) {
12+
key, err := k.GetKey(ctx, keyName)
13+
if err != nil {
14+
keyAccAddr, err := k.createKeyAccount(ctx, keyName)
15+
if err != nil {
16+
return types.Key{}, err
17+
}
18+
19+
key = types.Key{
20+
Name: keyName,
21+
PoolAddress: keyAccAddr.String(),
22+
IsActive: true,
23+
TotalPower: sdkmath.NewInt(0),
24+
RewardPerPowers: sdk.NewDecCoins(),
25+
Remainders: sdk.NewDecCoins(),
26+
}
27+
28+
k.SetKey(ctx, key)
29+
}
30+
31+
return key, nil
32+
}
33+
1034
// AddRewards adds rewards to the pool address and re-calculate reward_per_share of the key
1135
func (k Keeper) AddRewards(ctx sdk.Context, sender sdk.AccAddress, keyName string, rewards sdk.Coins) error {
1236
key, err := k.GetKey(ctx, keyName)
@@ -28,7 +52,7 @@ func (k Keeper) AddRewards(ctx sdk.Context, sender sdk.AccAddress, keyName strin
2852
}
2953

3054
decRewards := sdk.NewDecCoinsFromCoins(rewards.Sort()...)
31-
totalPower := sdk.NewDecFromInt(key.TotalPower)
55+
totalPower := sdkmath.LegacyNewDecFromInt(key.TotalPower)
3256
rewardPerPowers := decRewards.QuoDecTruncate(totalPower)
3357
truncatedRewards := decRewards.Sub(rewardPerPowers.MulDecTruncate(totalPower))
3458

@@ -50,29 +74,39 @@ func (k Keeper) AddRewards(ctx sdk.Context, sender sdk.AccAddress, keyName strin
5074
return nil
5175
}
5276

53-
func (k Keeper) GetOrCreateKey(ctx sdk.Context, keyName string) (types.Key, error) {
77+
func (k Keeper) IsActiveKey(ctx sdk.Context, keyName string) bool {
5478
key, err := k.GetKey(ctx, keyName)
5579
if err != nil {
56-
keyAccAddr, err := k.CreateKeyAccount(ctx, keyName)
57-
if err != nil {
58-
return types.Key{}, err
59-
}
80+
return false
81+
}
6082

61-
key = types.Key{
62-
Name: keyName,
63-
PoolAddress: keyAccAddr.String(),
64-
IsActive: true,
65-
TotalPower: sdk.NewInt(0),
66-
RewardPerPowers: sdk.NewDecCoins(),
67-
}
83+
return key.IsActive
84+
}
6885

69-
k.SetKey(ctx, key)
86+
func (k Keeper) DeactivateKey(ctx sdk.Context, keyName string) error {
87+
key, err := k.GetKey(ctx, keyName)
88+
if err != nil {
89+
return err
7090
}
7191

72-
return key, nil
92+
if !key.IsActive {
93+
return types.ErrKeyAlreadyDeactivated
94+
}
95+
96+
key.IsActive = false
97+
k.SetKey(ctx, key)
98+
99+
ctx.EventManager().EmitEvent(
100+
sdk.NewEvent(
101+
types.EventTypeDeactivateKey,
102+
sdk.NewAttribute(types.AttributeKeyKey, keyName),
103+
),
104+
)
105+
106+
return nil
73107
}
74108

75-
func (k Keeper) CreateKeyAccount(ctx sdk.Context, key string) (sdk.AccAddress, error) {
109+
func (k Keeper) createKeyAccount(ctx sdk.Context, key string) (sdk.AccAddress, error) {
76110
header := ctx.BlockHeader()
77111

78112
buf := []byte(key)
@@ -105,38 +139,6 @@ func (k Keeper) CreateKeyAccount(ctx sdk.Context, key string) (sdk.AccAddress, e
105139
return keyAccAddr, nil
106140
}
107141

108-
func (k Keeper) IsActiveKey(ctx sdk.Context, keyName string) bool {
109-
key, err := k.GetKey(ctx, keyName)
110-
if err != nil {
111-
return false
112-
}
113-
114-
return key.IsActive
115-
}
116-
117-
func (k Keeper) DeactivateKey(ctx sdk.Context, keyName string) error {
118-
key, err := k.GetKey(ctx, keyName)
119-
if err != nil {
120-
return err
121-
}
122-
123-
if !key.IsActive {
124-
return types.ErrKeyAlreadyDeactivated
125-
}
126-
127-
key.IsActive = false
128-
k.SetKey(ctx, key)
129-
130-
ctx.EventManager().EmitEvent(
131-
sdk.NewEvent(
132-
types.EventTypeDeactivateKey,
133-
sdk.NewAttribute(types.AttributeKeyKey, keyName),
134-
),
135-
)
136-
137-
return nil
138-
}
139-
140142
// -------------------------------
141143
// store part
142144
// -------------------------------

0 commit comments

Comments
 (0)