Skip to content

Commit f76b969

Browse files
committed
command starts to work
1 parent 2f2002d commit f76b969

File tree

2 files changed

+66
-9
lines changed

2 files changed

+66
-9
lines changed

cmd/contractcmd/deploy_validator_manager.go

Lines changed: 64 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package contractcmd
44

55
import (
66
"fmt"
7+
"os"
78

89
"github.com/ava-labs/avalanche-cli/pkg/cobrautils"
910
"github.com/ava-labs/avalanche-cli/pkg/contract"
@@ -12,6 +13,7 @@ import (
1213
"github.com/ava-labs/avalanche-cli/pkg/ux"
1314
"github.com/ava-labs/avalanche-cli/pkg/validatormanager"
1415
"github.com/ava-labs/avalanche-cli/sdk/evm"
16+
"github.com/ava-labs/avalanche-cli/sdk/validatormanager/validatormanagertypes"
1517
"github.com/ava-labs/avalanchego/utils/logging"
1618

1719
"github.com/ethereum/go-ethereum/common"
@@ -27,6 +29,9 @@ type DeployValidatorManagerFlags struct {
2729
proxyAdmin string
2830
proxy string
2931
deployProxy bool
32+
poa bool
33+
pos bool
34+
validatorManagerPath string
3035
}
3136

3237
var deployValidatorManagerFlags DeployValidatorManagerFlags
@@ -51,6 +56,9 @@ func newDeployValidatorManagerCmd() *cobra.Command {
5156
cmd.Flags().StringVar(&deployValidatorManagerFlags.proxyAdmin, "proxy-admin", "", "use the given proxy admin")
5257
cmd.Flags().StringVar(&deployValidatorManagerFlags.proxy, "proxy", "", "use the given proxy")
5358
cmd.Flags().BoolVar(&deployValidatorManagerFlags.deployProxy, "deploy-proxy", false, "deploy a new proxy and admin for the validator manager")
59+
cmd.Flags().BoolVar(&deployValidatorManagerFlags.poa, "poa", false, "deploy a v2.0.0 Proof of Authority Validator Manager")
60+
cmd.Flags().BoolVar(&deployValidatorManagerFlags.pos, "pos", false, "deploy a v2.0.0 Proof of Stake Validator Manager")
61+
cmd.Flags().StringVar(&deployValidatorManagerFlags.validatorManagerPath, "validator-manager-path", "", "deploy the validator manager contained in the given path (hex encoded)")
5462
return cmd
5563
}
5664

@@ -59,6 +67,28 @@ func deployValidatorManager(cmd *cobra.Command, _ []string) error {
5967
}
6068

6169
func CallDeployValidatorManager(cmd *cobra.Command, flags DeployValidatorManagerFlags) error {
70+
if !flags.poa && !flags.pos && flags.validatorManagerPath == "" {
71+
customOption := "Custom"
72+
options := []string{validatormanagertypes.ProofOfAuthority, validatormanagertypes.ProofOfStake, customOption}
73+
option, err := app.Prompt.CaptureList(
74+
"Which validator manager do you want to deploy?",
75+
options,
76+
)
77+
if err != nil {
78+
return err
79+
}
80+
switch option {
81+
case validatormanagertypes.ProofOfAuthority:
82+
flags.poa = true
83+
case validatormanagertypes.ProofOfStake:
84+
flags.pos = true
85+
case customOption:
86+
flags.validatorManagerPath, err = app.Prompt.CaptureExistingFilepath("Provide filepath that contains validator manager bytecode encoded as hexa:")
87+
if err != nil {
88+
return err
89+
}
90+
}
91+
}
6292
network, err := networkoptions.GetNetworkFromCmdLineFlags(
6393
app,
6494
"",
@@ -176,13 +206,40 @@ func CallDeployValidatorManager(cmd *cobra.Command, flags DeployValidatorManager
176206
}
177207

178208
ux.Logger.PrintToUser("Deploying validator manager contract")
179-
validatorManagerAddress, _, _, err := validatormanager.DeployValidatorManagerV2_0_0Contract(
180-
flags.rpcEndpoint,
181-
privateKey,
182-
false,
183-
)
184-
if err != nil {
185-
return err
209+
var validatorManagerAddress common.Address
210+
switch {
211+
case flags.poa:
212+
validatorManagerAddress, _, _, err = validatormanager.DeployValidatorManagerV2_0_0Contract(
213+
flags.rpcEndpoint,
214+
privateKey,
215+
false,
216+
)
217+
if err != nil {
218+
return err
219+
}
220+
case flags.pos:
221+
validatorManagerAddress, _, _, err = validatormanager.DeployPoSValidatorManagerV2_0_0Contract(
222+
flags.rpcEndpoint,
223+
privateKey,
224+
false,
225+
)
226+
if err != nil {
227+
return err
228+
}
229+
case flags.validatorManagerPath != "":
230+
bytecode, err := os.ReadFile(flags.validatorManagerPath)
231+
if err != nil {
232+
return err
233+
}
234+
validatorManagerAddress, _, _, err = validatormanager.DeployValidatorManagerContract(
235+
flags.rpcEndpoint,
236+
privateKey,
237+
false,
238+
string(bytecode),
239+
)
240+
if err != nil {
241+
return err
242+
}
186243
}
187244
ux.Logger.PrintToUser("Validator Manager Address: %s", validatorManagerAddress.Hex())
188245
ux.Logger.PrintToUser("")

pkg/validatormanager/validatormanager.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ func DeployValidatorMessagesV2_0_0Contract(
5252
func hasValidatorMessagesAddressPlaceholder(
5353
contract string,
5454
) bool {
55-
return strings.Index(
55+
return strings.Contains(
5656
contract,
5757
"__$fd0c147b4031eef6079b0498cbafa865f0$__",
58-
) != -1
58+
)
5959
}
6060

6161
func fillValidatorMessagesAddressPlaceholder(

0 commit comments

Comments
 (0)