Skip to content

Commit fbaa3db

Browse files
minhd-vuclaude
andauthored
chore: style flags (#711)
* chore: style flags * chore: style flags more * chore: reword flag usage strings * docs: make gen-doc * fix: loadtest mode string * fix: multisentence flags * docs: make gen-doc * docs: make gen-doc Regenerate documentation to reflect flag style guide changes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]>
1 parent cc977a7 commit fbaa3db

File tree

123 files changed

+2393
-2382
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

123 files changed

+2393
-2382
lines changed

CLAUDE.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,26 @@ The tool supports configuration via:
123123
- Use conventional commit messages
124124

125125
## Development Memories
126-
- Use `make build` to build polycli
126+
- Use `make build` to build polycli
127+
128+
## Code Style
129+
130+
### Cobra Flags
131+
- Flag names: lowercase with hyphens (kebab-case), e.g., `--output-file`
132+
- Usage strings: lowercase, no ending punctuation, e.g., `"path to output file"`
133+
- Remove unnecessary leading articles and filler words (e.g., "the", "a", "an") from usage strings
134+
- Use `PersistentFlags()` only when flags need to be inherited by subcommands; otherwise use `Flags()`
135+
- When defining multiple flags, use `f := cmd.Flags()` to avoid repetition
136+
- Prefer `Var()` flag methods (e.g., `StringVar`, `IntVar`, `BoolVar`) over non-Var methods (e.g., `String`, `Int`, `Bool`) to bind directly to variables:
137+
```go
138+
f := cmd.Flags()
139+
f.StringVar(&myVar, "name", "", "description")
140+
f.IntVar(&count, "count", 0, "description")
141+
```
142+
- Flag variables should be non-pointer types unless there's a specific need for pointers (e.g., distinguishing unset from zero value):
143+
```go
144+
var myVar string // preferred
145+
var count int // preferred
146+
f.StringVar(&myVar, "name", "", "description")
147+
f.IntVar(&count, "count", 0, "description")
148+
```

cmd/abi/decode/decode.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ import (
1616
)
1717

1818
var (
19-
inputFileName *string
20-
inputData *string
19+
inputFileName string
20+
inputData string
2121
)
2222

2323
var ABIDecodeCmd = &cobra.Command{
@@ -39,8 +39,8 @@ var ABIDecodeCmd = &cobra.Command{
3939
for _, meth := range abi.Methods {
4040
fmt.Printf("Selector:%s\tSignature:%s%s\n", hex.EncodeToString(meth.ID), meth.Sig, getReturnSignature(meth.Outputs))
4141
}
42-
if *inputData != "" {
43-
id, callData, err := parseContractInputData(*inputData)
42+
if inputData != "" {
43+
id, callData, err := parseContractInputData(inputData)
4444
fmt.Printf("id: %x, %x\n", id, callData)
4545
if err != nil {
4646
return err
@@ -81,9 +81,9 @@ var ABIDecodeCmd = &cobra.Command{
8181
}
8282

8383
func init() {
84-
flagSet := ABIDecodeCmd.PersistentFlags()
85-
inputFileName = flagSet.String("file", "", "Provide a filename to read and analyze")
86-
inputData = flagSet.String("data", "", "Provide input data to be unpacked based on the ABI definition")
84+
f := ABIDecodeCmd.Flags()
85+
f.StringVar(&inputFileName, "file", "", "filename to read and analyze")
86+
f.StringVar(&inputData, "data", "", "input data to be unpacked based on ABI definition")
8787
}
8888

8989
func parseContractInputData(data string) ([]byte, []byte, error) {
@@ -107,8 +107,8 @@ func parseContractInputData(data string) ([]byte, []byte, error) {
107107
}
108108

109109
func getInputData(cmd *cobra.Command, args []string) ([]byte, error) {
110-
if inputFileName != nil && *inputFileName != "" {
111-
return os.ReadFile(*inputFileName)
110+
if inputFileName != "" {
111+
return os.ReadFile(inputFileName)
112112
}
113113

114114
if len(args) > 1 {

cmd/cdk/cdk.go

Lines changed: 38 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -107,23 +107,26 @@ var CDKCmd = &cobra.Command{
107107
Short: "Utilities for interacting with CDK networks",
108108
Long: "Basic utility commands for interacting with the cdk contracts",
109109
PersistentPreRun: func(cmd *cobra.Command, args []string) {
110-
cdkInputArgs.rpcURL = flag_loader.GetRpcUrlFlagValue(cmd)
110+
rpcURL := flag_loader.GetRpcUrlFlagValue(cmd)
111+
if rpcURL != nil {
112+
cdkInputArgs.rpcURL = *rpcURL
113+
}
111114
},
112115
Args: cobra.NoArgs,
113116
}
114117

115118
type inputArgs struct {
116-
rpcURL *string
119+
rpcURL string
117120

118-
forkID *string
121+
forkID string
119122

120-
rollupManagerAddress *string
123+
rollupManagerAddress string
121124

122-
rollupID *string
123-
rollupChainID *string
124-
rollupAddress *string
125-
bridgeAddress *string
126-
gerAddress *string
125+
rollupID string
126+
rollupChainID string
127+
rollupAddress string
128+
bridgeAddress string
129+
gerAddress string
127130
}
128131

129132
type parsedCDKArgs struct {
@@ -156,14 +159,14 @@ func checkAddressArg(argFlagName, address string) error {
156159
func (inputArgs *inputArgs) parseCDKArgs(ctx context.Context) (parsedCDKArgs, error) {
157160
args := parsedCDKArgs{}
158161

159-
args.rpcURL = *inputArgs.rpcURL
162+
args.rpcURL = inputArgs.rpcURL
160163

161-
if inputArgs.forkID != nil && len(*inputArgs.forkID) > 0 {
162-
_, found := knownForks[*inputArgs.forkID]
164+
if len(inputArgs.forkID) > 0 {
165+
_, found := knownForks[inputArgs.forkID]
163166
if !found {
164167
return parsedCDKArgs{}, invalidForkIDErr()
165168
}
166-
args.forkID = knownForks[*inputArgs.forkID]
169+
args.forkID = knownForks[inputArgs.forkID]
167170
}
168171

169172
return args, nil
@@ -172,14 +175,14 @@ func (inputArgs *inputArgs) parseCDKArgs(ctx context.Context) (parsedCDKArgs, er
172175
func (inputArgs *inputArgs) parseRollupManagerArgs(ctx context.Context, cdkArgs parsedCDKArgs) (*parsedRollupManagerArgs, error) {
173176
args := &parsedRollupManagerArgs{}
174177

175-
if knownRollupManagerAddress, found := knownRollupManagerAddresses[*cdkInputArgs.rollupManagerAddress]; found {
178+
if knownRollupManagerAddress, found := knownRollupManagerAddresses[cdkInputArgs.rollupManagerAddress]; found {
176179
args.rollupManagerAddress = common.HexToAddress(knownRollupManagerAddress)
177180
} else {
178-
err := checkAddressArg(ArgRollupManagerAddress, *inputArgs.rollupManagerAddress)
181+
err := checkAddressArg(ArgRollupManagerAddress, inputArgs.rollupManagerAddress)
179182
if err != nil {
180183
return nil, err
181184
}
182-
args.rollupManagerAddress = common.HexToAddress(*cdkInputArgs.rollupManagerAddress)
185+
args.rollupManagerAddress = common.HexToAddress(cdkInputArgs.rollupManagerAddress)
183186
}
184187

185188
return args, nil
@@ -189,29 +192,29 @@ func (inputArgs *inputArgs) parseRollupArgs(ctx context.Context, rollupManager r
189192
args := &parsedRollupArgs{}
190193

191194
var rollupChainID uint64
192-
if cdkInputArgs.rollupChainID != nil && len(*cdkInputArgs.rollupChainID) > 0 {
193-
rollupChainIDN, err := strconv.ParseInt(*cdkInputArgs.rollupChainID, 10, 64)
195+
if len(cdkInputArgs.rollupChainID) > 0 {
196+
rollupChainIDN, err := strconv.ParseInt(cdkInputArgs.rollupChainID, 10, 64)
194197
if err != nil || rollupChainIDN < 0 {
195-
return nil, fmt.Errorf("invalid rollupChainID: %s, it must be a valid uint64", *cdkInputArgs.rollupID)
198+
return nil, fmt.Errorf("invalid rollupChainID: %s, it must be a valid uint64", cdkInputArgs.rollupID)
196199
}
197200
rollupChainID = uint64(rollupChainIDN)
198201
}
199202
args.rollupChainID = rollupChainID
200203

201204
args.rollupAddress = common.Address{}
202-
if inputArgs.rollupAddress != nil && len(*inputArgs.rollupAddress) > 0 {
203-
err := checkAddressArg(ArgRollupAddress, *inputArgs.rollupAddress)
205+
if len(inputArgs.rollupAddress) > 0 {
206+
err := checkAddressArg(ArgRollupAddress, inputArgs.rollupAddress)
204207
if err != nil {
205208
return nil, err
206209
}
207-
args.rollupAddress = common.HexToAddress(*inputArgs.rollupAddress)
210+
args.rollupAddress = common.HexToAddress(inputArgs.rollupAddress)
208211
}
209212

210213
args.rollupID = 0
211-
if cdkInputArgs.rollupID != nil && len(*cdkInputArgs.rollupID) > 0 {
212-
rollupIDN, err := strconv.Atoi(*cdkInputArgs.rollupID)
214+
if len(cdkInputArgs.rollupID) > 0 {
215+
rollupIDN, err := strconv.Atoi(cdkInputArgs.rollupID)
213216
if err != nil || rollupIDN < 0 {
214-
return nil, fmt.Errorf("invalid rollupID: %s, it must be a valid uint32", *cdkInputArgs.rollupID)
217+
return nil, fmt.Errorf("invalid rollupID: %s, it must be a valid uint32", cdkInputArgs.rollupID)
215218
}
216219
args.rollupID = uint32(rollupIDN)
217220
} else {
@@ -632,22 +635,24 @@ func mustPrintLogs(logs []types.Log, contractInstance reflect.Value, contractABI
632635

633636
func init() {
634637
// cdk
635-
cdkInputArgs.rpcURL = CDKCmd.PersistentFlags().String(ArgRpcURL, defaultRPCURL, "The RPC URL of the network containing the CDK contracts")
636-
cdkInputArgs.forkID = CDKCmd.PersistentFlags().String(ArgForkID, defaultForkId, "The ForkID of the cdk networks")
637-
cdkInputArgs.rollupManagerAddress = CDKCmd.PersistentFlags().String(ArgRollupManagerAddress, "", "The address of the rollup contract")
638+
f := CDKCmd.PersistentFlags()
639+
f.StringVar(&cdkInputArgs.rpcURL, ArgRpcURL, defaultRPCURL, "RPC URL of network containing CDK contracts")
640+
f.StringVar(&cdkInputArgs.forkID, ArgForkID, defaultForkId, "fork ID of CDK networks")
641+
f.StringVar(&cdkInputArgs.rollupManagerAddress, ArgRollupManagerAddress, "", "address of rollup contract")
638642

639643
// rollup manager
640644

641645
// rollup
642-
cdkInputArgs.rollupID = rollupCmd.PersistentFlags().String(ArgRollupID, "", "The rollup ID")
643-
cdkInputArgs.rollupChainID = rollupCmd.PersistentFlags().String(ArgRollupChainID, "", "The rollup chain ID")
644-
cdkInputArgs.rollupAddress = rollupCmd.PersistentFlags().String(ArgRollupAddress, "", "The rollup Address")
646+
fRollup := rollupCmd.PersistentFlags()
647+
fRollup.StringVar(&cdkInputArgs.rollupID, ArgRollupID, "", "rollup ID")
648+
fRollup.StringVar(&cdkInputArgs.rollupChainID, ArgRollupChainID, "", "rollup chain ID")
649+
fRollup.StringVar(&cdkInputArgs.rollupAddress, ArgRollupAddress, "", "rollup address")
645650

646651
// bridge
647-
cdkInputArgs.bridgeAddress = bridgeCmd.PersistentFlags().String(ArgBridgeAddress, "", "The address of the bridge contract")
652+
bridgeCmd.PersistentFlags().StringVar(&cdkInputArgs.bridgeAddress, ArgBridgeAddress, "", "address of bridge contract")
648653

649654
// ger
650-
cdkInputArgs.gerAddress = gerCmd.PersistentFlags().String(ArgGERAddress, "", "The address of the GER contract")
655+
gerCmd.PersistentFlags().StringVar(&cdkInputArgs.gerAddress, ArgGERAddress, "", "address of GER contract")
651656

652657
CDKCmd.AddCommand(rollupManagerCmd)
653658
CDKCmd.AddCommand(rollupCmd)

cmd/contract/cmd.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ var (
2828
)
2929

3030
type contractInputArgs struct {
31-
rpcURL *string
32-
address *string
31+
rpcURL string
32+
address string
3333
}
3434

3535
var inputArgs = contractInputArgs{}
@@ -46,7 +46,8 @@ var Cmd = &cobra.Command{
4646
Short: "Interact with smart contracts and fetch contract information from the blockchain",
4747
Long: usage,
4848
PersistentPreRun: func(cmd *cobra.Command, args []string) {
49-
inputArgs.rpcURL = flag_loader.GetRpcUrlFlagValue(cmd)
49+
rpcURL := flag_loader.GetRpcUrlFlagValue(cmd)
50+
inputArgs.rpcURL = *rpcURL
5051
},
5152
RunE: func(cmd *cobra.Command, args []string) error {
5253
return contract(cmd)
@@ -56,8 +57,8 @@ var Cmd = &cobra.Command{
5657
func contract(cmd *cobra.Command) error {
5758
ctx := cmd.Context()
5859

59-
rpcURL := *inputArgs.rpcURL
60-
address := *inputArgs.address
60+
rpcURL := inputArgs.rpcURL
61+
address := inputArgs.address
6162

6263
// connect to the blockchain node and fetch contract information
6364
c, err := ethclient.Dial(rpcURL)
@@ -168,8 +169,9 @@ func fetchContractCreationTx(ctx context.Context, client *ethclient.Client, cont
168169
}
169170

170171
func init() {
171-
inputArgs.rpcURL = Cmd.PersistentFlags().String(ArgRpcURL, defaultRPCURL, "The RPC URL of the network containing the contract")
172-
inputArgs.address = Cmd.PersistentFlags().String(ArgAddress, "", "The contract address")
172+
f := Cmd.Flags()
173+
f.StringVar(&inputArgs.rpcURL, ArgRpcURL, defaultRPCURL, "RPC URL of network containing contract")
174+
f.StringVar(&inputArgs.address, ArgAddress, "", "contract address")
173175

174-
_ = Cmd.MarkPersistentFlagRequired(ArgAddress)
176+
_ = Cmd.MarkFlagRequired(ArgAddress)
175177
}

0 commit comments

Comments
 (0)