Skip to content

Commit 455286b

Browse files
authored
Node Syncing Issues: Taker fee swaps (#1316)
* add interval and enable boolean for taker fees * swap message * message removal * update params * minor review change
1 parent cfc5dee commit 455286b

File tree

11 files changed

+639
-192
lines changed

11 files changed

+639
-192
lines changed

api/elys/parameter/params.pulsar.go

Lines changed: 154 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/elys/parameter/tx.pulsar.go

Lines changed: 191 additions & 66 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

proto/elys/parameter/params.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,6 @@ message Params {
5151
(gogoproto.nullable) = false
5252
];
5353
string taker_fee_collection_address = 7;
54+
bool enable_taker_fee_swap = 8;
55+
uint64 taker_fee_collection_interval = 9;
5456
}

proto/elys/parameter/tx.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ message MsgUpdateTakerFees {
9090
(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec",
9191
(gogoproto.nullable) = false
9292
];
93+
bool enable_taker_fee_swap = 3;
94+
uint64 taker_fee_collection_interval = 4;
9395
}
9496

9597
message MsgUpdateTakerFeesResponse {}

x/masterchef/keeper/abci.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ import (
2020

2121
// BeginBlocker of amm module
2222
func (k Keeper) BeginBlocker(ctx sdk.Context) error {
23+
params := k.parameterKeeper.GetParams(ctx)
2324
// convert balances in taker address to elys and burn them
24-
k.ProcessTakerFee(ctx)
25+
if ctx.BlockHeight()%int64(params.TakerFeeCollectionInterval) == 0 && params.EnableTakerFeeSwap {
26+
k.ProcessTakerFee(ctx)
27+
}
2528
return nil
2629
}
2730

x/parameter/keeper/msg_server.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ func (k msgServer) UpdateTakerFees(goCtx context.Context, msg *types.MsgUpdateTa
8282

8383
params := k.GetParams(ctx)
8484
params.TakerFees = msg.TakerFees
85+
params.EnableTakerFeeSwap = msg.EnableTakerFeeSwap
86+
params.TakerFeeCollectionInterval = msg.TakerFeeCollectionInterval
8587
k.SetParams(ctx, params)
8688
return &types.MsgUpdateTakerFeesResponse{}, nil
8789
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package migrations
2+
3+
import (
4+
sdk "github.com/cosmos/cosmos-sdk/types"
5+
)
6+
7+
func (m Migrator) V7Migration(ctx sdk.Context) error {
8+
// reset params
9+
params := m.keeper.GetParams(ctx)
10+
params.EnableTakerFeeSwap = true
11+
params.TakerFeeCollectionInterval = 1000 // blocks
12+
13+
m.keeper.SetParams(ctx, params)
14+
15+
return nil
16+
}

x/parameter/module.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ func (am AppModule) RegisterServices(cfg module.Configurator) {
119119
types.RegisterMsgServer(cfg.MsgServer(), keeper.NewMsgServerImpl(am.keeper))
120120
types.RegisterQueryServer(cfg.QueryServer(), am.keeper)
121121
m := migrations.NewMigrator(am.keeper)
122-
err := cfg.RegisterMigration(types.ModuleName, 5, m.V6Migration)
122+
err := cfg.RegisterMigration(types.ModuleName, 6, m.V7Migration)
123123
if err != nil {
124124
panic(err)
125125
}
@@ -144,7 +144,7 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw
144144
}
145145

146146
// ConsensusVersion is a sequence number for state-breaking change of the module. It should be incremented on each consensus-breaking change introduced by the module. To avoid wrong/empty versions, the initial version should be set to 1
147-
func (AppModule) ConsensusVersion() uint64 { return 6 }
147+
func (AppModule) ConsensusVersion() uint64 { return 7 }
148148

149149
// BeginBlock contains the logic that is automatically triggered at the beginning of each block
150150
func (am AppModule) BeginBlock(_ context.Context) error {

x/parameter/types/params.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,19 @@ func NewParams(
1717
rewardsDataLifeTime uint64,
1818
takerFees sdkmath.LegacyDec,
1919
takerFeeAddress string,
20+
enableTakerFeeSwap bool,
21+
takerFeeCollectionInterval uint64,
2022
) Params {
2123
return Params{
22-
MinCommissionRate: minCommissionRate,
23-
MaxVotingPower: maxVotingPower,
24-
MinSelfDelegation: minSelfDelegation,
25-
TotalBlocksPerYear: totalBlocksPerYear,
26-
RewardsDataLifetime: rewardsDataLifeTime,
27-
TakerFees: takerFees,
28-
TakerFeeCollectionAddress: takerFeeAddress,
24+
MinCommissionRate: minCommissionRate,
25+
MaxVotingPower: maxVotingPower,
26+
MinSelfDelegation: minSelfDelegation,
27+
TotalBlocksPerYear: totalBlocksPerYear,
28+
RewardsDataLifetime: rewardsDataLifeTime,
29+
TakerFees: takerFees,
30+
TakerFeeCollectionAddress: takerFeeAddress,
31+
EnableTakerFeeSwap: enableTakerFeeSwap,
32+
TakerFeeCollectionInterval: takerFeeCollectionInterval,
2933
}
3034
}
3135

@@ -39,6 +43,8 @@ func DefaultParams() Params {
3943
86400, // 1 day
4044
sdkmath.LegacyZeroDec(),
4145
authtypes.NewModuleAddress("taker_fee_collection").String(),
46+
true,
47+
100,
4248
)
4349
}
4450

@@ -72,6 +78,12 @@ func (p Params) Validate() error {
7278
if p.RewardsDataLifetime <= 0 {
7379
return fmt.Errorf("rewards data lifetime cannot be negative or zero")
7480
}
81+
82+
if p.EnableTakerFeeSwap {
83+
if p.TakerFeeCollectionInterval <= 0 {
84+
return fmt.Errorf("taker fee collection interval cannot be negative or zero")
85+
}
86+
}
7587
return nil
7688
}
7789

x/parameter/types/params.pb.go

Lines changed: 116 additions & 37 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)