Skip to content

empty suggested-fee-recipient causes crash #2699

@camembera

Description

@camembera

Having an empty suggested-fee-recipient in app.toml causes a crash on start (see below).

This value only makes sense for a validator. Some have reasoned, I don't need this, so I'll make it empty.

Consider dealing with an empty value in a healthy way, producing a clean error message, or defaulting to something harmless.

panic: empty hex string

goroutine 1 [running]:
github.com/berachain/beacon-kit/primitives/encoding/hex.MustToBytes(...)
	github.com/berachain/beacon-kit/primitives/encoding/hex/bytes.go:45
github.com/berachain/beacon-kit/primitives/common.NewExecutionAddressFromHex({0x0?, 0x40009a4618?})
	github.com/berachain/beacon-kit/primitives/common/execution.go:108 +0x70
github.com/berachain/beacon-kit/config.ReadConfigFromAppOpts.StringToExecutionAddressFunc.func3({0x0?, 0x4000a4bad0?})
	github.com/berachain/beacon-kit/config/viper/parser.go:37 +0x28
github.com/berachain/beacon-kit/config.ReadConfigFromAppOpts.StringToExecutionAddressFunc.StringTo[...].func7({0x26c47f0?, 0x1f8cdc0?}, {0x1d807e0, 0x3aa2f60})
	github.com/berachain/beacon-kit/config/viper/parser.go:83 +0xbc
github.com/mitchellh/mapstructure.DecodeHookExec({0x1e78bc0?, 0x4000a4bad0?}, {0x1d807e0?, 0x3aa2f60?, 0x2?}, {0x1f8cdc0?, 0x4000b2a9a1?, 0x1e865e0?})
	github.com/mitchellh/[email protected]/decode_hooks.go:47 +0x208
github.com/berachain/beacon-kit/config.ReadConfigFromAppOpts.ComposeDecodeHookFunc.func5({0x1d807e0?, 0x3aa2f60?, 0x40009a48f8?}, {0x1f8cdc0?, 0x4000b2a9a1?, 0x8?})
	github.com/mitchellh/[email protected]/decode_hooks.go:69 +0xd8
github.com/mitchellh/mapstructure.DecodeHookExec({0x1e486c0?, 0x4000de8340?}, {0x1d807e0?, 0x3aa2f60?, 0x32?}, {0x1f8cdc0?, 0x4000b2a9a1?, 0x4b6a5c?})
	github.com/mitchellh/[email protected]/decode_hooks.go:51 +0x118
github.com/mitchellh/mapstructure.(*Decoder).decode(0x400007b050, {0x40007d86c0, 0x32}, {0x1d807e0?, 0x3aa2f60?}, {0x1f8cdc0?, 0x4000b2a9a1?, 0x0?})
	github.com/mitchellh/[email protected]/mapstructure.go:459 +0xf8
github.com/mitchellh/mapstructure.(*Decoder).decodeStructFromMap(0x400007b050, {0x400037fc80, 0x1a}, {0x1e49080?, 0x4000702d20?, 0x5?}, {0x1f8d3c0?, 0x4000b2a9a0?, 0x15?})
	github.com/mitchellh/[email protected]/mapstructure.go:1411 +0x6f0
github.com/mitchellh/mapstructure.(*Decoder).decodeStruct(0x400007b050, {0x400037fc80, 0x1a}, {0x1e49080?, 0x4000702d20?}, {0x1f8d3c0?, 0x4000b2a9a0?, 0x4b6a5c?})
	github.com/mitchellh/[email protected]/mapstructure.go:1235 +0x3f8
github.com/mitchellh/mapstructure.(*Decoder).decode(0x400007b050, {0x400037fc80, 0x1a}, {0x1e49080?, 0x4000702d20?}, {0x1f8d3c0?, 0x4000b2a9a0?, 0x0?})
	github.com/mitchellh/[email protected]/mapstructure.go:482 +0x214
github.com/mitchellh/mapstructure.(*Decoder).decodeStructFromMap(0x400007b050, {0x1cf285d, 0xa}, {0x1e49080?, 0x4000702b40?, 0x5?}, {0x212d800?, 0x4000b2a900?, 0x15?})
	github.com/mitchellh/[email protected]/mapstructure.go:1411 +0x6f0
github.com/mitchellh/mapstructure.(*Decoder).decodeStruct(0x400007b050, {0x1cf285d, 0xa}, {0x1e49080?, 0x4000702b40?}, {0x212d800?, 0x4000b2a900?, 0x4b6a5c?})
	github.com/mitchellh/[email protected]/mapstructure.go:1235 +0x3f8
github.com/mitchellh/mapstructure.(*Decoder).decode(0x400007b050, {0x1cf285d, 0xa}, {0x1e49080?, 0x4000702b40?}, {0x212d800?, 0x4000b2a900?, 0x0?})
	github.com/mitchellh/[email protected]/mapstructure.go:482 +0x214
github.com/mitchellh/mapstructure.(*Decoder).decodeStructFromMap(0x400007b050, {0x0, 0x0}, {0x1e49080?, 0x4000702990?, 0x5?}, {0x1ec2780?, 0x4000b2a900?, 0x15?})
	github.com/mitchellh/[email protected]/mapstructure.go:1411 +0x6f0
github.com/mitchellh/mapstructure.(*Decoder).decodeStruct(0x400007b050, {0x0, 0x0}, {0x1e49080?, 0x4000702990?}, {0x1ec2780?, 0x4000b2a900?, 0x410b5c?})
	github.com/mitchellh/[email protected]/mapstructure.go:1235 +0x3f8
github.com/mitchellh/mapstructure.(*Decoder).decode(0x400007b050, {0x0, 0x0}, {0x1e49080?, 0x4000702990?}, {0x1ec2780?, 0x4000b2a900?, 0x14f2e54?})
	github.com/mitchellh/[email protected]/mapstructure.go:482 +0x214
github.com/mitchellh/mapstructure.(*Decoder).Decode(0x400007b050, {0x1e49080, 0x4000702990})
	github.com/mitchellh/[email protected]/mapstructure.go:417 +0xb4
github.com/spf13/viper.decode({0x1e49080, 0x4000702990}, 0x40009a68c8?)
	github.com/spf13/[email protected]/viper.go:1176 +0x4c
github.com/spf13/viper.(*Viper).Unmarshal(0x4000b421c0, {0x1d23d00, 0x4000b2a900}, {0x40009a68c8, 0x1, 0x1})
	github.com/spf13/[email protected]/viper.go:1131 +0x78
github.com/berachain/beacon-kit/config.ReadConfigFromAppOpts({0x266e2e0?, 0x4000b421c0})
	github.com/berachain/beacon-kit/config/config.go:118 +0x250
github.com/berachain/beacon-kit/node-core/components.ProvideConfig({{}, {0x266e2e0?, 0x4000b421c0?}})
	github.com/berachain/beacon-kit/node-core/components/config.go:39 +0x24
reflect.Value.call({0x1e05a00?, 0x2410648?, 0x1e85ae0?}, {0x21c44ba, 0x4}, {0x4000a4baa0, 0x1, 0x1?})
	reflect/value.go:581 +0x97c
reflect.Value.Call({0x1e05a00?, 0x2410648?, 0x1e85ae0?}, {0x4000a4baa0?, 0x0?, 0x0?})
	reflect/value.go:365 +0x94
cosmossdk.io/depinject.doExtractProviderDescriptor.func1({0x4000a4baa0?, 0x1f81060?, 0x4000a4ba88?})
	cosmossdk.io/[email protected]/provider_desc.go:124 +0x4c
cosmossdk.io/depinject.expandStructArgsProvider.expandStructArgsFn.func1({0x4000a4ba88, 0x1, 0x1})
	cosmossdk.io/[email protected]/struct_args.go:89 +0x234
cosmossdk.io/depinject.(*container).call(0x40009622a0, 0x40008d6c30, 0x0)
	cosmossdk.io/[email protected]/container.go:89 +0x594
cosmossdk.io/depinject.(*simpleProvider).resolveValues(0x4000a3f470, 0x1?)
	cosmossdk.io/[email protected]/simple.go:35 +0x38
cosmossdk.io/depinject.(*simpleResolver).resolve(0x40008d6e60, 0x40009622a0, 0x1f669e0?, {0x2690d40?, 0x40008d5080?})
	cosmossdk.io/[email protected]/simple.go:52 +0x10c
cosmossdk.io/depinject.(*container).resolve(0x40009622a0, {{0x26c47f0?, 0x1f669e0?}, 0xa8?, 0x47?}, 0x0, {0x2690d40, 0x40008d5080})
	cosmossdk.io/[email protected]/container.go:414 +0x934
cosmossdk.io/depinject.(*container).call(0x40009622a0, 0x40008d7590, 0x0)
	cosmossdk.io/[email protected]/container.go:77 +0x3e8
cosmossdk.io/depinject.(*simpleProvider).resolveValues(0x4000967b00, 0x1?)
	cosmossdk.io/[email protected]/simple.go:35 +0x38
cosmossdk.io/depinject.(*simpleResolver).resolve(0x40008d76d0, 0x40009622a0, 0x2157460?, {0x2690d40?, 0x40008d5180?})
	cosmossdk.io/[email protected]/simple.go:52 +0x10c
cosmossdk.io/depinject.(*container).resolve(0x40009622a0, {{0x26c47f0?, 0x2157460?}, 0xa8?, 0x47?}, 0x0, {0x2690d40, 0x40008d5180})
	cosmossdk.io/[email protected]/container.go:414 +0x934
cosmossdk.io/depinject.(*container).call(0x40009622a0, 0x40008d7720, 0x0)
	cosmossdk.io/[email protected]/container.go:77 +0x3e8
cosmossdk.io/depinject.(*simpleProvider).resolveValues(0x4000967c80, 0x1?)
	cosmossdk.io/[email protected]/simple.go:35 +0x38
cosmossdk.io/depinject.(*simpleResolver).resolve(0x40008d7900, 0x40009622a0, 0x1f160c0?, {0x2690d40?, 0x40008d5c80?})
	cosmossdk.io/[email protected]/simple.go:52 +0x10c
cosmossdk.io/depinject.(*container).resolve(0x40009622a0, {{0x26c47f0?, 0x1f160c0?}, 0xa8?, 0x47?}, 0x0, {0x2690d40, 0x40008d5c80})
	cosmossdk.io/[email protected]/container.go:414 +0x934
cosmossdk.io/depinject.(*container).call(0x40009622a0, 0x4000494960, 0x0)
	cosmossdk.io/[email protected]/container.go:77 +0x3e8
cosmossdk.io/depinject.(*simpleProvider).resolveValues(0x40007e9560, 0x1?)
	cosmossdk.io/[email protected]/simple.go:35 +0x38
cosmossdk.io/depinject.(*simpleResolver).resolve(0x4000494f00, 0x40009622a0, 0x1eff920?, {0x2690d40?, 0x400052e580?})
	cosmossdk.io/[email protected]/simple.go:52 +0x10c
cosmossdk.io/depinject.(*container).resolve(0x40009622a0, {{0x26c47f0?, 0x1eff920?}, 0xa8?, 0x47?}, 0x0, {0x2690d40, 0x400052e580})
	cosmossdk.io/[email protected]/container.go:414 +0x934
cosmossdk.io/depinject.(*container).call(0x40009622a0, 0x4000718640, 0x0)
	cosmossdk.io/[email protected]/container.go:77 +0x3e8
cosmossdk.io/depinject.(*simpleProvider).resolveValues(0x4000867290, 0x1?)
	cosmossdk.io/[email protected]/simple.go:35 +0x38
cosmossdk.io/depinject.(*simpleResolver).resolve(0x40007187d0, 0x40009622a0, 0x1e489c0?, {0x2690d40?, 0x40008d43c0?})
	cosmossdk.io/[email protected]/simple.go:52 +0x10c
cosmossdk.io/depinject.(*container).resolve(0x40009622a0, {{0x26c47f0?, 0x1e489c0?}, 0xa8?, 0x47?}, 0x0, {0x2690d40, 0x40008d43c0})
	cosmossdk.io/[email protected]/container.go:414 +0x934
cosmossdk.io/depinject.(*container).call(0x40009622a0, 0x40007190e0, 0x0)
	cosmossdk.io/[email protected]/container.go:77 +0x3e8
cosmossdk.io/depinject.(*simpleProvider).resolveValues(0x40008caa80, 0x1?)
	cosmossdk.io/[email protected]/simple.go:35 +0x38
cosmossdk.io/depinject.(*container).build(0x40009622a0, {0x2690d40, 0x40008d43c0}, {0x40008d4380, 0x4, 0x4})
	cosmossdk.io/[email protected]/container.go:483 +0x58c
cosmossdk.io/depinject.doInject(0x400034cf30, {0x2690d40, 0x40008d43c0}, {0x266e540?, 0x4000de8260?}, {0x266e4e0, 0x4000de81c0}, {0x40008d4380, 0x4, 0x4})
	cosmossdk.io/[email protected]/inject.go:81 +0x320
cosmossdk.io/depinject.inject({0x2690d40, 0x40008d43c0}, {0x266e540, 0x4000de8260}, {0x266e4e0, 0x4000de81c0}, {0x40008d4380, 0x4, 0x4})
	cosmossdk.io/[email protected]/inject.go:45 +0x210
cosmossdk.io/depinject.Inject({0x266e4e0, 0x4000de81c0}, {0x40008d4380, 0x4, 0x4})
	cosmossdk.io/[email protected]/inject.go:19 +0x68
github.com/berachain/beacon-kit/node-core/builder.(*NodeBuilder).Build(0x4000973410, 0x4000b3e600, {0x26a7680, 0x400007a2a8}, {0x0?, 0x0?}, 0x4000805040, {0x266fce0, 0x4000b421c0})
	github.com/berachain/beacon-kit/node-core/builder/builder.go:75 +0x318
github.com/berachain/beacon-kit/cli/commands/server.StartCmdWithOptions.func1(0x4000b4c608, {0x21c45a2?, 0x4?, 0x21c447a?})
	github.com/berachain/beacon-kit/cli/commands/server/start.go:99 +0xbc
github.com/spf13/cobra.(*Command).execute(0x4000b4c608, {0x4000a514c0, 0x2, 0x2})
	github.com/spf13/[email protected]/command.go:985 +0x834
github.com/spf13/cobra.(*Command).ExecuteC(0x4000194f08)
	github.com/spf13/[email protected]/command.go:1117 +0x344
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/[email protected]/command.go:1041
github.com/spf13/cobra.(*Command).ExecuteContext(...)
	github.com/spf13/[email protected]/command.go:1034
github.com/berachain/beacon-kit/cli/commands/server/cmd.Execute(0x4000194f08, {0x0, 0x0}, {0x40007ddc20, 0x16})
	github.com/berachain/beacon-kit/cli/commands/server/cmd/execute.go:56 +0x244
github.com/berachain/beacon-kit/cli/commands.(*Root).Run(0x4000afd2c0?, {0x40007ddc20?, 0x5?})
	github.com/berachain/beacon-kit/cli/commands/root.go:92 +0x34
main.run()
	github.com/berachain/beacon-kit/cmd/beacond/main.go:84 +0x2e0
main.main()
	github.com/berachain/beacon-kit/cmd/beacond/main.go:89 +0x1c

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions