Skip to content

Commit 2331569

Browse files
Refactor register (#2993)
* remove non acp 99 * update tooling sdk * remove acp99 node local * refactor register validator * Revert "refactor register validator" This reverts commit 937c473. * refactor register validator * Revert "refactor register validator" This reverts commit 2b9345e. * refactor registre * lint * lint * fix lint * add logs * lint * add more register refactor * fix lint * lint --------- Signed-off-by: sukantoraymond <[email protected]>
1 parent 2c7ffb1 commit 2331569

File tree

5 files changed

+280
-267
lines changed

5 files changed

+280
-267
lines changed

cmd/blockchaincmd/add_validator.go

Lines changed: 68 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -652,32 +652,74 @@ func CallAddValidator(
652652
ctx, cancel := sdkutils.GetTimedContext(constants.EVMEventLookupTimeout)
653653
defer cancel()
654654

655-
// Example of using the HybridLogger with SDK functions
656-
signedMessage, validationID, rawTx, err := validatormanager.InitValidatorRegistration(
657-
ctx,
658-
duallogger.NewDualLogger(true, app),
655+
subnetID, err := contract.GetSubnetID(
659656
app,
660657
network,
661-
validatorManagerRPCEndpoint,
662658
chainSpec,
663-
externalValidatorManagerOwner,
664-
signer,
665-
nodeID,
666-
blsInfo.PublicKey[:],
667-
expiry,
668-
remainingBalanceOwners,
669-
disableOwners,
670-
weight,
671-
aggregatorLogger,
672-
pos,
673-
delegationFee,
674-
duration,
675-
common.HexToAddress(rewardsRecipientAddr),
676-
validatorManagerBlockchainID,
677-
validatorManagerAddress,
678-
initiateTxHash,
679-
signatureAggregatorEndpoint,
680-
pChainEpoch.PChainHeight,
659+
)
660+
if err != nil {
661+
return err
662+
}
663+
664+
managerSubnetID, err := contract.GetSubnetID(
665+
app,
666+
network,
667+
contract.ChainSpec{
668+
BlockchainID: validatorManagerBlockchainID.String(),
669+
},
670+
)
671+
if err != nil {
672+
return err
673+
}
674+
675+
validatorManagerParams := validatormanager.ValidatorManagerParams{
676+
RPCURL: validatorManagerRPCEndpoint,
677+
Signer: signer,
678+
NodeID: nodeID,
679+
BlsPublicKey: blsInfo.PublicKey[:],
680+
BalanceOwners: remainingBalanceOwners,
681+
DisableOwners: disableOwners,
682+
ManagerAddressStr: validatorManagerAddress,
683+
Weight: weight,
684+
}
685+
686+
getRegisterValidatorSignedMessageParams := validatormanager.GetRegisterValidatorSignedMessageParams{
687+
Network: network,
688+
Expiry: expiry,
689+
SubnetID: subnetID,
690+
ManagerSubnetID: managerSubnetID,
691+
BlockchainID: validatorManagerBlockchainID,
692+
SigAggParams: validatormanager.SignatureAggregatorParams{
693+
AggregatorLogger: aggregatorLogger,
694+
SignatureAggregatorEndpoint: signatureAggregatorEndpoint,
695+
PchainHeight: pChainEpoch.PChainHeight,
696+
},
697+
}
698+
699+
initValidatorRegistrationParams := validatormanager.InitValidatorRegistrationParams{
700+
ValidatorManager: validatorManagerParams,
701+
SignedMessageParams: getRegisterValidatorSignedMessageParams,
702+
TxHash: initiateTxHash,
703+
}
704+
if pos {
705+
posParams := validatormanager.ProofOfStakeParams{
706+
DelegationFee: delegationFee,
707+
StakeDuration: duration,
708+
RewardRecipient: common.HexToAddress(rewardsRecipientAddr),
709+
}
710+
initValidatorRegistrationParams.PoS = &posParams
711+
}
712+
initValidatorRegistrationOpts := validatormanager.InitValidatorRegistrationOptions{
713+
// Execution behavior (don’t broadcast; return unsigned init tx)
714+
BuildOnly: externalValidatorManagerOwner,
715+
Logger: duallogger.NewDualLogger(true, app),
716+
}
717+
718+
// Example of using the HybridLogger with SDK functions
719+
signedMessage, validationID, rawTx, err := validatormanager.InitValidatorRegistration(
720+
ctx,
721+
initValidatorRegistrationParams,
722+
initValidatorRegistrationOpts,
681723
)
682724
if err != nil {
683725
return err
@@ -717,24 +759,14 @@ func CallAddValidator(
717759
if err != nil {
718760
return fmt.Errorf("failure getting l1 current epoch: %w", err)
719761
}
720-
762+
initValidatorRegistrationParams.SignedMessageParams.SigAggParams.PchainHeight = l1Epoch.PChainHeight
721763
ctx, cancel = sdkutils.GetTimedContext(constants.EVMEventLookupTimeout)
722764
defer cancel()
723765
rawTx, err = validatormanager.FinishValidatorRegistration(
724766
ctx,
725-
duallogger.NewDualLogger(true, app),
726-
app,
727-
network,
728-
validatorManagerRPCEndpoint,
729-
chainSpec,
730-
externalValidatorManagerOwner,
731-
signer,
767+
initValidatorRegistrationParams,
768+
initValidatorRegistrationOpts,
732769
validationID,
733-
aggregatorLogger,
734-
validatorManagerBlockchainID,
735-
validatorManagerAddress,
736-
signatureAggregatorEndpoint,
737-
l1Epoch.PChainHeight,
738770
)
739771
if err != nil {
740772
return err

cmd/blockchaincmd/remove_validator.go

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -512,21 +512,42 @@ func removeValidatorSOV(
512512

513513
ctx, cancel = sdkutils.GetTimedContext(constants.EVMEventLookupTimeout)
514514
defer cancel()
515+
516+
subnetID, err := contract.GetSubnetID(
517+
app,
518+
network,
519+
chainSpec,
520+
)
521+
if err != nil {
522+
return err
523+
}
524+
managerSubnetID, err := contract.GetSubnetID(
525+
app,
526+
network,
527+
contract.ChainSpec{
528+
BlockchainID: validatorManagerBlockchainID.String(),
529+
},
530+
)
531+
if err != nil {
532+
return err
533+
}
534+
sigAggParams := validatormanager.SignatureAggregatorParams{
535+
AggregatorLogger: aggregatorLogger,
536+
SignatureAggregatorEndpoint: signatureAggregatorEndpoint,
537+
PchainHeight: l1Epoch.PChainHeight,
538+
}
515539
rawTx, err = validatormanager.FinishValidatorRemoval(
516540
ctx,
517541
duallogger.NewDualLogger(true, app),
518-
app,
519542
network,
520543
validatorManagerRPCEndpoint,
521-
chainSpec,
544+
subnetID,
545+
managerSubnetID,
522546
externalValidatorManagerOwner,
523547
signer,
524548
validationID,
525-
aggregatorLogger,
526-
validatorManagerBlockchainID,
527549
validatorManagerAddress,
528-
signatureAggregatorEndpoint,
529-
l1Epoch.PChainHeight,
550+
sigAggParams,
530551
)
531552
if err != nil {
532553
return err

cmd/nodecmd/local.go

Lines changed: 56 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -665,31 +665,61 @@ func addAsValidator(
665665
if err != nil {
666666
return fmt.Errorf("failure parsing blockchain ID: %w", err)
667667
}
668-
signedMessage, validationID, _, err := validatormanager.InitValidatorRegistration(
669-
ctx,
670-
duallogger.NewDualLogger(true, app),
668+
669+
subnetID, err := contract.GetSubnetID(
671670
app,
672671
network,
673-
localValidateFlags.RPC,
674-
chainSpec,
675-
false,
676-
signer,
677-
nodeID,
678-
blsInfo.PublicKey[:],
679-
expiry,
680-
remainingBalanceOwners,
681-
disableOwners,
682-
0,
683-
aggregatorLogger,
684-
true,
685-
delegationFee,
686-
time.Duration(minimumStakeDuration)*time.Second,
687-
common.HexToAddress(rewardsRecipientAddr),
688-
l1BlockchainID,
689-
validatorManagerAddress,
690-
"",
691-
signatureAggregatorEndpoint,
692-
pChainEpoch.PChainHeight,
672+
contract.ChainSpec{
673+
BlockchainID: l1BlockchainID.String(),
674+
},
675+
)
676+
if err != nil {
677+
return err
678+
}
679+
680+
validatorManagerParams := validatormanager.ValidatorManagerParams{
681+
RPCURL: localValidateFlags.RPC,
682+
Signer: signer,
683+
NodeID: nodeID,
684+
BlsPublicKey: blsInfo.PublicKey[:],
685+
BalanceOwners: remainingBalanceOwners,
686+
DisableOwners: disableOwners,
687+
ManagerAddressStr: validatorManagerAddress,
688+
Weight: weight,
689+
}
690+
691+
getRegisterValidatorSignedMessageParams := validatormanager.GetRegisterValidatorSignedMessageParams{
692+
Network: network,
693+
Expiry: expiry,
694+
SubnetID: subnetID,
695+
BlockchainID: l1BlockchainID,
696+
SigAggParams: validatormanager.SignatureAggregatorParams{
697+
AggregatorLogger: aggregatorLogger,
698+
SignatureAggregatorEndpoint: signatureAggregatorEndpoint,
699+
PchainHeight: pChainEpoch.PChainHeight,
700+
},
701+
}
702+
703+
initValidatorRegistrationParams := validatormanager.InitValidatorRegistrationParams{
704+
ValidatorManager: validatorManagerParams,
705+
SignedMessageParams: getRegisterValidatorSignedMessageParams,
706+
}
707+
posParams := validatormanager.ProofOfStakeParams{
708+
DelegationFee: delegationFee,
709+
StakeDuration: time.Duration(minimumStakeDuration) * time.Second,
710+
RewardRecipient: common.HexToAddress(rewardsRecipientAddr),
711+
}
712+
initValidatorRegistrationParams.PoS = &posParams
713+
initValidatorRegistrationOpts := validatormanager.InitValidatorRegistrationOptions{
714+
// Execution behavior (don’t broadcast; return unsigned init tx)
715+
BuildOnly: false,
716+
Logger: duallogger.NewDualLogger(true, app),
717+
}
718+
719+
signedMessage, validationID, _, err := validatormanager.InitValidatorRegistration(
720+
ctx,
721+
initValidatorRegistrationParams,
722+
initValidatorRegistrationOpts,
693723
)
694724
if err != nil {
695725
return err
@@ -717,24 +747,14 @@ func addAsValidator(
717747
if err != nil {
718748
return fmt.Errorf("failure getting l1 current epoch: %w", err)
719749
}
720-
750+
initValidatorRegistrationParams.SignedMessageParams.SigAggParams.PchainHeight = l1Epoch.PChainHeight
721751
ctx, cancel = sdkutils.GetTimedContext(constants.EVMEventLookupTimeout)
722752
defer cancel()
723753
if _, err := validatormanager.FinishValidatorRegistration(
724754
ctx,
725-
duallogger.NewDualLogger(true, app),
726-
app,
727-
network,
728-
localValidateFlags.RPC,
729-
chainSpec,
730-
false,
731-
signer,
755+
initValidatorRegistrationParams,
756+
initValidatorRegistrationOpts,
732757
validationID,
733-
aggregatorLogger,
734-
l1BlockchainID,
735-
validatorManagerAddress,
736-
signatureAggregatorEndpoint,
737-
l1Epoch.PChainHeight,
738758
); err != nil {
739759
return err
740760
}

0 commit comments

Comments
 (0)