Releases: Layr-Labs/eigensdk-go
v0.3.0-rc.1 - Slashing
What's Changed
Added 🎉
-
feat: new BLS aggregation service interface by @maximopalopoli in #578
-
The new interface implies starting the service before using it, interact with it using a handler and receiving the aggregated responses in a separate channel.
-
An example using the interface is:
// initialize service blsAgg := NewBlsAggregatorBuilder(fakeAvsRegistryService, hashFunction, logger) handler, aggResponsesC := blsAgg.Start() // Initialize task metadata := NewTaskMetadata(taskIndex, blockNum, quorumNumbers, quorumThresholdPercentages, tasksTimeToExpiry) err := handler.InitializeNewTask(metadata) // Process signature taskSignature := NewTaskSignature(taskIndex, taskResponse, blsSig, testOperator1.OperatorId) err = handler.ProcessNewSignature( context.Background(), taskSignature, ) // Receive responses aggregationServiceResponse := <-aggResponsesC
-
-
feat: added StakeRegistryStorage functions by @Sidu28 in #555
-
feat: add missing contract addresses on
BuildAllConfig
by @MegaRedHand in #558 -
feat: implement
updateAVSMetadataURI
wrapper by @MegaRedHand in #553 -
feat: add
ServiceManagerBase.createAVSRewardsSubmission
wrapper by @MegaRedHand in #557 -
feat: implement
ServiceManagerBase.getRestakeableStrategies
wrapper by @MegaRedHand in #559 -
feat: implement
ServiceManagerBase.createOperatorDirectedAVSRewardsSubmission
wrapper by @MegaRedHand in #561 -
feat: implement new method
registerOperatorWithChurn
by @damiramirez in #566 -
feat: implement method
ModifyStrategyParams
by @damiramirez in #570 -
feat: implement new method
AddStrategies
by @damiramirez in #568 -
feat: implement
ServiceManagerBase.getOperatorRestakedStrategies
wrapper by @MegaRedHand in #560 -
feate: implement method
RemoveStrategies
by @damiramirez in #569 -
feat: Add RewardsCoordinatorStorage functions by @Sidu28 in #565
Fixes
- Fixed BLS aggregation for multiple quorums by @TomasArrachea in #394
Breaking Changes 🛠
-
refactor: encapsulate parameters into
TaskSignature
in #487-
Introduced
TaskSignature
struct to encapsulate parameters related to task signatures: -
Updated
ProcessNewSignature
to accept aTaskSignature
struct instead of multiple parameters.// BEFORE blsAggServ.ProcessNewSignature( context.Background(), taskIndex, taskResponse, blsSigOp1, testOperator1.OperatorId, ) // AFTER taskSignature := NewTaskSignature(taskIndex, taskResponse, blsSig, testOperator1.OperatorId) blsAggServ.ProcessNewSignature( context.Background(), taskSignature, )
-
-
refactor: update interface on
bls aggregation
in #485.-
Introduces a new struct
TaskMetadata
with a constructorNewTaskMetadata
to initialize a new task and a methodWithWindowDuration
to set the window duration. -
Refactors
InitializeNewTask
andsingleTaskAggregatorGoroutineFunc
to accept aTaskMetadata
struct instead of multiple parameters.// BEFORE blsAggServ := NewBlsAggregatorService(fakeAvsRegistryService, hashFunction, logger) blsAggServ.InitializeNewTask( taskIndex, blockNum, quorumNumbers, quorumThresholdPercentages, tasksTimeToExpiry, ) // AFTER blsAggServ := NewBlsAggregatorService(fakeAvsRegistryService, hashFunction, logger) metadata := NewTaskMetadata(taskIndex, blockNum, quorumNumbers, quorumThresholdPercentages, tasksTimeToExpiry) blsAggServ.InitializeNewTask(metadata)
-
Removes
InitializeNewTaskWithWindow
sincewindowDuration
can now be set inTaskMetadata
.// BEFORE blsAggServ := NewBlsAggregatorService(fakeAvsRegistryService, hashFunction, logger) err = blsAggServ.InitializeNewTaskWithWindow( taskIndex, blockNum, quorumNumbers, quorumThresholdPercentages, timeToExpiry, windowDuration, ) // AFTER blsAggServ := NewBlsAggregatorService(fakeAvsRegistryService, hashFunction, logger) metadata := NewTaskMetadata( taskIndex, blockNum, quorumNumbers, quorumThresholdPercentages, tasksTimeToExpiry, ).WithWindowDuration(windowDuration) blsAggServ.InitializeNewTask(metadata)
-
Removed
- chore: remove duplicated function by @MegaRedHand in #426
Other Changes
- chore(deps): bump github.com/ethereum/go-ethereum from 1.14.0 to 1.15.0 by @dependabot in #543
- chore(deps): bump github.com/ethereum/go-ethereum from 1.14.0 to 1.14.13 in /signer by @dependabot in #490
- feat: make SDK compatible with mainnet contracts by @MegaRedHand in #464
- fix: respect context in new signature call by @MegaRedHand in #502
- chore(deps): bump github.com/urfave/cli/v2 from 2.27.1 to 2.27.5 by @dependabot in #431
- ci: add job to enforce updates to the changelog by @ricomateo in #483
- chore(deps): bump github.com/prometheus/client_golang from 1.19.0 to 1.20.5 by @dependabot in #432
- chore(deps): bump github.com/consensys/gnark-crypto from 0.14.0 to 0.16.0 by @dependabot in #573
- test:
avsregistry
add new tests cases for reader methods by @damiramirez in #458 - fix: change PR url in Changelog workflow by @maximopalopoli in #575
Full Changelog: v0.2.0...v0.3.0-rc.1
v0.2.0 - Rewards v2.1 testnet
Notable changes
-
Added functions related to the rewards v2.1 release:
-
ChainReader.GetOperatorSetSplit
inchainio/clients/elcontracts
operatorSplit, err = chainReader.GetOperatorSetSplit( context.Background(), operatorAddr, operatorSet, )
-
ChainWriter.SetOperatorSetSplit
inchainio/clients/elcontracts
receipt, err = chainWriter.SetOperatorSetSplit( context.Background(), operatorAddr, operatorSet, split, waitForReceipt, )
-
-
Removed deprecated functions:
NewAVSRegistryContractBindings
: useavsregistry.NewBindingsFromConfig
insteadBuildAvsRegistryChainReader
: useavsregistry.NewReaderFromConfig
insteadBuildAvsRegistryChainSubscriber
: useavsregistry.NewSubscriberFromConfig
insteadBuildAvsRegistryChainWriter
: useavsregistry.NewWriterFromConfig
insteadNewEigenlayerContractBindings
: useelcontracts.NewBindingsFromConfig
insteadBuildELChainReader
: useelcontracts.NewReaderFromConfig
instead
-
Removed
RegisterOperatorInQuorumWithAVSRegistryCoordinator
fromavsregistry.ChainWriter
.- Users should use
RegisterOperator
or interact with bindings directly.
- Users should use
-
Removed panics from some functions.
BuildReadClients
,BuildAll
,NewZapLoggerByConfig
, andAvsRegistryServiceChainCaller.GetOperatorsAvsStateAtBlock
return errors instead of panicking. TheOperatorsInfoServiceInMemory
no longer panics (errors are only logged). -
Added documentation to all functions in
chainio/clients/elcontracts
andchainio/clients/avsregistry
. -
Added some functions related to slashing. More incoming in a future release.
What's Changed
- Update go.mod by @anupsv in #411
- feat: slashing by @shrimalmadhur in #342
- fix: generate am from delegation manager by @shrimalmadhur in #425
- test:
elcontracts.ChainWriter
slashing functions by @ricomateo in #427 - test: add admin and appointees test for reader by @damiramirez in #430
- feat: bls signer abstraction by @shrimalmadhur in #403
- InstrumentedClient having rpcCallsCollector as mandatory by @pablodeymo in #378
- Remove outdated TODO by @TomasArrachea in #396
- test:
elcontracts.ChainWriter
claim functions (slashing) by @ricomateo in #436 - test: use read clients builder by @maximopalopoli in #441
- test: add reader test coverage by @maximopalopoli in #429
- fix: change literal string values for constants or predefined values by @maximopalopoli in #442
- test: add more chain reader coverage by @maximopalopoli in #443
- Remove deprecated functions by @pablodeymo in #367
- Compliance test for BLS signature by @pablodeymo in #402
- Avoid panics by @pablodeymo in #389
- Add exponential backoff retries to send transactions by @TomasArrachea in #392
- test and fix
ChainWriter.RegisterForOperatorSets
function by @pablodeymo in #416 - signer module removed, since it's deprecated by @pablodeymo in #366
- feat: add api key to cerberus client by @shrimalmadhur in #449
- feat: socket test by @gpsanant in #450
- test:
chainWriter
add edge case tests to improve coverage by @damiramirez in #451 - test:
chainReader
shares and operatorSets functions by @damiramirez in #437 - test: add test cases where contract returns an error by @maximopalopoli in #446
- test:
chainReader
invalid config tests by @damiramirez in #447 - fix: add attribute nil verifications in chainReader by @maximopalopoli in #448
- test: increase avsRegistry chainWriter coverage by @maximopalopoli in #457
- chore(deps): bump golang.org/x/crypto from 0.22.0 to 0.31.0 by @dependabot in #408
- chore(deps): bump golang.org/x/net from 0.26.0 to 0.33.0 in /signer by @dependabot in #439
- chore: format contracts by @ricomateo in #472
- chore: update bindings by @ricomateo in #476
- test: add invalid config chainWriter tests by @maximopalopoli in #454
- ci: add job to check the bindings are up to date by @ricomateo in #475
- ci: add job to check the contracts are formatted and can be compiled by @ricomateo in #471
- ci: add job to check if anvil state is up to date by @ricomateo in #480
- docs:
avsregistry/reader
by @ricomateo in #495 - docs:
avsregistry/writer
by @ricomateo in #496 - test:
avsregistry
add tests for subscriber by @damiramirez in #456 - docs:
elcontracts/writer
by @ricomateo in #498 - refactor:
elcontracts
error handling by @damiramirez in #463 - refactor: reduce redundancy in avsRegistry writer test by @maximopalopoli in #462
- test: add cancelled context tests for chainReader by @maximopalopoli in #455
- feat: add clear deallocation queue function by @maximopalopoli in #508
- feat: add set rewards initiator function by @maximopalopoli in #510
- feat: update middleware submodule to v1.0.3-testnet-slashing release by @MegaRedHand in #478
- feat: add is operator set quorum function by @maximopalopoli in #513
- feat: add set slashable stake lookahead function by @maximopalopoli in #512
- feat: add eject operator function by @maximopalopoli in #532
- feat: add create slashable stake quorum func by @maximopalopoli in #531
- feat: add create total delegated stake quorum function by @maximopalopoli in #529
- feat: integrate Rewards V2.1 by @Sidu28 in #534
- feat: add set churn approver function by @maximopalopoli in #538
- feat: add set operator set params function by @maximopalopoli in #539
- fix: don't use
example.com
in test by @MegaRedHand in #537 - feat: add set ejector function by @maximopalopoli in #540
- docs: add function documentation for
elcontracts/reader
andavsregistry/subscriber
by @MegaRedHand in #533 - refactor: Remove DeregisterOperatorOperatorSets function by @maximopalopoli in #459
- refactor: Remove deprecated function that registers an operator of avsRegistry writer by @maximopalopoli in #460
- test: improve test for is operator set quorum case by @maximopalopoli in #546
- feat: add set account identifier function by @maximopalopoli in #542
- feat: add set ejection cooldown function by @maximopalopoli in #545
- feat: implement
StakeRegistry
view functions by @Sidu28 in #536
New Contributors
- @anupsv made their first contribution in #411
- @damiramirez made their first contribution in #430
- @maximopalopoli made their first contribution in #441
- @MegaRedHand made their first contribution in #478
Full Changelog: v0.1.14...v0.2.0
v0.1.14
Notable Changes
- Rewards v2 methods for setting and getting operator/avs splits
- Rewards v2 methods for batch claiming
What's Changed
- chore: update to latest dev contracts by @gpabst in #397
- feat: add ProcessClaims convenience method for batch claiming by @gpabst in #399
- feat: methods to set and read operator avs split by @gpabst in #401
- feat: convenience methods to get/set operator PI split by @gpabst in #406
Full Changelog: v0.1.13...v0.1.14
[Holesky] v0.2.0-beta.1
What's Changed
- fix: generate am from delegation manager by @shrimalmadhur in #425
Full Changelog: v0.2.0-beta...v0.2.0-beta.1
[Holesky] v0.2.0-beta
Notable Changes
- Slashing and operator set upgrade
- Tracking eigenlayer middleware - https://github.com/Layr-Labs/eigenlayer-middleware/tree/feat/slashing-release-branch
- Tracking eigenlayer core - https://github.com/Layr-Labs/eigenlayer-contracts/releases/tag/v1.0.2
What's Changed
- chore: update to latest dev contracts by @gpabst in #397
- feat: add ProcessClaims convenience method for batch claiming by @gpabst in #399
- feat: methods to set and read operator avs split by @gpabst in #401
- feat: convenience methods to get/set operator PI split by @gpabst in #406
- Update go.mod by @anupsv in #411
- feat: slashing by @shrimalmadhur in #342
New Contributors
Full Changelog: v0.1.13...v0.2.0-beta
October mainnet
Contracts
This release points to
- EigenLayer Middleware - https://github.com/Layr-Labs/eigenlayer-middleware/releases/tag/v0.4.3-mainnet-rewards
- EigenLayer Core Contracts - https://github.com/Layr-Labs/eigenlayer-contracts/releases/tag/v0.4.3-mainnet-rewards-foundation-incentives
What's Changed
- chore(deps): bump github.com/docker/docker from 25.0.5+incompatible to 25.0.6+incompatible by @dependabot in #346
- add fn for get claimed rewards by @shrimalmadhur in #357
- ci: add merge group to CI by @shrimalmadhur in #370
- Avoid panic in ReadStringFromSecretManager in secretmanager.go by @pablodeymo in #344
- Remove unused code in utils.go by @pablodeymo in #347
- add timeout to metrics server by @shrimalmadhur in #368
- Add compliance tests by @pablodeymo in #339
- Chaging data types to avoid dangerous conversions by @pablodeymo in #348
- Change rand library for a a cryptographically secure random number generator one by @pablodeymo in #349
- Cleaning file path before using it by @pablodeymo in #353
- Remove panic in BuildAll by @pablodeymo in #354
- Change the way exec.Command is called to sanitize parameters by @pablodeymo in #356
- Documentation in NewBlsAggregatorService by @pablodeymo in #358
- Add AvsRegistry tests by @TomasArrachea in #360
- Reduce permissions for file created according to CWE-276 by @pablodeymo in #355
- Add ElContracts Reader tests by @TomasArrachea in #369
- Change the usage of the element in for loop to avoid memory aliasing by @pablodeymo in #352
- Add Egnkey tests by @TomasArrachea in #377
- Add Signer tests by @TomasArrachea in #373
- Remove ReadFile util by @TomasArrachea in #376
- Get operator stake in quorums of operator at current block race condition by @pablodeymo in #371
- chore: clean up elcontracts to take context by @shrimalmadhur in #383
- Add Instrumented Client tests by @pablodeymo in #372
- Add ElContracts Writer tests by @pablodeymo in #361
- Add BLS Aggregation window waiting after quorum by @TomasArrachea in #386
- chore: remove unused methods by @gpabst in #387
- Update to mainnet rewards v0.4.3 by @pablodeymo in #407
New Contributors
- @pablodeymo made their first contribution in #344
Full Changelog: v0.1.12...v0.1.12-mainnet
v0.1.13
What's Changed
- chore(deps): bump github.com/docker/docker from 25.0.5+incompatible to 25.0.6+incompatible by @dependabot in #346
- add fn for get claimed rewards by @shrimalmadhur in #357
- ci: add merge group to CI by @shrimalmadhur in #370
- Avoid panic in ReadStringFromSecretManager in secretmanager.go by @pablodeymo in #344
- Remove unused code in utils.go by @pablodeymo in #347
- add timeout to metrics server by @shrimalmadhur in #368
- Add compliance tests by @pablodeymo in #339
- Chaging data types to avoid dangerous conversions by @pablodeymo in #348
- Change rand library for a a cryptographically secure random number generator one by @pablodeymo in #349
- Cleaning file path before using it by @pablodeymo in #353
- Remove panic in BuildAll by @pablodeymo in #354
- Change the way exec.Command is called to sanitize parameters by @pablodeymo in #356
- Documentation in NewBlsAggregatorService by @pablodeymo in #358
- Add AvsRegistry tests by @TomasArrachea in #360
- Reduce permissions for file created according to CWE-276 by @pablodeymo in #355
- Add ElContracts Reader tests by @TomasArrachea in #369
- Change the usage of the element in for loop to avoid memory aliasing by @pablodeymo in #352
- Add Egnkey tests by @TomasArrachea in #377
- Add Signer tests by @TomasArrachea in #373
- Remove ReadFile util by @TomasArrachea in #376
- Get operator stake in quorums of operator at current block race condition by @pablodeymo in #371
- chore: clean up elcontracts to take context by @shrimalmadhur in #383
- Add Instrumented Client tests by @pablodeymo in #372
- Add ElContracts Writer tests by @pablodeymo in #361
- Add BLS Aggregation window waiting after quorum by @TomasArrachea in #386
New Contributors
- @pablodeymo made their first contribution in #344
Full Changelog: v0.1.12...v0.1.13
v0.1.12
What's Changed
- fix: rpc request duration in seconds by @renlulu in #338
- Prevent Duplicate Signature Processing in BLS Aggregator by @afkbyte in #345
- fix: race condition when querying registered operators data by @ricomateo in #343
New Contributors
- @ricomateo made their first contribution in #343
Full Changelog: v0.1.11...v0.1.12
v0.1.11
What's Changed
- Add read only builder by @juanbono in #326
- feat: modularize bindings generation by @shrimalmadhur in #329
- feat: check quorums registered detail by @renlulu in #331
- refactor: handle zero bitmap by @renlulu in #332
- fest: support start/stop blocks for querying operator info(pubkey and socket) by @renlulu in #334
- chore: test util funcs by @estensen in #336
- feat: add observability to bls aggregation service by @taturosati in #315
- Compliance tests by @TomasArrachea in #337
- feat: add checkclaim method by @shrimalmadhur in #341
New Contributors
- @juanbono made their first contribution in #326
- @taturosati made their first contribution in #315
- @TomasArrachea made their first contribution in #337
Full Changelog: v0.1.10...v0.1.11
v0.1.10
What's Changed
- refactor: remove interfaces of el reader writer by @shrimalmadhur in #301
- chore: mock to fake by @shrimalmadhur in #302
- chore: remove logs mock and deprecate signer by @shrimalmadhur in #303
- fix slog logger constructor nil pointer bug by @samlaf in #296
- Update fireblocks get asset addresses endpoint by @ian-shim in #307
- refactor: eth client and logger by @shrimalmadhur in #304
- Add missing fields in fireblocks AssetAddress struct by @ian-shim in #308
- feat: add eigenpod bindings by @shrimalmadhur in #311
- add charcaters to regex by @shrimalmadhur in #313
- update: eigensdk bindings for operator set by @shrimalmadhur in #305
- feat: add set operator commission bips method by @shrimalmadhur in #318
- bug: fix avs directory init by @shrimalmadhur in #319
- refactor: encrypt bls key to json string by @renlulu in #316
- chore: deprecate earning receiver address by @shrimalmadhur in #320
- Update README.md by @NimaVaziri in #321
- Add gas bumping txmgr by @samlaf in #284
- feat: send txn without waiting for tx receipt by @renlulu in #323
- chore: update middleware to latest operator set by @shrimalmadhur in #327
New Contributors
- @NimaVaziri made their first contribution in #321
Full Changelog: v0.1.9...v0.1.10