From 0e65995e763298c7f1db547bea4a79f82ad6baaf Mon Sep 17 00:00:00 2001 From: MatheusFranco99 <48058141+MatheusFranco99@users.noreply.github.com> Date: Tue, 2 Jul 2024 11:25:25 +0100 Subject: [PATCH 1/2] Use GetSignature in HasSigner to avoid duplicated code --- ssv/partial_sig_container.go | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/ssv/partial_sig_container.go b/ssv/partial_sig_container.go index ac4a13660..75586b54a 100644 --- a/ssv/partial_sig_container.go +++ b/ssv/partial_sig_container.go @@ -37,18 +37,13 @@ func (ps *PartialSigContainer) AddSignature(sigMsg *types.PartialSignatureMessag } } -// Returns if container has signature for signer and signing root +// HasSigner returns true if container has signature for signer and signing root, else it returns false func (ps *PartialSigContainer) HasSigner(validatorIndex phase0.ValidatorIndex, signer types.OperatorID, signingRoot [32]byte) bool { - if ps.Signatures[validatorIndex] == nil { - return false - } - if ps.Signatures[validatorIndex][rootHex(signingRoot)] == nil { - return false - } - return ps.Signatures[validatorIndex][rootHex(signingRoot)][signer] != nil + _, err := ps.GetSignature(validatorIndex, signer, signingRoot) + return err == nil } -// Return signature for given root and signer +// GetSignature returns the signature for a given root and signer func (ps *PartialSigContainer) GetSignature(validatorIndex phase0.ValidatorIndex, signer types.OperatorID, signingRoot [32]byte) (types.Signature, error) { if ps.Signatures[validatorIndex] == nil { return nil, errors.New("Dont have signature for the given validator index") From d015a8d9a3684367a1443c3ee8ff84ddf8c10a35 Mon Sep 17 00:00:00 2001 From: MatheusFranco99 <48058141+MatheusFranco99@users.noreply.github.com> Date: Tue, 2 Jul 2024 11:26:31 +0100 Subject: [PATCH 2/2] Rename HasSinger to HasSignature since we're looking for a signature --- ssv/partial_sig_container.go | 2 +- ssv/runner.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ssv/partial_sig_container.go b/ssv/partial_sig_container.go index 75586b54a..b10aee917 100644 --- a/ssv/partial_sig_container.go +++ b/ssv/partial_sig_container.go @@ -38,7 +38,7 @@ func (ps *PartialSigContainer) AddSignature(sigMsg *types.PartialSignatureMessag } // HasSigner returns true if container has signature for signer and signing root, else it returns false -func (ps *PartialSigContainer) HasSigner(validatorIndex phase0.ValidatorIndex, signer types.OperatorID, signingRoot [32]byte) bool { +func (ps *PartialSigContainer) HasSignature(validatorIndex phase0.ValidatorIndex, signer types.OperatorID, signingRoot [32]byte) bool { _, err := ps.GetSignature(validatorIndex, signer, signingRoot) return err == nil } diff --git a/ssv/runner.go b/ssv/runner.go index 5f11a2c32..f6ca86b68 100644 --- a/ssv/runner.go +++ b/ssv/runner.go @@ -184,7 +184,7 @@ func (b *BaseRunner) basePartialSigMsgProcessing( prevQuorum := container.HasQuorum(msg.ValidatorIndex, msg.SigningRoot) // Check if it has two signatures for the same signer - if container.HasSigner(msg.ValidatorIndex, msg.Signer, msg.SigningRoot) { + if container.HasSignature(msg.ValidatorIndex, msg.Signer, msg.SigningRoot) { b.resolveDuplicateSignature(container, msg) } else { container.AddSignature(msg)