Skip to content

Commit 283790f

Browse files
authored
Updating output code path to correctly detect empty string input for caller-address (#274)
Co-authored-by: Brandon Chatham <[email protected]>
1 parent 9a7aa3e commit 283790f

File tree

10 files changed

+57
-70
lines changed

10 files changed

+57
-70
lines changed

pkg/user/admin/accept.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common"
99
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common/flags"
1010
"github.com/Layr-Labs/eigenlayer-cli/pkg/telemetry"
11+
"github.com/Layr-Labs/eigenlayer-cli/pkg/user"
1112
"github.com/Layr-Labs/eigenlayer-cli/pkg/utils"
1213
"github.com/Layr-Labs/eigensdk-go/chainio/clients/elcontracts"
1314
"github.com/Layr-Labs/eigensdk-go/logging"
@@ -144,7 +145,7 @@ func readAndValidateAcceptAdminConfig(
144145
logger logging.Logger,
145146
) (*acceptAdminConfig, error) {
146147
accountAddress := gethcommon.HexToAddress(cliContext.String(AccountAddressFlag.Name))
147-
callerAddress := gethcommon.HexToAddress(cliContext.String(CallerAddressFlag.Name))
148+
callerAddress := user.PopulateCallerAddress(cliContext, logger, accountAddress)
148149
ethRpcUrl := cliContext.String(flags.ETHRpcUrlFlag.Name)
149150
network := cliContext.String(flags.NetworkFlag.Name)
150151
environment := cliContext.String(flags.EnvironmentFlag.Name)
@@ -170,14 +171,6 @@ func readAndValidateAcceptAdminConfig(
170171
return nil, err
171172
}
172173
}
173-
if common.IsEmptyString(callerAddress.String()) {
174-
logger.Infof(
175-
"Caller address not provided. Using account address (%s) as caller address",
176-
accountAddress,
177-
)
178-
callerAddress = accountAddress
179-
}
180-
181174
logger.Debugf(
182175
"Env: %s, network: %s, chain ID: %s, PermissionManager address: %s",
183176
environment,
@@ -205,7 +198,7 @@ func acceptFlags() []cli.Flag {
205198
cmdFlags := []cli.Flag{
206199
&flags.VerboseFlag,
207200
&AccountAddressFlag,
208-
&CallerAddressFlag,
201+
&user.CallerAddressFlag,
209202
&PermissionControllerAddressFlag,
210203
&flags.OutputTypeFlag,
211204
&flags.OutputFileFlag,

pkg/user/admin/add_pending.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common"
99
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common/flags"
1010
"github.com/Layr-Labs/eigenlayer-cli/pkg/telemetry"
11+
"github.com/Layr-Labs/eigenlayer-cli/pkg/user"
1112
"github.com/Layr-Labs/eigenlayer-cli/pkg/utils"
1213
"github.com/Layr-Labs/eigensdk-go/chainio/clients/elcontracts"
1314
"github.com/Layr-Labs/eigensdk-go/logging"
@@ -147,7 +148,7 @@ func readAndValidateAddPendingAdminConfig(
147148
) (*addPendingAdminConfig, error) {
148149
accountAddress := gethcommon.HexToAddress(cliContext.String(AccountAddressFlag.Name))
149150
adminAddress := gethcommon.HexToAddress(cliContext.String(AdminAddressFlag.Name))
150-
callerAddress := gethcommon.HexToAddress(cliContext.String(CallerAddressFlag.Name))
151+
callerAddress := user.PopulateCallerAddress(cliContext, logger, accountAddress)
151152
ethRpcUrl := cliContext.String(flags.ETHRpcUrlFlag.Name)
152153
network := cliContext.String(flags.NetworkFlag.Name)
153154
environment := cliContext.String(flags.EnvironmentFlag.Name)
@@ -157,13 +158,6 @@ func readAndValidateAddPendingAdminConfig(
157158
if environment == "" {
158159
environment = common.GetEnvFromNetwork(network)
159160
}
160-
if common.IsEmptyString(callerAddress.String()) {
161-
logger.Infof(
162-
"Caller address not provided. Using account address (%s) as caller address",
163-
accountAddress,
164-
)
165-
callerAddress = accountAddress
166-
}
167161
signerConfig, err := common.GetSignerConfig(cliContext, logger)
168162
if err != nil {
169163
// We don't want to throw error since people can still use it to generate the claim
@@ -232,7 +226,7 @@ func addPendingFlags() []cli.Flag {
232226
&flags.VerboseFlag,
233227
&AccountAddressFlag,
234228
&AdminAddressFlag,
235-
&CallerAddressFlag,
229+
&user.CallerAddressFlag,
236230
&PermissionControllerAddressFlag,
237231
&flags.OutputTypeFlag,
238232
&flags.OutputFileFlag,

pkg/user/admin/flags.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,6 @@ var (
1515
Usage: "user admin ... --admin-address \"0x...\"",
1616
EnvVars: []string{"ADMIN_ADDRESS"},
1717
}
18-
CallerAddressFlag = cli.StringFlag{
19-
Name: "caller-address",
20-
Aliases: []string{"ca"},
21-
Usage: "This is the address of the caller who is calling the contract function. \n" +
22-
"If it is not provided, the account address will be used as the caller address",
23-
EnvVars: []string{"CALLER_ADDRESS"},
24-
}
2518
PendingAdminAddressFlag = cli.StringFlag{
2619
Name: "pending-admin-address",
2720
Aliases: []string{"paa"},

pkg/user/admin/remove.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common"
99
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common/flags"
1010
"github.com/Layr-Labs/eigenlayer-cli/pkg/telemetry"
11+
"github.com/Layr-Labs/eigenlayer-cli/pkg/user"
1112
"github.com/Layr-Labs/eigenlayer-cli/pkg/utils"
1213
"github.com/Layr-Labs/eigensdk-go/chainio/clients/elcontracts"
1314
"github.com/Layr-Labs/eigensdk-go/logging"
@@ -145,7 +146,7 @@ func readAndValidateRemoveAdminConfig(
145146
) (*removeAdminConfig, error) {
146147
accountAddress := gethcommon.HexToAddress(cliContext.String(AccountAddressFlag.Name))
147148
adminAddress := gethcommon.HexToAddress(cliContext.String(AdminAddressFlag.Name))
148-
callerAddress := gethcommon.HexToAddress(cliContext.String(CallerAddressFlag.Name))
149+
callerAddress := user.PopulateCallerAddress(cliContext, logger, accountAddress)
149150
ethRpcUrl := cliContext.String(flags.ETHRpcUrlFlag.Name)
150151
network := cliContext.String(flags.NetworkFlag.Name)
151152
environment := cliContext.String(flags.EnvironmentFlag.Name)
@@ -155,13 +156,6 @@ func readAndValidateRemoveAdminConfig(
155156
if environment == "" {
156157
environment = common.GetEnvFromNetwork(network)
157158
}
158-
if common.IsEmptyString(callerAddress.String()) {
159-
logger.Infof(
160-
"Caller address not provided. Using account address (%s) as caller address",
161-
accountAddress,
162-
)
163-
callerAddress = accountAddress
164-
}
165159
signerConfig, err := common.GetSignerConfig(cliContext, logger)
166160
if err != nil {
167161
// We don't want to throw error since people can still use it to generate the claim
@@ -230,7 +224,7 @@ func removeFlags() []cli.Flag {
230224
&flags.VerboseFlag,
231225
&AccountAddressFlag,
232226
&AdminAddressFlag,
233-
&CallerAddressFlag,
227+
&user.CallerAddressFlag,
234228
&PermissionControllerAddressFlag,
235229
&flags.OutputTypeFlag,
236230
&flags.OutputFileFlag,

pkg/user/admin/remove_pending.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common"
99
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common/flags"
1010
"github.com/Layr-Labs/eigenlayer-cli/pkg/telemetry"
11+
"github.com/Layr-Labs/eigenlayer-cli/pkg/user"
1112
"github.com/Layr-Labs/eigenlayer-cli/pkg/utils"
1213
"github.com/Layr-Labs/eigensdk-go/chainio/clients/elcontracts"
1314
"github.com/Layr-Labs/eigensdk-go/logging"
@@ -145,7 +146,7 @@ func readAndValidateRemovePendingAdminConfig(
145146
) (*removePendingAdminConfig, error) {
146147
accountAddress := gethcommon.HexToAddress(cliContext.String(AccountAddressFlag.Name))
147148
adminAddress := gethcommon.HexToAddress(cliContext.String(AdminAddressFlag.Name))
148-
callerAddress := gethcommon.HexToAddress(cliContext.String(CallerAddressFlag.Name))
149+
callerAddress := user.PopulateCallerAddress(cliContext, logger, accountAddress)
149150
ethRpcUrl := cliContext.String(flags.ETHRpcUrlFlag.Name)
150151
network := cliContext.String(flags.NetworkFlag.Name)
151152
environment := cliContext.String(flags.EnvironmentFlag.Name)
@@ -155,13 +156,6 @@ func readAndValidateRemovePendingAdminConfig(
155156
if environment == "" {
156157
environment = common.GetEnvFromNetwork(network)
157158
}
158-
if common.IsEmptyString(callerAddress.String()) {
159-
logger.Infof(
160-
"Caller address not provided. Using account address (%s) as caller address",
161-
accountAddress,
162-
)
163-
callerAddress = accountAddress
164-
}
165159
signerConfig, err := common.GetSignerConfig(cliContext, logger)
166160
if err != nil {
167161
// We don't want to throw error since people can still use it to generate the claim
@@ -230,7 +224,7 @@ func removePendingAdminFlags() []cli.Flag {
230224
&flags.VerboseFlag,
231225
&AccountAddressFlag,
232226
&AdminAddressFlag,
233-
&CallerAddressFlag,
227+
&user.CallerAddressFlag,
234228
&PermissionControllerAddressFlag,
235229
&flags.BroadcastFlag,
236230
&flags.OutputTypeFlag,

pkg/user/appointee/flags.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,6 @@ var (
1515
Usage: "The Ethereum address of the user. Example: --appointee-address \"0x...\"",
1616
EnvVars: []string{"APPOINTEE_ADDRESS"},
1717
}
18-
CallerAddressFlag = cli.StringFlag{
19-
Name: "caller-address",
20-
Aliases: []string{"ca"},
21-
Usage: "This is the address of the caller who is calling the contract function. \n" +
22-
"If it is not provided, the account address will be used as the caller address",
23-
EnvVars: []string{"CALLER_ADDRESS"},
24-
}
2518
SelectorFlag = cli.StringFlag{
2619
Name: "selector",
2720
Aliases: []string{"s"},

pkg/user/appointee/remove.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common"
99
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common/flags"
1010
"github.com/Layr-Labs/eigenlayer-cli/pkg/telemetry"
11+
"github.com/Layr-Labs/eigenlayer-cli/pkg/user"
1112
"github.com/Layr-Labs/eigenlayer-cli/pkg/utils"
1213
"github.com/Layr-Labs/eigensdk-go/chainio/clients/elcontracts"
1314
"github.com/Layr-Labs/eigensdk-go/logging"
@@ -170,7 +171,7 @@ func generateRemoveAppointeePermissionWriter(
170171
func readAndValidateRemoveConfig(cliContext *cli.Context, logger logging.Logger) (*removeConfig, error) {
171172
accountAddress := gethcommon.HexToAddress(cliContext.String(AccountAddressFlag.Name))
172173
appointeeAddress := gethcommon.HexToAddress(cliContext.String(AppointeeAddressFlag.Name))
173-
callerAddress := gethcommon.HexToAddress(cliContext.String(CallerAddressFlag.Name))
174+
callerAddress := user.PopulateCallerAddress(cliContext, logger, accountAddress)
174175
ethRpcUrl := cliContext.String(flags.ETHRpcUrlFlag.Name)
175176
network := cliContext.String(flags.NetworkFlag.Name)
176177
environment := cliContext.String(flags.EnvironmentFlag.Name)
@@ -204,14 +205,6 @@ func readAndValidateRemoveConfig(cliContext *cli.Context, logger logging.Logger)
204205
return nil, err
205206
}
206207
}
207-
if common.IsEmptyString(callerAddress.String()) {
208-
logger.Infof(
209-
"Caller address not provided. Using account address (%s) as caller address",
210-
accountAddress,
211-
)
212-
callerAddress = accountAddress
213-
}
214-
215208
logger.Debugf(
216209
"Env: %s, network: %s, chain ID: %s, PermissionManager address: %s",
217210
environment,
@@ -243,7 +236,7 @@ func removeCommandFlags() []cli.Flag {
243236
&flags.VerboseFlag,
244237
&AccountAddressFlag,
245238
&AppointeeAddressFlag,
246-
&CallerAddressFlag,
239+
&user.CallerAddressFlag,
247240
&TargetAddressFlag,
248241
&SelectorFlag,
249242
&PermissionControllerAddressFlag,

pkg/user/appointee/set.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common"
99
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common/flags"
1010
"github.com/Layr-Labs/eigenlayer-cli/pkg/telemetry"
11+
"github.com/Layr-Labs/eigenlayer-cli/pkg/user"
1112
"github.com/Layr-Labs/eigenlayer-cli/pkg/utils"
1213
"github.com/Layr-Labs/eigensdk-go/chainio/clients/elcontracts"
1314
"github.com/Layr-Labs/eigensdk-go/logging"
@@ -173,7 +174,7 @@ func generateSetAppointeePermissionWriter(
173174
func readAndValidateSetConfig(cliContext *cli.Context, logger logging.Logger) (*setConfig, error) {
174175
accountAddress := gethcommon.HexToAddress(cliContext.String(AccountAddressFlag.Name))
175176
appointeeAddress := gethcommon.HexToAddress(cliContext.String(AppointeeAddressFlag.Name))
176-
callerAddress := gethcommon.HexToAddress(cliContext.String(CallerAddressFlag.Name))
177+
callerAddress := user.PopulateCallerAddress(cliContext, logger, accountAddress)
177178
ethRpcUrl := cliContext.String(flags.ETHRpcUrlFlag.Name)
178179
network := cliContext.String(flags.NetworkFlag.Name)
179180
environment := cliContext.String(flags.EnvironmentFlag.Name)
@@ -196,13 +197,6 @@ func readAndValidateSetConfig(cliContext *cli.Context, logger logging.Logger) (*
196197
if environment == "" {
197198
environment = common.GetEnvFromNetwork(network)
198199
}
199-
if common.IsEmptyString(callerAddress.String()) {
200-
logger.Infof(
201-
"Caller address not provided. Using account address (%s) as caller address",
202-
accountAddress,
203-
)
204-
callerAddress = accountAddress
205-
}
206200

207201
chainID := utils.NetworkNameToChainId(network)
208202
cliContext.App.Metadata["network"] = chainID.String()
@@ -246,7 +240,7 @@ func setCommandFlags() []cli.Flag {
246240
&flags.VerboseFlag,
247241
&AccountAddressFlag,
248242
&AppointeeAddressFlag,
249-
&CallerAddressFlag,
243+
&user.CallerAddressFlag,
250244
&TargetAddressFlag,
251245
&SelectorFlag,
252246
&PermissionControllerAddressFlag,

pkg/user/flags.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package user
2+
3+
import "github.com/urfave/cli/v2"
4+
5+
var (
6+
CallerAddressFlag = cli.StringFlag{
7+
Name: "caller-address",
8+
Aliases: []string{"ca"},
9+
Usage: "This is the address of the caller who is calling the contract function. \n" +
10+
"If it is not provided, the account address will be used as the caller address",
11+
EnvVars: []string{"CALLER_ADDRESS"},
12+
}
13+
)

pkg/user/helper.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package user
2+
3+
import (
4+
"github.com/Layr-Labs/eigenlayer-cli/pkg/internal/common"
5+
"github.com/Layr-Labs/eigensdk-go/logging"
6+
gethcommon "github.com/ethereum/go-ethereum/common"
7+
"github.com/urfave/cli/v2"
8+
)
9+
10+
func PopulateCallerAddress(
11+
cliContext *cli.Context,
12+
logger logging.Logger,
13+
accountAddress gethcommon.Address,
14+
) gethcommon.Address {
15+
// TODO: these are copied across both callers of this method. Will clean this up in the CLI refactor of flags.
16+
callerAddress := cliContext.String(CallerAddressFlag.Name)
17+
if common.IsEmptyString(callerAddress) {
18+
logger.Infof(
19+
"Caller address not provided. Using account address (%s) as caller address",
20+
accountAddress,
21+
)
22+
23+
return accountAddress
24+
}
25+
return gethcommon.HexToAddress(callerAddress)
26+
}

0 commit comments

Comments
 (0)