Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions cmd/blockchaincmd/convert.go
Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,7 @@ func InitializeValidatorManager(
UptimeBlockchainID: blockchainID,
},
validatorManagerAddrStr,
false,
); err != nil {
return tracked, err
}
Expand All @@ -411,6 +412,7 @@ func InitializeValidatorManager(
aggregatorLogger,
validatorManagerAddrStr,
useACP99,
false,
); err != nil {
return tracked, err
}
Expand Down
10 changes: 7 additions & 3 deletions cmd/contractcmd/init_validator_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,10 @@ type POSManagerSpecFlags struct {
}

var (
validatorManagerFlags ValidatorManagerFlags
initPOSManagerFlags POSManagerSpecFlags
validatorManagerAddress string
validatorManagerFlags ValidatorManagerFlags
initPOSManagerFlags POSManagerSpecFlags
validatorManagerAddress string
skipInitializeValidatorManager bool
)

// avalanche contract initValidatorManager
Expand All @@ -78,6 +79,7 @@ func newInitValidatorManagerCmd() *cobra.Command {
cmd.Flags().Uint16Var(&initPOSManagerFlags.minimumDelegationFee, "pos-minimum-delegation-fee", 1, "(PoS only) minimum delegation fee")
cmd.Flags().Uint8Var(&initPOSManagerFlags.maximumStakeMultiplier, "pos-maximum-stake-multiplier", 1, "(PoS only )maximum stake multiplier")
cmd.Flags().Uint64Var(&initPOSManagerFlags.weightToValueFactor, "pos-weight-to-value-factor", 1, "(PoS only) weight to value factor")
cmd.Flags().BoolVar(&skipInitializeValidatorManager, "skip-init-validator-manager", false, "skip initialize validator manager")
return cmd
}

Expand Down Expand Up @@ -211,6 +213,7 @@ func initValidatorManager(_ *cobra.Command, args []string) error {
aggregatorLogger,
validatorManagerAddress,
sc.UseACP99,
skipInitializeValidatorManager,
); err != nil {
return err
}
Expand Down Expand Up @@ -263,6 +266,7 @@ func initValidatorManager(_ *cobra.Command, args []string) error {
UptimeBlockchainID: blockchainID,
},
validatorManagerAddress,
skipInitializeValidatorManager,
); err != nil {
return err
}
Expand Down
4 changes: 4 additions & 0 deletions pkg/validatormanager/validatormanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ func SetupPoA(
aggregatorLogger logging.Logger,
validatorManagerAddressStr string,
useACP99 bool,
skipInitializeValidatorManager bool,
) error {
return subnet.InitializeProofOfAuthority(
ctx,
Expand All @@ -213,6 +214,7 @@ func SetupPoA(
aggregatorLogger,
validatorManagerAddressStr,
useACP99,
skipInitializeValidatorManager,
)
}

Expand All @@ -231,6 +233,7 @@ func SetupPoS(
aggregatorLogger logging.Logger,
posParams validatorManagerSDK.PoSParams,
validatorManagerAddressStr string,
skipInitializeValidatorManager bool,
) error {
return subnet.InitializeProofOfStake(
ctx,
Expand All @@ -241,5 +244,6 @@ func SetupPoS(
aggregatorLogger,
posParams,
validatorManagerAddressStr,
skipInitializeValidatorManager,
)
}
56 changes: 31 additions & 25 deletions sdk/blockchain/blockchain.go
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,7 @@ func (c *Subnet) InitializeProofOfAuthority(
aggregatorLogger logging.Logger,
validatorManagerAddressStr string,
useACP99 bool,
skipInitializeValidatorManager bool,
) error {
if c.SubnetID == ids.Empty {
return fmt.Errorf("unable to initialize Proof of Authority: %w", errMissingSubnetID)
Expand Down Expand Up @@ -379,19 +380,21 @@ func (c *Subnet) InitializeProofOfAuthority(
ux.Logger.RedXToUser("failure setting proposer VM on L1: %s", err)
}
managerAddress := common.HexToAddress(validatorManagerAddressStr)
tx, _, err := validatormanager.PoAValidatorManagerInitialize(
c.RPC,
managerAddress,
privateKey,
c.SubnetID,
*c.OwnerAddress,
useACP99,
)
if err != nil {
if !errors.Is(err, validatormanager.ErrAlreadyInitialized) {
return evm.TransactionError(tx, err, "failure initializing poa validator manager")
if !skipInitializeValidatorManager {
tx, _, err := validatormanager.PoAValidatorManagerInitialize(
c.RPC,
managerAddress,
privateKey,
c.SubnetID,
*c.OwnerAddress,
useACP99,
)
if err != nil {
if !errors.Is(err, validatormanager.ErrAlreadyInitialized) {
return evm.TransactionError(tx, err, "failure initializing poa validator manager")
}
ux.Logger.PrintToUser("Warning: the PoA contract is already initialized.")
}
ux.Logger.PrintToUser("Warning: the PoA contract is already initialized.")
}

subnetConversionSignedMessage, err := validatormanager.GetPChainSubnetToL1ConversionMessage(
Expand All @@ -410,7 +413,7 @@ func (c *Subnet) InitializeProofOfAuthority(
return fmt.Errorf("failure signing subnet conversion warp message: %w", err)
}

tx, _, err = validatormanager.InitializeValidatorsSet(
tx, _, err := validatormanager.InitializeValidatorsSet(
c.RPC,
managerAddress,
privateKey,
Expand All @@ -435,6 +438,7 @@ func (c *Subnet) InitializeProofOfStake(
aggregatorLogger logging.Logger,
posParams validatormanager.PoSParams,
validatorManagerAddressStr string,
skipInitializeValidatorManager bool,
) error {
if err := evm.SetupProposerVM(
c.RPC,
Expand All @@ -443,18 +447,20 @@ func (c *Subnet) InitializeProofOfStake(
ux.Logger.RedXToUser("failure setting proposer VM on L1: %s", err)
}
managerAddress := common.HexToAddress(validatorManagerAddressStr)
tx, _, err := validatormanager.PoSValidatorManagerInitialize(
c.RPC,
managerAddress,
privateKey,
c.SubnetID,
posParams,
)
if err != nil {
if !errors.Is(err, validatormanager.ErrAlreadyInitialized) {
return evm.TransactionError(tx, err, "failure initializing native PoS validator manager")
if !skipInitializeValidatorManager {
tx, _, err := validatormanager.PoSValidatorManagerInitialize(
c.RPC,
managerAddress,
privateKey,
c.SubnetID,
posParams,
)
if err != nil {
if !errors.Is(err, validatormanager.ErrAlreadyInitialized) {
return evm.TransactionError(tx, err, "failure initializing native PoS validator manager")
}
ux.Logger.PrintToUser("Warning: the PoS contract is already initialized.")
}
ux.Logger.PrintToUser("Warning: the PoS contract is already initialized.")
}
subnetConversionSignedMessage, err := validatormanager.GetPChainSubnetToL1ConversionMessage(
ctx,
Expand All @@ -472,7 +478,7 @@ func (c *Subnet) InitializeProofOfStake(
return fmt.Errorf("failure signing subnet conversion warp message: %w", err)
}

tx, _, err = validatormanager.InitializeValidatorsSet(
tx, _, err := validatormanager.InitializeValidatorsSet(
c.RPC,
managerAddress,
privateKey,
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e/testcases/validatormanager/suite.go
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ var _ = ginkgo.Describe("[Validator Manager POA Set Up]", ginkgo.Ordered, func()

ctx, cancel := utils.GetSignatureAggregatorContext()
defer cancel()
err = subnetSDK.InitializeProofOfAuthority(ctx, network, k.PrivKeyHex(), extraAggregatorPeers, true, logging.NoLog{}, ProxyContractAddress, true)
err = subnetSDK.InitializeProofOfAuthority(ctx, network, k.PrivKeyHex(), extraAggregatorPeers, true, logging.NoLog{}, ProxyContractAddress, true, false)
gomega.Expect(err).Should(gomega.BeNil())
})
})
Loading