-
Notifications
You must be signed in to change notification settings - Fork 0
feat: add x/astro module #9
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
base: main
Are you sure you want to change the base?
Conversation
# Conflicts: # simapp/go.mod
Pull Request Review: x/astro Module AdditionOverviewThis PR adds a new 🔴 Critical Issues1. Incomplete Implementation - Unimplemented PanicLocation: func (b AppModuleBasic) RegisterGRPCGatewayRoutes(context client.Context, mux *runtime.ServeMux) {
// TODO implement me
panic("implement me")
}Issue: This will cause the application to panic if gRPC gateway routes are registered. This is a blocking issue for any production use. Recommendation: Either implement the method properly or provide a no-op implementation with documentation explaining why it's not needed. 2. Missing Staking Module IntegrationLocation: The staking keeper initialization is commented out: /*
app.StakingKeeper = stakingkeeper.NewKeeper(
appCodec,
runtime.NewKVStoreService(keys[stakingtypes.StoreKey]),
app.AccountKeeper,
app.BankKeeper,
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
authcodec.NewBech32Codec(sdk.Bech32PrefixValAddr),
authcodec.NewBech32Codec(sdk.Bech32PrefixConsAddr),
)
*/Issue: Multiple parts of the code reference
Recommendation: Either properly initialize the AstroKeeper or document this as WIP/incomplete. 3. No Store Key for Astro ModuleLocation: The store keys don't include a key for the astro module: keys := storetypes.NewKVStoreKeys(
authtypes.StoreKey,
banktypes.StoreKey,
stakingtypes.StoreKey, // Note: staking is here but not used
// ... other keys
// Missing: astro module store key
)Issue: Without a store key, the keeper cannot persist any state, making the module non-functional. 4. Astro Module Not Registered in Module ManagerLocation: The astro module is not included in the app.ModuleManager = module.NewManager(
genutil.NewAppModule(...),
auth.NewAppModule(...),
// ... other modules
// Missing: astro module
)Issue: The module won't be initialized, won't participate in genesis, and won't have its begin/end blockers called. 🟡 Code Quality Issues5. Unused ImportLocation: "maps"This import is not used anywhere in the file. 6. Stub Genesis ImplementationLocation: func (k Keeper) InitGenesis(ctx sdk.Context, gs types.GenesisState) error {
// initialize module state here as needed
_ = ctx
_ = gs
return nil
}Issue: The implementation explicitly ignores all inputs with blank identifiers, indicating incomplete implementation. Recommendation: Either implement proper genesis handling or add a TODO comment explaining what needs to be done. 7. Empty Keeper ImplementationLocation: The Keeper struct only has basic fields but doesn't implement any of the staking interface methods defined in Recommendation: The Keeper should implement the interface it's meant to replace, or this should be documented as scaffolding. 8. Missing Module Services RegistrationLocation: func (am AppModule) RegisterServices(_ sdkmodule.Configurator) {}Issue: Query and message services are not registered, making gRPC queries and transactions unavailable. 🔵 Best Practices & Suggestions9. Vote Extension SecurityLocation: The VoteExtensionHandler uses
10. Error Handling in Module InitializationLocation: func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) []abci.ValidatorUpdate {
var gs types.GenesisState
cdc.MustUnmarshalJSON(data, &gs)
if err := am.keeper.InitGenesis(ctx, gs); err != nil {
panic(err)
}
return []abci.ValidatorUpdate{}
}Observation: The code uses 11. Import Path InconsistencyLocation: Throughout proto files The proto files use 12. Dockerfile Proto BuilderLocation: The Dockerfile has extra blank lines and minimal content: FROM ghcr.io/cosmos/proto-builder:0.14.0
WORKDIR /workspaceRecommendation: Remove extra blank lines and consider adding comments explaining the purpose.
|
No description provided.