From 3870602091c554aac69dfbdb80090574b90a895f Mon Sep 17 00:00:00 2001 From: maximopalopoli Date: Fri, 7 Feb 2025 15:50:26 -0300 Subject: [PATCH 1/4] Add function implementation --- chainio/clients/avsregistry/writer.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/chainio/clients/avsregistry/writer.go b/chainio/clients/avsregistry/writer.go index 4cfcbaed..981fa094 100644 --- a/chainio/clients/avsregistry/writer.go +++ b/chainio/clients/avsregistry/writer.go @@ -671,3 +671,25 @@ func (w *ChainWriter) SetChurnApprover( } return receipt, nil } + +func (w *ChainWriter) SetEjectionCooldown( + ctx context.Context, + ejectionCooldown *big.Int, + waitForReceipt bool, +) (*gethtypes.Receipt, error) { + w.logger.Info("setting ejection cooldown with value ", ejectionCooldown) + + noSendTxOpts, err := w.txMgr.GetNoSendTxOpts() + if err != nil { + return nil, err + } + tx, err := w.registryCoordinator.SetEjectionCooldown(noSendTxOpts, ejectionCooldown) + if err != nil { + return nil, err + } + receipt, err := w.txMgr.Send(ctx, tx, waitForReceipt) + if err != nil { + return nil, utils.WrapError("failed to send SetEjectionCooldown tx with err", err.Error()) + } + return receipt, nil +} From ef77cdab20243f0554d3039c22312b4723fde730 Mon Sep 17 00:00:00 2001 From: maximopalopoli Date: Fri, 7 Feb 2025 16:35:48 -0300 Subject: [PATCH 2/4] Add test case modifying cooldown and asserting --- chainio/clients/avsregistry/writer_test.go | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/chainio/clients/avsregistry/writer_test.go b/chainio/clients/avsregistry/writer_test.go index 110d3550..c9e0caad 100644 --- a/chainio/clients/avsregistry/writer_test.go +++ b/chainio/clients/avsregistry/writer_test.go @@ -489,3 +489,37 @@ func TestSetChurnApprover(t *testing.T) { require.NoError(t, err) assert.Equal(t, newApprover.String(), testutils.ANVIL_SECOND_ADDRESS) } + +func TestSetEjectionCooldown(t *testing.T) { + // Test set up + clients, anvilHttpEndpoint := testclients.BuildTestClients(t) + + contractAddrs := testutils.GetContractAddressesFromContractRegistry(anvilHttpEndpoint) + + chainWriter := clients.AvsRegistryChainWriter + + ejectionCooldown := big.NewInt(2873) + + ethHttpClient := clients.EthHttpClient + + registryCoordinatorContract, err := regcoord.NewContractRegistryCoordinator( + contractAddrs.RegistryCoordinator, + ethHttpClient, + ) + require.NoError(t, err) + + // At first, ejectionCooldown is zero + cooldown, err := registryCoordinatorContract.EjectionCooldown(&bind.CallOpts{}) + require.NoError(t, err) + assert.Equal(t, cooldown.Int64(), int64(0)) + + // Set a new ejectionCooldown + receipt, err := chainWriter.SetEjectionCooldown(context.Background(), ejectionCooldown, true) + require.NoError(t, err) + require.Equal(t, receipt.Status, gethtypes.ReceiptStatusSuccessful) + + // After change, ejectionCooldown is the setted value + newCooldown, err := registryCoordinatorContract.EjectionCooldown(&bind.CallOpts{}) + require.NoError(t, err) + assert.Equal(t, newCooldown, ejectionCooldown) +} From f6a5e2419c7895b37d7b1dce82047edd9efab3ab Mon Sep 17 00:00:00 2001 From: maximopalopoli Date: Fri, 7 Feb 2025 16:36:03 -0300 Subject: [PATCH 3/4] Add function description --- chainio/clients/avsregistry/writer.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/chainio/clients/avsregistry/writer.go b/chainio/clients/avsregistry/writer.go index 981fa094..6018f361 100644 --- a/chainio/clients/avsregistry/writer.go +++ b/chainio/clients/avsregistry/writer.go @@ -672,6 +672,8 @@ func (w *ChainWriter) SetChurnApprover( return receipt, nil } +// Sets the ejection cooldown with the value received by parameter. The ejection cooldown is the time an operator has to +// wait to join any quorum after being rejected. Returns the receipt of the transaction in case of success. func (w *ChainWriter) SetEjectionCooldown( ctx context.Context, ejectionCooldown *big.Int, From f38233263660a96d31b12466ce33268f15f878b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Gr=C3=BCner?= <47506558+MegaRedHand@users.noreply.github.com> Date: Fri, 7 Feb 2025 17:59:55 -0300 Subject: [PATCH 4/4] chore: fix typo in comment --- chainio/clients/avsregistry/writer_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chainio/clients/avsregistry/writer_test.go b/chainio/clients/avsregistry/writer_test.go index 2500ebcf..3306d69f 100644 --- a/chainio/clients/avsregistry/writer_test.go +++ b/chainio/clients/avsregistry/writer_test.go @@ -632,7 +632,7 @@ func TestSetEjectionCooldown(t *testing.T) { require.NoError(t, err) require.Equal(t, receipt.Status, gethtypes.ReceiptStatusSuccessful) - // After change, ejectionCooldown is the setted value + // After change, ejectionCooldown is the value set newCooldown, err := registryCoordinatorContract.EjectionCooldown(&bind.CallOpts{}) require.NoError(t, err) assert.Equal(t, newCooldown, ejectionCooldown)