Skip to content

Commit

Permalink
Merge pull request #16 from bze-alphateam/feature/burner
Browse files Browse the repository at this point in the history
v6.0.0
  • Loading branch information
faneaatiku committed Jan 31, 2023
2 parents e0013f7 + 170ba9b commit bd386e7
Show file tree
Hide file tree
Showing 246 changed files with 79,964 additions and 11,058 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
PACKAGES=$(shell go list ./... | grep -v '/simulation')
PACKAGE_NAME:=github.com/bze-alphateam/bze-v5
GOLANG_CROSS_VERSION = v1.17.2
GOLANG_CROSS_VERSION = v1.19.3
VERSION := $(shell echo $(shell git describe --tags 2>/dev/null ) | sed 's/^v//')
COMMIT := $(shell git log -1 --format='%H')
NETWORK ?= mainnet
Expand Down
199 changes: 152 additions & 47 deletions app/app.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package app

import (
v512 "github.com/bze-alphateam/bze/app/upgrades/v512"
v600 "github.com/bze-alphateam/bze/app/upgrades/v600"
storetypes "github.com/cosmos/cosmos-sdk/store/types"
"io"
"net/http"
"os"
Expand All @@ -26,6 +29,9 @@ import (
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
"github.com/cosmos/cosmos-sdk/x/auth/vesting"
vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"
"github.com/cosmos/cosmos-sdk/x/authz"
authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper"
authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module"
"github.com/cosmos/cosmos-sdk/x/bank"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
Expand Down Expand Up @@ -69,30 +75,40 @@ import (
upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client"
upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/cosmos/ibc-go/modules/apps/transfer"
ibctransferkeeper "github.com/cosmos/ibc-go/modules/apps/transfer/keeper"
ibctransfertypes "github.com/cosmos/ibc-go/modules/apps/transfer/types"
ibc "github.com/cosmos/ibc-go/modules/core"
ibcclient "github.com/cosmos/ibc-go/modules/core/02-client"
ibcclientclient "github.com/cosmos/ibc-go/modules/core/02-client/client"
ibcclienttypes "github.com/cosmos/ibc-go/modules/core/02-client/types"
ibcporttypes "github.com/cosmos/ibc-go/modules/core/05-port/types"
ibchost "github.com/cosmos/ibc-go/modules/core/24-host"
ibckeeper "github.com/cosmos/ibc-go/modules/core/keeper"
"github.com/cosmos/ibc-go/v2/modules/apps/transfer"
ibctransferkeeper "github.com/cosmos/ibc-go/v2/modules/apps/transfer/keeper"
ibctransfertypes "github.com/cosmos/ibc-go/v2/modules/apps/transfer/types"
ibc "github.com/cosmos/ibc-go/v2/modules/core"
ibcclient "github.com/cosmos/ibc-go/v2/modules/core/02-client"
ibcclientclient "github.com/cosmos/ibc-go/v2/modules/core/02-client/client"
ibcclienttypes "github.com/cosmos/ibc-go/v2/modules/core/02-client/types"
ibcporttypes "github.com/cosmos/ibc-go/v2/modules/core/05-port/types"
ibchost "github.com/cosmos/ibc-go/v2/modules/core/24-host"
ibckeeper "github.com/cosmos/ibc-go/v2/modules/core/keeper"
"github.com/spf13/cast"
abci "github.com/tendermint/tendermint/abci/types"
tmjson "github.com/tendermint/tendermint/libs/json"
"github.com/tendermint/tendermint/libs/log"
tmos "github.com/tendermint/tendermint/libs/os"
dbm "github.com/tendermint/tm-db"

"github.com/tendermint/spm/cosmoscmd"
"github.com/tendermint/spm/openapiconsole"
"github.com/tendermint/starport/starport/pkg/cosmoscmd"
"github.com/tendermint/starport/starport/pkg/openapiconsole"

"github.com/bze-alphateam/bze/docs"
scavengemodule "github.com/bze-alphateam/bze/x/scavenge"
scavengemodulekeeper "github.com/bze-alphateam/bze/x/scavenge/keeper"
scavengemoduletypes "github.com/bze-alphateam/bze/x/scavenge/types"

cointrunkmodule "github.com/bze-alphateam/bze/x/cointrunk"
cointrunkmoduleclient "github.com/bze-alphateam/bze/x/cointrunk/client"
cointrunkmodulekeeper "github.com/bze-alphateam/bze/x/cointrunk/keeper"
cointrunkmoduletypes "github.com/bze-alphateam/bze/x/cointrunk/types"

burnermodule "github.com/bze-alphateam/bze/x/burner"
burnermoduleclient "github.com/bze-alphateam/bze/x/burner/client"
burnermodulekeeper "github.com/bze-alphateam/bze/x/burner/keeper"
burnermoduletypes "github.com/bze-alphateam/bze/x/burner/types"
// this line is used by starport scaffolding # stargate/app/moduleImport
)

Expand All @@ -112,9 +128,12 @@ func getGovProposalHandlers() []govclient.ProposalHandler {
distrclient.ProposalHandler,
upgradeclient.ProposalHandler,
upgradeclient.CancelProposalHandler,
// this line is used by starport scaffolding # stargate/app/govProposalHandler
ibcclientclient.UpdateClientProposalHandler,
ibcclientclient.UpgradeProposalHandler,
cointrunkmoduleclient.AcceptedDomainProposalHandler,
cointrunkmoduleclient.PublisherProposalHandler,
burnermoduleclient.BurnCoinsProposalHandler,
// this line is used by starport scaffolding # stargate/app/govProposalHandler
)

return govProposalHandlers
Expand All @@ -140,25 +159,30 @@ var (
crisis.AppModuleBasic{},
slashing.AppModuleBasic{},
feegrantmodule.AppModuleBasic{},
authzmodule.AppModuleBasic{},
ibc.AppModuleBasic{},
upgrade.AppModuleBasic{},
evidence.AppModuleBasic{},
transfer.AppModuleBasic{},
vesting.AppModuleBasic{},
scavengemodule.AppModuleBasic{},
cointrunkmodule.AppModuleBasic{},
burnermodule.AppModuleBasic{},
// this line is used by starport scaffolding # stargate/app/moduleBasic
)

// module account permissions
maccPerms = map[string][]string{
authtypes.FeeCollectorName: nil,
distrtypes.ModuleName: nil,
minttypes.ModuleName: {authtypes.Minter},
stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking},
stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking},
govtypes.ModuleName: {authtypes.Burner},
ibctransfertypes.ModuleName: {authtypes.Minter, authtypes.Burner},
scavengemoduletypes.ModuleName: {authtypes.Minter, authtypes.Burner, authtypes.Staking},
authtypes.FeeCollectorName: nil,
distrtypes.ModuleName: nil,
minttypes.ModuleName: {authtypes.Minter},
stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking},
stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking},
govtypes.ModuleName: {authtypes.Burner},
ibctransfertypes.ModuleName: {authtypes.Minter, authtypes.Burner},
scavengemoduletypes.ModuleName: nil,
cointrunkmoduletypes.ModuleName: nil,
burnermoduletypes.ModuleName: {authtypes.Burner},
// this line is used by starport scaffolding # stargate/app/maccPerms
}
)
Expand Down Expand Up @@ -196,6 +220,7 @@ type App struct {

// keepers
AccountKeeper authkeeper.AccountKeeper
AuthzKeeper *authzkeeper.Keeper
BankKeeper bankkeeper.Keeper
CapabilityKeeper *capabilitykeeper.Keeper
StakingKeeper stakingkeeper.Keeper
Expand All @@ -215,7 +240,9 @@ type App struct {
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
ScopedTransferKeeper capabilitykeeper.ScopedKeeper

ScavengeKeeper scavengemodulekeeper.Keeper
ScavengeKeeper scavengemodulekeeper.Keeper
CointrunkKeeper cointrunkmodulekeeper.Keeper
BurnerKeeper burnermodulekeeper.Keeper
// this line is used by starport scaffolding # stargate/app/keeperDeclaration

// the module manager
Expand Down Expand Up @@ -245,11 +272,24 @@ func New(
bApp.SetInterfaceRegistry(interfaceRegistry)

keys := sdk.NewKVStoreKeys(
authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey,
minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey,
govtypes.StoreKey, paramstypes.StoreKey, ibchost.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey,
evidencetypes.StoreKey, ibctransfertypes.StoreKey, capabilitytypes.StoreKey,
authtypes.StoreKey,
banktypes.StoreKey,
stakingtypes.StoreKey,
minttypes.StoreKey,
distrtypes.StoreKey,
slashingtypes.StoreKey,
govtypes.StoreKey,
paramstypes.StoreKey,
ibchost.StoreKey,
upgradetypes.StoreKey,
feegrant.StoreKey,
evidencetypes.StoreKey,
ibctransfertypes.StoreKey,
capabilitytypes.StoreKey,
authzkeeper.StoreKey,
scavengemoduletypes.StoreKey,
cointrunkmoduletypes.StoreKey,
burnermoduletypes.StoreKey,
// this line is used by starport scaffolding # stargate/app/storeKey
)
tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey)
Expand Down Expand Up @@ -283,6 +323,14 @@ func New(
app.AccountKeeper = authkeeper.NewAccountKeeper(
appCodec, keys[authtypes.StoreKey], app.GetSubspace(authtypes.ModuleName), authtypes.ProtoBaseAccount, maccPerms,
)

authzKeeper := authzkeeper.NewKeeper(
keys[authzkeeper.StoreKey],
appCodec,
bApp.MsgServiceRouter(),
)
app.AuthzKeeper = &authzKeeper

app.BankKeeper = bankkeeper.NewBaseKeeper(
appCodec, keys[banktypes.StoreKey], app.AccountKeeper, app.GetSubspace(banktypes.ModuleName), app.ModuleAccountAddrs(),
)
Expand Down Expand Up @@ -320,14 +368,6 @@ func New(
appCodec, keys[ibchost.StoreKey], app.GetSubspace(ibchost.ModuleName), app.StakingKeeper, app.UpgradeKeeper, scopedIBCKeeper,
)

// register the proposal types
govRouter := govtypes.NewRouter()
govRouter.AddRoute(govtypes.RouterKey, govtypes.ProposalHandler).
AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)).
AddRoute(distrtypes.RouterKey, distr.NewCommunityPoolSpendProposalHandler(app.DistrKeeper)).
AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)).
AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper))

// Create Transfer Keepers
app.TransferKeeper = ibctransferkeeper.NewKeeper(
appCodec, keys[ibctransfertypes.StoreKey], app.GetSubspace(ibctransfertypes.ModuleName),
Expand All @@ -343,22 +383,53 @@ func New(
// If evidence needs to be handled for the app, set routes in router here and seal
app.EvidenceKeeper = *evidenceKeeper

app.GovKeeper = govkeeper.NewKeeper(
appCodec, keys[govtypes.StoreKey], app.GetSubspace(govtypes.ModuleName), app.AccountKeeper, app.BankKeeper,
&stakingKeeper, govRouter,
)

app.ScavengeKeeper = *scavengemodulekeeper.NewKeeper(
appCodec,
keys[scavengemoduletypes.StoreKey],
keys[scavengemoduletypes.MemStoreKey],
app.BankKeeper,
)

app.CointrunkKeeper = *cointrunkmodulekeeper.NewKeeper(
appCodec,
keys[cointrunkmoduletypes.StoreKey],
keys[cointrunkmoduletypes.MemStoreKey],
app.GetSubspace(cointrunkmoduletypes.ModuleName),
app.BankKeeper,
app.GovKeeper,
app.AccountKeeper,
app.DistrKeeper,
)
scavengeModule := scavengemodule.NewAppModule(appCodec, app.ScavengeKeeper)

app.BurnerKeeper = *burnermodulekeeper.NewKeeper(
appCodec,
keys[burnermoduletypes.StoreKey],
keys[burnermoduletypes.MemStoreKey],
app.GetSubspace(burnermoduletypes.ModuleName),
app.BankKeeper,
app.AccountKeeper,
)

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)
// this line is used by starport scaffolding # stargate/app/keeperDefinition

// register the proposal types
govRouter := govtypes.NewRouter()
govRouter.AddRoute(govtypes.RouterKey, govtypes.ProposalHandler).
AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)).
AddRoute(distrtypes.RouterKey, distr.NewCommunityPoolSpendProposalHandler(app.DistrKeeper)).
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))

app.GovKeeper = govkeeper.NewKeeper(
appCodec, keys[govtypes.StoreKey], app.GetSubspace(govtypes.ModuleName), app.AccountKeeper, app.BankKeeper,
&stakingKeeper, govRouter,
)

// Create static IBC router, add transfer route, then set and seal it
ibcRouter := ibcporttypes.NewRouter()
ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferModule)
Expand Down Expand Up @@ -390,12 +461,15 @@ func New(
slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper),
authzmodule.NewAppModule(appCodec, *app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
upgrade.NewAppModule(app.UpgradeKeeper),
evidence.NewAppModule(app.EvidenceKeeper),
ibc.NewAppModule(app.IBCKeeper),
params.NewAppModule(app.ParamsKeeper),
transferModule,
scavengeModule,
cointrunkModule,
burnerModule,
// this line is used by starport scaffolding # stargate/app/appModule
)

Expand All @@ -421,7 +495,10 @@ func New(
evidencetypes.ModuleName,
scavengemoduletypes.ModuleName,
vestingtypes.ModuleName,
authz.ModuleName,
ibctransfertypes.ModuleName,
cointrunkmoduletypes.ModuleName,
burnermoduletypes.ModuleName,
)

app.mm.SetOrderEndBlockers(
Expand All @@ -442,7 +519,10 @@ func New(
evidencetypes.ModuleName,
scavengemoduletypes.ModuleName,
vestingtypes.ModuleName,
authz.ModuleName,
ibctransfertypes.ModuleName,
cointrunkmoduletypes.ModuleName,
burnermoduletypes.ModuleName,
)

// NOTE: The genutils module must occur after staking so that pools are
Expand All @@ -468,16 +548,17 @@ func New(
feegrant.ModuleName,
upgradetypes.ModuleName,
vestingtypes.ModuleName,
authz.ModuleName,
paramstypes.ModuleName,
cointrunkmoduletypes.ModuleName,
burnermoduletypes.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()))

app.setupUpgradeHandlers()

// initialize stores
app.MountKVStores(keys)
app.MountTransientStores(tkeys)
Expand All @@ -502,6 +583,7 @@ func New(

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

if loadLatest {
if err := app.LoadLatestVersion(); err != nil {
Expand All @@ -518,11 +600,32 @@ func New(

func (app *App) setupUpgradeHandlers() {
app.UpgradeKeeper.SetUpgradeHandler(
"v5.1.2",
func(ctx sdk.Context, _plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
//do nothing on purpose
return vm, nil
})
v512.UpgradeName,
v512.CreateUpgradeHandler(),
)

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

upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
if err != nil {
panic(err)
}

if app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
return
}

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

// configure store loader that checks if version == upgradeHeight and applies store upgrades
app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades))
}
}

// Name returns the name of the App
Expand Down Expand Up @@ -668,6 +771,8 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
paramsKeeper.Subspace(ibctransfertypes.ModuleName)
paramsKeeper.Subspace(ibchost.ModuleName)
paramsKeeper.Subspace(scavengemoduletypes.ModuleName)
paramsKeeper.Subspace(cointrunkmoduletypes.ModuleName)
paramsKeeper.Subspace(burnermoduletypes.ModuleName)
// this line is used by starport scaffolding # stargate/app/paramSubspace

return paramsKeeper
Expand Down

2 comments on commit bd386e7

@effofxprime
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Running linter aginstt the updatted code resulted in this output

beezee@horace:~/bze$ golangci-lint run
testutil/keeper/burner.go:45:2: not enough arguments in call to keeper.NewKeeper
        have (*"github.com/cosmos/cosmos-sdk/codec".ProtoCodec, *"github.com/cosmos/cosmos-sdk/store/types".KVStoreKey, *"github.com/cosmos/cosmos-sdk/store/types".MemoryStoreKey, "github.com/cosmos/cosmos-sdk/x/params/types".Subspace, nil)
        want ("github.com/cosmos/cosmos-sdk/codec".BinaryCodec, "github.com/cosmos/cosmos-sdk/store/types".StoreKey, "github.com/cosmos/cosmos-sdk/store/types".StoreKey, "github.com/cosmos/cosmos-sdk/x/params/types".Subspace, "github.com/bze-alphateam/bze/x/burner/types".BankKeeper, "github.com/bze-alphateam/bze/x/burner/types".AccountKeeper) (typecheck)
        )
        ^
x/scavenge/module.go:80:34: Error return value of `types.RegisterQueryHandlerClient` is not checked (errcheck)
        types.RegisterQueryHandlerClient(context.Background(), mux, types.NewQueryClient(clientCtx))
                                        ^
x/burner/module.go:82:34: Error return value of `types.RegisterQueryHandlerClient` is not checked (errcheck)
        types.RegisterQueryHandlerClient(context.Background(), mux, types.NewQueryClient(clientCtx))
                                        ^
x/cointrunk/module.go:81:34: Error return value of `types.RegisterQueryHandlerClient` is not checked (errcheck)
        types.RegisterQueryHandlerClient(context.Background(), mux, types.NewQueryClient(clientCtx))
                                        ^
x/scavenge/types/codec.go:33:2: var `amino` is unused (unused)
        amino     = codec.NewLegacyAmino()
        ^
x/scavenge/client/cli/tx.go:19:2: const `flagPacketTimeoutTimestamp` is unused (unused)
        flagPacketTimeoutTimestamp = "packet-timeout-timestamp"
        ^
x/burner/client/cli/tx.go:19:2: const `flagPacketTimeoutTimestamp` is unused (unused)
        flagPacketTimeoutTimestamp = "packet-timeout-timestamp"
        ^
x/burner/client/cli/tx.go:20:2: const `listSeparator` is unused (unused)
        listSeparator              = ","
        ^
x/cointrunk/client/cli/tx.go:19:2: const `flagPacketTimeoutTimestamp` is unused (unused)
        flagPacketTimeoutTimestamp = "packet-timeout-timestamp"
        ^
x/cointrunk/client/cli/tx.go:20:2: const `listSeparator` is unused (unused)
        listSeparator              = ","
        ^
x/cointrunk/keeper/msg_server_add_article.go:18:20: S1002: should omit comparison to bool constant, can be simplified to `!publisher.Active` (gosimple)
        paid := !found || publisher.Active != true
                          ^
x/cointrunk/keeper/msg_server_add_article.go:86:5: S1002: should omit comparison to bool constant, can be simplified to `!acceptedDomain.Active` (gosimple)
        if acceptedDomain.Active != true {
           ^
x/cointrunk/keeper/msg_server_add_article.go:105:5: S1002: should omit comparison to bool constant, can be simplified to `!acceptedDomain.Active` (gosimple)
        if acceptedDomain.Active != true {
           ^
x/scavenge/keeper/msg_server_reveal_solution.go:25:6: ineffectual assignment to scavenge (ineffassign)
        var scavenge = types.Scavenge{}

@faneaatiku
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! Creating a github issue so we can fix it in the next release.

You're going to be haunted down to review my PRs starting with the next one 💯

Please sign in to comment.