Skip to content

Commit

Permalink
Merge pull request #36 from bze-alphateam/feature/v7
Browse files Browse the repository at this point in the history
feature/v7
  • Loading branch information
faneaatiku committed May 3, 2024
2 parents 0df6b62 + daa4e89 commit ebd434b
Show file tree
Hide file tree
Showing 976 changed files with 450,868 additions and 1,288 deletions.
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,14 @@ endif

build-mac: check-version check-network go.sum
ifeq ($(OS), Darwin)
GOOS=darwin GOARCH=amd64 $(MAKE) build
GOOS=darwin GOARCH=amd64 go build -mod=readonly $(BUILD_FLAGS) $(BUILD_TAGS) -o $(BUILDDIR)/darwin-amd64/bzed ./cmd/bzed
else
LEDGER_ENABLED=false GOOS=darwin GOARCH=amd64 $(MAKE) build
LEDGER_ENABLED=false GOOS=darwin GOARCH=amd64 go build -mod=readonly $(BUILD_FLAGS) $(BUILD_TAGS) -o $(BUILDDIR)/darwin-amd64/bzed ./cmd/bzed
endif

build-mac-arm64: check-version check-network go.sum
ifeq ($(OS), Darwin)
LEDGER_ENABLED=false GOOS=darwin GOARCH=arm64 go build -mod=readonly $(BUILD_FLAGS) $(BUILD_TAGS) -o $(BUILDDIR)/darwin-arm64/bzed ./cmd/bzed
GOOS=darwin GOARCH=arm64 go build -mod=readonly $(BUILD_FLAGS) $(BUILD_TAGS) -o $(BUILDDIR)/darwin-arm64/bzed ./cmd/bzed
else
LEDGER_ENABLED=false GOOS=darwin GOARCH=arm64 go build -mod=readonly $(BUILD_FLAGS) $(BUILD_TAGS) -o $(BUILDDIR)/darwin-arm64/bzed ./cmd/bzed
endif
Expand Down
155 changes: 124 additions & 31 deletions app/app.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,22 @@
package app

import (
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"
"github.com/bze-alphateam/bze/app/openapi"
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 @@ -131,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 @@ -166,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 @@ -181,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 @@ -243,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 @@ -293,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 @@ -413,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 @@ -426,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 @@ -474,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 @@ -503,6 +593,10 @@ func New(
ibctransfertypes.ModuleName,
cointrunkmoduletypes.ModuleName,
burnermoduletypes.ModuleName,
tokenfactorytypes.ModuleName,
tradebintypes.ModuleName,
epochstypes.ModuleName,
rewardstypes.ModuleName,
)

app.mm.SetOrderEndBlockers(
Expand All @@ -527,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 @@ -556,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 @@ -587,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 @@ -602,24 +705,10 @@ func New(
return app
}

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

app.UpgradeKeeper.SetUpgradeHandler(
v600.UpgradeName,
v600.CreateUpgradeHandler(&app.CointrunkKeeper),
)
app.UpgradeKeeper.SetUpgradeHandler(
"v6.0.0-bis",
v600.CreateUpgradeHandler(&app.CointrunkKeeper),
)

app.UpgradeKeeper.SetUpgradeHandler(
v610.UpgradeName,
v610.CreateUpgradeHandler(),
v700.UpgradeName,
v700.CreateUpgradeHandler(cfg, app.mm),
)

upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
Expand All @@ -631,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 @@ -752,9 +841,10 @@ func (app *App) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig
ModuleBasics.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)

// register app's OpenAPI routes.
apiSvr.Router.Handle("/static/openapi.yml", http.FileServer(http.FS(docs.Docs)))
//removed by SDK upgrade
//apiSvr.Router.HandleFunc("/", openapiconsole.Handler(Name, "/static/openapi.yml"))
if apiConfig.Swagger {
apiSvr.Router.Handle("/static/openapi.yml", http.FileServer(http.FS(docs.Docs)))
apiSvr.Router.HandleFunc("/", openapi.Handler(Name, "/static/openapi.yml"))
}
}

// RegisterTxService implements the Application.RegisterTxService method.
Expand Down Expand Up @@ -784,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
25 changes: 25 additions & 0 deletions app/openapi/console.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package openapi

import (
"embed"
"html/template"
"net/http"
)

//go:embed index.tpl
var index embed.FS

// Handler returns an http handler that servers OpenAPI console for an OpenAPI spec at specURL.
func Handler(title, specURL string) http.HandlerFunc {
t, _ := template.ParseFS(index, "index.tpl")

return func(w http.ResponseWriter, req *http.Request) {
_ = t.Execute(w, struct {
Title string
URL string
}{
title,
specURL,
})
}
}
25 changes: 25 additions & 0 deletions app/openapi/index.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>{{ .Title }}</title>
<link rel="stylesheet" type="text/css" href="//unpkg.com/swagger-ui-dist@3.40.0/swagger-ui.css" />
<link rel="icon" type="image/png" href="//unpkg.com/swagger-ui-dist@3.40.0/favicon-16x16.png" />
</head>
<body>
<div id="swagger-ui"></div>

<script src="//unpkg.com/swagger-ui-dist@3.40.0/swagger-ui-bundle.js"></script>
<script>
// init Swagger for faucet's openapi.yml.
window.onload = function() {
window.ui = SwaggerUIBundle({
url: {{ .URL }},
dom_id: "#swagger-ui",
deepLinking: true,
layout: "BaseLayout",
});
}
</script>
</body>
</html>
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)
}
}

0 comments on commit ebd434b

Please sign in to comment.