Skip to content

Commit

Permalink
added setMinimumStakeForQuorum (#554)
Browse files Browse the repository at this point in the history
Co-authored-by: Tomás Grüner <[email protected]>
  • Loading branch information
Sidu28 and MegaRedHand authored Feb 11, 2025
1 parent 6c75e89 commit 45d9e05
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
21 changes: 21 additions & 0 deletions chainio/clients/avsregistry/writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,27 @@ func (w *ChainWriter) SetSlashableStakeLookahead(
return receipt, nil
}

func (w *ChainWriter) SetMinimumStakeForQuorum(
ctx context.Context,
quorumNumber uint8,
minimumStake *big.Int,
waitForReceipt bool,
) (*gethtypes.Receipt, error) {
noSendTxOpts, err := w.txMgr.GetNoSendTxOpts()
if err != nil {
return nil, err
}
tx, err := w.stakeRegistry.SetMinimumStakeForQuorum(noSendTxOpts, quorumNumber, minimumStake)
if err != nil {
return nil, err
}
receipt, err := w.txMgr.Send(ctx, tx, waitForReceipt)
if err != nil {
return nil, utils.WrapError("failed to send SetMinimumStake tx with err", err.Error())
}
return receipt, nil
}

// Creates a new quorum that tracks total delegated stake for operators.
// It receives the operator set parameters for the given quorum and the minimum stake required to register.
// Returns the transaction receipt in case of success.
Expand Down
38 changes: 38 additions & 0 deletions chainio/clients/avsregistry/writer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ func TestWriterMethods(t *testing.T) {
require.NoError(t, err)

quorumNumbers := types.QuorumNums{0}
quorumNumber := types.QuorumNum(0)

subCtx, cancelFn := context.WithCancel(context.Background())
cancelFn()
Expand Down Expand Up @@ -294,6 +295,43 @@ func TestWriterMethods(t *testing.T) {

assert.Equal(t, lookAheadPeriod, uint32(newLookAheadPeriod))
})

t.Run("set minimum stake for quorum", func(t *testing.T) {
// Create stakeRegistry contract
ethHttpClient, err := ethclient.Dial(anvilHttpEndpoint)
require.NoError(t, err)

contractRegistryCoordinator, err := regcoord.NewContractRegistryCoordinator(
contractAddrs.RegistryCoordinator,
ethHttpClient,
)
require.NoError(t, err)

stakeRegistryAddr, err := contractRegistryCoordinator.StakeRegistry(&bind.CallOpts{})
require.NoError(t, err)

stakeRegistry, err := stakeregistry.NewContractStakeRegistry(
stakeRegistryAddr,
ethHttpClient,
)
require.NoError(t, err)
receipt, err := chainWriter.SetMinimumStakeForQuorum(
context.Background(),
quorumNumber.UnderlyingType(),
big.NewInt(100),
true,
)
require.NoError(t, err)
require.NotNil(t, receipt)

newMinimumStakeForQuorum, err := stakeRegistry.MinimumStakeForQuorum(
&bind.CallOpts{},
quorumNumber.UnderlyingType(),
)
require.NoError(t, err)

assert.Equal(t, newMinimumStakeForQuorum, big.NewInt(100))
})
}

// Compliance test for BLS signature
Expand Down

0 comments on commit 45d9e05

Please sign in to comment.