Custom staking hook registration #102
Unanswered
sabn2
asked this question in
Chain Builders (Cosmos SDK)
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I am trying to implement staking hooks(BeforeDelegationCreated) in a custom module. I have created a hooks.go file in my custom module keeper and added all methods implemented by staking hooks. I am registering custom hook in app.go. I can build the binary but it errors in run time as below:
si@sid:~/Downloads/DOWNLOADS_11_2_25/hooksa_ch/hooksach$ hooksachd start
panic: cannot set validator hooks twice
goroutine 1 [running]:
github.com/cosmos/cosmos-sdk/x/staking/keeper.(*Keeper).SetHooks(...)
/home/si/go/pkg/mod/github.com/cosmos/[email protected]/x/staking/keeper/keeper.go:97
hooksach/app.New({0x3f5b120, 0xc00154eaf0}, {0x3f72800, 0xc001494008}, {0x0, 0x0}, 0x1, {0x3f17d00, 0xc0006f0540}, {0xc000def110, ...})
/home/si/Downloads/DOWNLOADS_11_2_25/hooksa_ch/hooksach/app/app.go:255 +0x10f2
hooksach/cmd/hooksachd/cmd.newApp({0x3f5b120, 0xc00154eaf0}, {0x3f72800, 0xc001494008}, {0x0, 0x0}, {0x3f17d00, 0xc0006f0540})
/home/si/Downloads/DOWNLOADS_11_2_25/hooksa_ch/hooksach/cmd/hooksachd/cmd/commands.go:130 +0xaa
github.com/cosmos/cosmos-sdk/server.startApp(0xc001021780, 0x3ae19c8, {0x3ae2180, 0x0, 0x0, 0x0, 0x3ae2190})
/home/si/go/pkg/mod/github.com/cosmos/[email protected]/server/start.go:619 +0x223
github.com/cosmos/cosmos-sdk/server.start(_, {{0x0, 0x0, 0x0}, {0x3f78938, 0xc0015b3470}, 0x0, {0xc0015a0f68, 0x8}, {0x3f99b10, ...}, ...}, ...)
/home/si/go/pkg/mod/github.com/cosmos/[email protected]/server/start.go:225 +0x159
github.com/cosmos/cosmos-sdk/server.StartCmdWithOptions.func2.1()
/home/si/go/pkg/mod/github.com/cosmos/[email protected]/server/start.go:199 +0x63
github.com/cosmos/cosmos-sdk/server.wrapCPUProfile(0xc001021780, 0xc00008d9f8)
/home/si/go/pkg/mod/github.com/cosmos/[email protected]/server/start.go:571 +0x1b3
github.com/cosmos/cosmos-sdk/server.StartCmdWithOptions.func2(0xc00142f508, {0x5d13e20?, 0x0?, 0x0?})
/home/si/go/pkg/mod/github.com/cosmos/[email protected]/server/start.go:198 +0x212
github.com/spf13/cobra.(*Command).execute(0xc00142f508, {0x5d13e20, 0x0, 0x0})
/home/si/go/pkg/mod/github.com/spf13/[email protected]/command.go:985 +0xaaa
github.com/spf13/cobra.(*Command).ExecuteC(0xc0010c0c08)
/home/si/go/pkg/mod/github.com/spf13/[email protected]/command.go:1117 +0x3ff
github.com/spf13/cobra.(*Command).Execute(...)
/home/si/go/pkg/mod/github.com/spf13/[email protected]/command.go:1041
github.com/spf13/cobra.(*Command).ExecuteContext(...)
/home/si/go/pkg/mod/github.com/spf13/[email protected]/command.go:1034
github.com/cosmos/cosmos-sdk/server/cmd.Execute(0xc0010c0c08, {0x32cef6a, 0x8}, {0xc000adb428, 0x12})
/home/si/go/pkg/mod/github.com/cosmos/[email protected]/server/cmd/execute.go:34 +0x187
main.main()
/home/si/Downloads/DOWNLOADS_11_2_25/hooksa_ch/hooksach/cmd/hooksachd/main.go:16 +0x3d
si@sid:~/Downloads/DOWNLOADS_11_2_25/hooksa_ch/hooksach$
=======
hook registration:
app.StakingKeeper.SetHooks(
stakingtypes.NewMultiStakingHooks(app.CustomhookKeeper.Hooks()),
)
I guess, the issue is custom hook registration during app initialization. Can any one help on this? I am struggling on this since 2 days. Thanks!!
@gjermundgaraba @julienrbrt @samricotta @tac0turtle
Beta Was this translation helpful? Give feedback.
All reactions