mirror of
https://github.com/planetmint/planetmint-go.git
synced 2025-07-09 22:12:31 +00:00

* added a MqttMonitor module with levelDB and periodic cleanup * initialized in the app * passed to dao keeper * added conversion methods (string2unixtime, byte ToJSON) * removed obsolete keeper code * maded RDDLToken.Factor public * added explicit mqtt client to the monitor module * restart mqtt connection in mqttmonitor on connection loss * adjusted mqttmock structure to be compatible * added some linter exclusions to let the monitor tool pass * created a MockMqttMonitor interface and mock object * used this to pass tests * made the MockMqttMonitor a global object so that it can be easily mocked * removed MockMqttMonitor from the app/keeper initialization * adjusted test cases to register "active machines" to the mqttmonitor * added mutex in mocks to protect against data races * defined mocks for the dao tests * clear separation between interface and mqtt-Monitor * added another waiting block to ensure the tx went through (multi-threading issue, race condition) during tests this failed sometimes * added memstorage to test instead of a file based DB Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
75 lines
2.0 KiB
Go
75 lines
2.0 KiB
Go
package keeper
|
|
|
|
import (
|
|
"github.com/cometbft/cometbft/libs/log"
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
storetypes "github.com/cosmos/cosmos-sdk/store/types"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
|
|
|
|
"github.com/planetmint/planetmint-go/monitor"
|
|
"github.com/planetmint/planetmint-go/x/dao/types"
|
|
)
|
|
|
|
type (
|
|
Keeper struct {
|
|
cdc codec.BinaryCodec
|
|
storeKey storetypes.StoreKey
|
|
memKey storetypes.StoreKey
|
|
challengeKey storetypes.StoreKey
|
|
mintRequestHashKey storetypes.StoreKey
|
|
mintRequestAddressKey storetypes.StoreKey
|
|
accountKeeperKey storetypes.StoreKey
|
|
paramstore paramtypes.Subspace
|
|
|
|
bankKeeper types.BankKeeper
|
|
accountKeeper types.AccountKeeper
|
|
machineKeeper types.MachineKeeper
|
|
authority string
|
|
RootDir string
|
|
}
|
|
)
|
|
|
|
func NewKeeper(
|
|
cdc codec.BinaryCodec,
|
|
storeKey,
|
|
memKey storetypes.StoreKey,
|
|
challengeKey storetypes.StoreKey,
|
|
mintRequestHashKey storetypes.StoreKey,
|
|
mintRequestAddressKey storetypes.StoreKey,
|
|
accountKeeperKey storetypes.StoreKey,
|
|
ps paramtypes.Subspace,
|
|
|
|
bankKeeper types.BankKeeper,
|
|
accountKeeper types.AccountKeeper,
|
|
machineKeeper types.MachineKeeper,
|
|
authority string,
|
|
rootDir string,
|
|
) *Keeper {
|
|
// set KeyTable if it has not already been set
|
|
if !ps.HasKeyTable() {
|
|
ps = ps.WithKeyTable(types.ParamKeyTable())
|
|
}
|
|
monitor.LazyMqttMonitorLoader(rootDir)
|
|
return &Keeper{
|
|
cdc: cdc,
|
|
storeKey: storeKey,
|
|
memKey: memKey,
|
|
challengeKey: challengeKey,
|
|
mintRequestHashKey: mintRequestHashKey,
|
|
mintRequestAddressKey: mintRequestAddressKey,
|
|
accountKeeperKey: accountKeeperKey,
|
|
paramstore: ps,
|
|
|
|
bankKeeper: bankKeeper,
|
|
accountKeeper: accountKeeper,
|
|
machineKeeper: machineKeeper,
|
|
authority: authority,
|
|
RootDir: rootDir,
|
|
}
|
|
}
|
|
|
|
func (k Keeper) Logger(ctx sdk.Context) log.Logger {
|
|
return ctx.Logger().With("module", "x/"+types.ModuleName)
|
|
}
|