Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BZE - v7 epochs, rewards, tradebin, tokenfactory modules #35

Closed
wants to merge 97 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
69285d9
modified address prefix and name for testnet
faneaatiku Mar 29, 2022
a769d19
restarted testnet
faneaatiku Mar 29, 2022
d4690b2
Merge pull request #5 from bze-alphateam/main
faneaatiku Oct 25, 2022
620e5b6
Merge pull request #6 from bze-alphateam/feature/security-patch
faneaatiku Oct 25, 2022
2657abf
Merge remote-tracking branch 'origin/feature/security-patch' into tes…
faneaatiku Oct 26, 2022
9016577
Merge remote-tracking branch 'origin/feature/security-patch' into tes…
faneaatiku Oct 26, 2022
148e2bf
Merge remote-tracking branch 'origin/feature/security-patch' into tes…
faneaatiku Oct 26, 2022
73d8cfd
Merge pull request #10 from bze-alphateam/main
faneaatiku Nov 8, 2022
6f64cb2
Merge pull request #9 from bze-alphateam/feature/fix-update-client-route
faneaatiku Nov 8, 2022
2ddeb65
Merge branch 'feature/fix-update-client-route' into testnet-2
faneaatiku Nov 18, 2022
733b7f3
Merge pull request #12 from bze-alphateam/feature/burner
faneaatiku Dec 29, 2022
2f06c2a
Merge pull request #13 from bze-alphateam/feature/burner
faneaatiku Dec 29, 2022
0a8efea
Merge pull request #14 from bze-alphateam/feature/burner
faneaatiku Dec 30, 2022
f5b3cad
Merge remote-tracking branch 'origin/feature/burner' into testnet-2
faneaatiku Dec 30, 2022
8bdcff1
another upgrade for testnet only
faneaatiku Dec 30, 2022
a15d493
Merge pull request #15 from bze-alphateam/feature/burner
faneaatiku Dec 30, 2022
874a41e
Merge pull request #27 from bze-alphateam/feature/v6.1
faneaatiku Nov 9, 2023
0df6b62
Merge pull request #29 from bze-alphateam/feature/v6.1
faneaatiku Nov 9, 2023
26b42dc
scaffolded tokenfactory module
faneaatiku Feb 7, 2024
c5e2299
added create denom functionality
faneaatiku Feb 8, 2024
bb12404
genesis export/import/init for token factory
faneaatiku Feb 9, 2024
2091028
added token factory mint message
faneaatiku Feb 9, 2024
eff76fa
added burning token message
faneaatiku Feb 9, 2024
6bec55a
finished token factory
faneaatiku Feb 12, 2024
5a86c6f
Merge pull request #30 from bze-alphateam/feature/token-factory
faneaatiku Feb 12, 2024
53c27b2
created module
faneaatiku Feb 14, 2024
6aa8d70
validate params for token factory and tradebin
faneaatiku Feb 14, 2024
5ee8991
create market message
faneaatiku Feb 15, 2024
934d0c9
integrated tradebin module
faneaatiku Feb 15, 2024
8433e21
fixed alias storage
faneaatiku Feb 15, 2024
9b30ea5
get market query should check market alias too
faneaatiku Feb 25, 2024
87ab4a5
added asset markets query to find all markets of an asset
faneaatiku Feb 27, 2024
d896652
modified assets names to user friendly values
faneaatiku Feb 27, 2024
a8e26ad
added dex order create
faneaatiku Feb 28, 2024
592704b
added empty readme
faneaatiku Feb 28, 2024
afd9016
added cancel order message
faneaatiku Feb 29, 2024
994d807
added proto messages for orders and checks on order cancel
faneaatiku Mar 1, 2024
ade4cd2
finished order matching engine
faneaatiku Mar 3, 2024
a91da61
added orders queries
faneaatiku Mar 3, 2024
31dcfdd
use market and denoms as query string
faneaatiku Mar 3, 2024
cfac39f
fixed order amount
faneaatiku Mar 3, 2024
da34246
added import/export genesis
faneaatiku Mar 3, 2024
1d8e400
fixed order duplication bug
faneaatiku Mar 7, 2024
5d3d397
fixed genesis order saving and added query order by id
faneaatiku Mar 7, 2024
98f2886
tests setup and order matching engine tests
faneaatiku Mar 10, 2024
bba191f
test grpc queries
faneaatiku Mar 10, 2024
ae15051
use cosmos sdk math functions for safety
faneaatiku Mar 10, 2024
c590882
test msg create market and cancel order server impl
faneaatiku Mar 11, 2024
360af20
tested msg server order create
faneaatiku Mar 11, 2024
c65add8
added events for tradebin actions
faneaatiku Mar 11, 2024
4888753
added stress test for order matching engine
faneaatiku Mar 11, 2024
f92585f
refactored logs
faneaatiku Mar 12, 2024
5b0df9e
Merge pull request #31 from bze-alphateam/feature/tradebin
faneaatiku Mar 12, 2024
f312f1d
added epochs module and fixed v7 upgrade handlers
faneaatiku Mar 13, 2024
b1bf219
added epochs querying
faneaatiku Mar 13, 2024
49cbead
added epochs tests
faneaatiku Mar 13, 2024
a21bbbf
Merge pull request #32 from bze-alphateam/feature/epochs
faneaatiku Mar 13, 2024
e14de72
cleanup tradebin keeper dependencies
faneaatiku Mar 13, 2024
53404da
created rewards module
faneaatiku Mar 13, 2024
f397312
add and update staking reward
faneaatiku Mar 14, 2024
6e0d90b
updated submit tx
faneaatiku Mar 14, 2024
86c1c1d
rollback tradebin orders in case of disaster
faneaatiku Mar 14, 2024
e7eaac4
add rewards messages, queries and cli
faneaatiku Mar 15, 2024
bd0295a
updated simapp
faneaatiku Mar 15, 2024
cc533ea
added msg server staking reward test suite
faneaatiku Mar 16, 2024
8efa365
updated msg create and update tests
faneaatiku Mar 16, 2024
f1dd003
added join/exit stake messages
faneaatiku Mar 17, 2024
bde7b09
added staking rewards claim, join and exit
faneaatiku Mar 17, 2024
29d9dbb
distribute staking rewards and implemented locking period
faneaatiku Mar 19, 2024
8538a8d
added epochs hooks to rewards
faneaatiku Mar 19, 2024
28b7083
added pending unlock to genesis
faneaatiku Mar 19, 2024
b3c1b79
added dex hook to rewards module
faneaatiku Mar 19, 2024
1dc515c
added expiration for trading rewards, moved staking pending unlock fr…
faneaatiku Mar 26, 2024
5366796
added trading reward distribution
faneaatiku Mar 26, 2024
7416b2d
fixed staking reward removal at last exit
faneaatiku Mar 26, 2024
4859465
fix min staking amount check
faneaatiku Mar 26, 2024
5bb41b7
validate genesis on rewards module
faneaatiku Mar 26, 2024
2511be4
modified get trading reward to use two indexes
faneaatiku Mar 26, 2024
749f148
cleanup trading reward candidates after expiration
faneaatiku Apr 8, 2024
c1142e6
updated some dependencies
faneaatiku Apr 13, 2024
7b91d00
added trading reward leaderboard queries by reward id and market id
faneaatiku Apr 13, 2024
26e283b
fixed trading reward queries
faneaatiku Apr 14, 2024
5404194
fixed key duplication on token staking participant
faneaatiku Apr 18, 2024
b5271e5
added gov proposal to enable trading reward
faneaatiku Apr 18, 2024
ebb8ad6
upgraded ibc-go
faneaatiku Apr 18, 2024
f11f7a3
added events for rewards module
faneaatiku Apr 18, 2024
d199ac8
added distribute staking reward message
faneaatiku Apr 18, 2024
9fa71eb
fixed broken tests and commented outdated ones
faneaatiku Apr 18, 2024
3eb65d3
added tests for queries and msg servers and fixed bugs
faneaatiku Apr 19, 2024
ddb39dc
test join staking and fix trading reward counter
faneaatiku Apr 20, 2024
62f2036
more tests and fixes
faneaatiku Apr 20, 2024
e355a8e
test hooks and renamed confusing function
faneaatiku Apr 20, 2024
70ad4b2
Merge pull request #34 from bze-alphateam/feature/rewards
faneaatiku Apr 20, 2024
7da1392
removed forced enabled swagger
faneaatiku Apr 24, 2024
daa4e89
Merge branch 'testnet-2' into feature/v7
faneaatiku May 3, 2024
9c7b98c
fixed min staking rewards check
faneaatiku May 30, 2024
cc429a2
fixed exit from staking reward without locking
faneaatiku May 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
148 changes: 121 additions & 27 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,21 @@ package app

import (
"github.com/bze-alphateam/bze/app/openapi"
v512 "github.com/bze-alphateam/bze/app/upgrades/v512"
v600 "github.com/bze-alphateam/bze/app/upgrades/v600"
v610 "github.com/bze-alphateam/bze/app/upgrades/v610"
v700 "github.com/bze-alphateam/bze/app/upgrades/v700"
"github.com/bze-alphateam/bze/x/epochs"
epochskeeper "github.com/bze-alphateam/bze/x/epochs/keeper"
epochstypes "github.com/bze-alphateam/bze/x/epochs/types"
"github.com/bze-alphateam/bze/x/rewards"
rewardsclient "github.com/bze-alphateam/bze/x/rewards/client"
rewardskeeper "github.com/bze-alphateam/bze/x/rewards/keeper"
rewardstypes "github.com/bze-alphateam/bze/x/rewards/types"
"github.com/bze-alphateam/bze/x/tradebin"
tradebinkeeper "github.com/bze-alphateam/bze/x/tradebin/keeper"
tradebintypes "github.com/bze-alphateam/bze/x/tradebin/types"

"github.com/bze-alphateam/bze/x/tokenfactory"
tokenfactorykeeper "github.com/bze-alphateam/bze/x/tokenfactory/keeper"
tokenfactorytypes "github.com/bze-alphateam/bze/x/tokenfactory/types"

"io"
"net/http"
Expand Down Expand Up @@ -112,8 +124,8 @@ import (
)

const (
AccountAddressPrefix = "bze"
Name = "bze"
AccountAddressPrefix = "testbz"
Name = "tbze"
)

// this line is used by starport scaffolding # stargate/wasm/app/enabledProposals
Expand All @@ -132,6 +144,7 @@ func getGovProposalHandlers() []govclient.ProposalHandler {
cointrunkmoduleclient.AcceptedDomainProposalHandler,
cointrunkmoduleclient.PublisherProposalHandler,
burnermoduleclient.BurnCoinsProposalHandler,
rewardsclient.ActivateTradingRewardProposalHandler,
// this line is used by starport scaffolding # stargate/app/govProposalHandler
)

Expand Down Expand Up @@ -167,6 +180,10 @@ var (
scavengemodule.AppModuleBasic{},
cointrunkmodule.AppModuleBasic{},
burnermodule.AppModuleBasic{},
tokenfactory.AppModuleBasic{},
tradebin.AppModuleBasic{},
epochs.AppModuleBasic{},
rewards.AppModuleBasic{},
// this line is used by starport scaffolding # stargate/app/moduleBasic
)

Expand All @@ -182,6 +199,10 @@ var (
scavengemoduletypes.ModuleName: nil,
cointrunkmoduletypes.ModuleName: nil,
burnermoduletypes.ModuleName: {authtypes.Burner},
tokenfactorytypes.ModuleName: {authtypes.Minter, authtypes.Burner},
tradebintypes.ModuleName: nil,
epochstypes.ModuleName: nil,
rewardstypes.ModuleName: {authtypes.Burner},
// this line is used by starport scaffolding # stargate/app/maccPerms
}

Expand Down Expand Up @@ -244,9 +265,13 @@ type App struct {
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
ScopedTransferKeeper capabilitykeeper.ScopedKeeper

ScavengeKeeper scavengemodulekeeper.Keeper
CointrunkKeeper cointrunkmodulekeeper.Keeper
BurnerKeeper burnermodulekeeper.Keeper
ScavengeKeeper scavengemodulekeeper.Keeper
CointrunkKeeper cointrunkmodulekeeper.Keeper
BurnerKeeper burnermodulekeeper.Keeper
TokenFactoryKeeper tokenfactorykeeper.Keeper
TradebinKeeper tradebinkeeper.Keeper
EpochsKeeper epochskeeper.Keeper
RewardsKeeper rewardskeeper.Keeper
// this line is used by starport scaffolding # stargate/app/keeperDeclaration

// the module manager
Expand Down Expand Up @@ -294,6 +319,10 @@ func New(
scavengemoduletypes.StoreKey,
cointrunkmoduletypes.StoreKey,
burnermoduletypes.StoreKey,
tokenfactorytypes.StoreKey,
tradebintypes.StoreKey,
epochstypes.StoreKey,
rewardstypes.StoreKey,
// this line is used by starport scaffolding # stargate/app/storeKey
)
tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey)
Expand Down Expand Up @@ -414,9 +443,64 @@ func New(
app.AccountKeeper,
)

app.TokenFactoryKeeper = *tokenfactorykeeper.NewKeeper(
appCodec,
keys[tokenfactorytypes.StoreKey],
keys[tokenfactorytypes.MemStoreKey],
app.GetSubspace(tokenfactorytypes.ModuleName),
app.BankKeeper,
app.AccountKeeper,
app.DistrKeeper,
)

app.TradebinKeeper = *tradebinkeeper.NewKeeper(
appCodec,
keys[tradebintypes.StoreKey],
keys[tradebintypes.MemStoreKey],
app.GetSubspace(tradebintypes.ModuleName),
app.BankKeeper,
app.DistrKeeper,
)

app.EpochsKeeper = *epochskeeper.NewKeeper(
appCodec,
keys[epochstypes.StoreKey],
keys[epochstypes.MemStoreKey],
)

app.RewardsKeeper = *rewardskeeper.NewKeeper(
appCodec,
keys[rewardstypes.StoreKey],
keys[rewardstypes.MemStoreKey],
app.GetSubspace(rewardstypes.ModuleName),
app.BankKeeper,
app.DistrKeeper,
app.TradebinKeeper,
app.EpochsKeeper,
)

app.TradebinKeeper.SetOnOrderFillHooks(
[]tradebintypes.OnMarketOrderFill{
app.RewardsKeeper.GetOnOrderFillHook(),
},
)

app.EpochsKeeper.SetHooks(
[]epochstypes.EpochHook{
app.RewardsKeeper.GetDistributeAllStakingRewardsHook(),
app.RewardsKeeper.GetUnlockPendingUnlockParticipantsHook(),
app.RewardsKeeper.GetRemoveExpiredPendingTradingRewardsHook(),
app.RewardsKeeper.GetTradingRewardsDistributionHook(),
},
)

scavengeModule := scavengemodule.NewAppModule(appCodec, app.ScavengeKeeper)
cointrunkModule := cointrunkmodule.NewAppModule(appCodec, app.CointrunkKeeper, app.AccountKeeper, app.BankKeeper, app.DistrKeeper)
burnerModule := burnermodule.NewAppModule(appCodec, app.BurnerKeeper, app.AccountKeeper, app.BankKeeper)
tokenfactoryModule := tokenfactory.NewAppModule(appCodec, app.TokenFactoryKeeper, app.AccountKeeper, app.BankKeeper)
tradebinModule := tradebin.NewAppModule(appCodec, app.TradebinKeeper, app.BankKeeper)
epochsModule := epochs.NewAppModule(appCodec, app.EpochsKeeper)
rewardsModule := rewards.NewAppModule(appCodec, app.RewardsKeeper, app.AccountKeeper, app.BankKeeper)
// this line is used by starport scaffolding # stargate/app/keeperDefinition

// register the proposal types
Expand All @@ -427,7 +511,8 @@ func New(
AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)).
AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)).
AddRoute(cointrunkmoduletypes.RouterKey, cointrunkmodule.NewCointrunkProposalHandler(app.CointrunkKeeper)).
AddRoute(burnermoduletypes.RouterKey, burnermodule.NewBurnerProposalHandler(app.BurnerKeeper))
AddRoute(burnermoduletypes.RouterKey, burnermodule.NewBurnerProposalHandler(app.BurnerKeeper)).
AddRoute(rewardstypes.RouterKey, rewards.NewRewardsProposalHandler(app.RewardsKeeper))

app.GovKeeper = govkeeper.NewKeeper(
appCodec, keys[govtypes.StoreKey], app.GetSubspace(govtypes.ModuleName), app.AccountKeeper, app.BankKeeper,
Expand Down Expand Up @@ -475,6 +560,10 @@ func New(
scavengeModule,
cointrunkModule,
burnerModule,
tokenfactoryModule,
tradebinModule,
epochsModule,
rewardsModule,
// this line is used by starport scaffolding # stargate/app/appModule
)

Expand Down Expand Up @@ -504,6 +593,10 @@ func New(
ibctransfertypes.ModuleName,
cointrunkmoduletypes.ModuleName,
burnermoduletypes.ModuleName,
tokenfactorytypes.ModuleName,
tradebintypes.ModuleName,
epochstypes.ModuleName,
rewardstypes.ModuleName,
)

app.mm.SetOrderEndBlockers(
Expand All @@ -528,6 +621,10 @@ func New(
ibctransfertypes.ModuleName,
cointrunkmoduletypes.ModuleName,
burnermoduletypes.ModuleName,
tokenfactorytypes.ModuleName,
tradebintypes.ModuleName,
epochstypes.ModuleName,
rewardstypes.ModuleName,
)

// NOTE: The genutils module must occur after staking so that pools are
Expand Down Expand Up @@ -557,12 +654,17 @@ func New(
paramstypes.ModuleName,
cointrunkmoduletypes.ModuleName,
burnermoduletypes.ModuleName,
tokenfactorytypes.ModuleName,
tradebintypes.ModuleName,
epochstypes.ModuleName,
rewardstypes.ModuleName,
// this line is used by starport scaffolding # stargate/app/initGenesis
)

app.mm.RegisterInvariants(&app.CrisisKeeper)
app.mm.RegisterRoutes(app.Router(), app.QueryRouter(), encodingConfig.Amino)
app.mm.RegisterServices(module.NewConfigurator(app.appCodec, app.MsgServiceRouter(), app.GRPCQueryRouter()))
cfg := module.NewConfigurator(app.appCodec, app.MsgServiceRouter(), app.GRPCQueryRouter())
app.mm.RegisterServices(cfg)

// initialize stores
app.MountKVStores(keys)
Expand All @@ -588,7 +690,7 @@ func New(

app.SetAnteHandler(anteHandler)
app.SetEndBlocker(app.EndBlocker)
app.setupUpgradeHandlers()
app.setupUpgradeHandlers(cfg)

if loadLatest {
if err := app.LoadLatestVersion(); err != nil {
Expand All @@ -603,20 +705,10 @@ func New(
return app
}

func (app *App) setupUpgradeHandlers() {
app.UpgradeKeeper.SetUpgradeHandler(
v512.UpgradeName,
v512.CreateUpgradeHandler(),
)

app.UpgradeKeeper.SetUpgradeHandler(
v600.UpgradeName,
v600.CreateUpgradeHandler(&app.CointrunkKeeper),
)

func (app *App) setupUpgradeHandlers(cfg module.Configurator) {
app.UpgradeKeeper.SetUpgradeHandler(
v610.UpgradeName,
v610.CreateUpgradeHandler(),
v700.UpgradeName,
v700.CreateUpgradeHandler(cfg, app.mm),
)

upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
Expand All @@ -628,9 +720,9 @@ func (app *App) setupUpgradeHandlers() {
return
}

if upgradeInfo.Name == v600.UpgradeName {
if upgradeInfo.Name == v700.UpgradeName {
storeUpgrades := storetypes.StoreUpgrades{
Added: []string{burnermoduletypes.StoreKey, cointrunkmoduletypes.StoreKey, authzkeeper.StoreKey},
Added: []string{tokenfactorytypes.StoreKey, tradebintypes.StoreKey, epochstypes.StoreKey, rewardstypes.StoreKey},
}

// configure store loader that checks if version == upgradeHeight and applies store upgrades
Expand Down Expand Up @@ -751,7 +843,6 @@ func (app *App) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig
// register app's OpenAPI routes.
if apiConfig.Swagger {
apiSvr.Router.Handle("/static/openapi.yml", http.FileServer(http.FS(docs.Docs)))
//removed by SDK upgrade
apiSvr.Router.HandleFunc("/", openapi.Handler(Name, "/static/openapi.yml"))
}
}
Expand Down Expand Up @@ -783,6 +874,9 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
paramsKeeper.Subspace(scavengemoduletypes.ModuleName)
paramsKeeper.Subspace(cointrunkmoduletypes.ModuleName)
paramsKeeper.Subspace(burnermoduletypes.ModuleName)
paramsKeeper.Subspace(tokenfactorytypes.ModuleName)
paramsKeeper.Subspace(tradebintypes.ModuleName)
paramsKeeper.Subspace(rewardstypes.ModuleName)
// this line is used by starport scaffolding # stargate/app/paramSubspace

return paramsKeeper
Expand Down
28 changes: 28 additions & 0 deletions app/upgrades/v700/upgrades.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package v700

import (
burnermodule "github.com/bze-alphateam/bze/x/burner"
burnermoduletypes "github.com/bze-alphateam/bze/x/burner/types"
cointrunkmodule "github.com/bze-alphateam/bze/x/cointrunk"
cointrunkmoduletypes "github.com/bze-alphateam/bze/x/cointrunk/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
)

const UpgradeName = "v7.0.0"

func CreateUpgradeHandler(
cfg module.Configurator,
mm *module.Manager,
) upgradetypes.UpgradeHandler {

return func(ctx sdk.Context, _plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
//add older modules not present in module_versions yet
vm[burnermoduletypes.ModuleName] = burnermodule.AppModule{}.ConsensusVersion()
vm[cointrunkmoduletypes.ModuleName] = cointrunkmodule.AppModule{}.ConsensusVersion()

//run default migrations in order to init new module's genesis and to have them in vm
return mm.RunMigrations(ctx, cfg, vm)
}
}