Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
c9d2045
Add supporting interface
abiiralbhattarai Jun 5, 2024
8e06395
Refactor code
abiiralbhattarai Jun 5, 2024
f223520
Add mock contracts for testing
abiiralbhattarai Jun 5, 2024
cee0737
Update contracts functions and varaibles
abiiralbhattarai Jun 5, 2024
3ff390d
Add System required functions
abiiralbhattarai Jun 5, 2024
3a4df27
Add test for connection and system flow with Eigen layer
abiiralbhattarai Jun 5, 2024
c935609
code refactored
abiiralbhattarai Jun 10, 2024
4861fd0
Refactor code
abiiralbhattarai Jun 10, 2024
2f32460
Merge pull request #9 from abiiralbhattarai/feature/solidity
kailehok Jun 10, 2024
5251f7d
Update structs
abiiralbhattarai Jun 10, 2024
20db393
Update code to run mock
abiiralbhattarai Jun 10, 2024
ff81eb1
Update general code and variables
abiiralbhattarai Jun 10, 2024
be65e6e
Add project setup
abiiralbhattarai Jun 10, 2024
fa64b94
Update tests
abiiralbhattarai Jun 10, 2024
f37683f
Add scripts for deployments and configurations
abiiralbhattarai Jun 10, 2024
d6b241d
Ignore .openzeppelin
abiiralbhattarai Jun 10, 2024
b1f550b
Add request id specific to the agent operator
abiiralbhattarai Jun 10, 2024
59aabcf
Merge branch 'Cedro-Finance:feature/solidity' into feature/solidity
abiiralbhattarai Jun 10, 2024
2f5fdc5
Merge pull request #11 from abiiralbhattarai/feature/solidity
abiiralbhattarai Jun 10, 2024
9f5aa85
Update Reward and allowed list method
abiiralbhattarai Jun 11, 2024
bde7c55
Add pausedStatus method and update request id checks
abiiralbhattarai Jun 11, 2024
b649930
Merge branch 'Cedro-Finance:feature/solidity' into feature/solidity
abiiralbhattarai Jun 11, 2024
ecaa579
Add events
kailehok Jun 12, 2024
9d2ffc6
Add fees as param for different chains
kailehok Jun 12, 2024
1dc91d8
Fix imports for v6
kailehok Jun 12, 2024
959c393
Add fees for enroll agent method
kailehok Jun 12, 2024
8a0fb6d
Update interfaces
kailehok Jun 12, 2024
d754cc6
Merge pull request #12 from abiiralbhattarai/feature/solidity
kailehok Jun 12, 2024
8ba1fbb
Merge pull request #13 from kailehok/feature/solidity
abiiralbhattarai Jun 12, 2024
3480871
Update allow list and Reward methods
abiiralbhattarai Jun 13, 2024
628ecdc
Add Rewards Coordinator Mock
abiiralbhattarai Jun 13, 2024
bb20ce0
Make contracts upgradeable
abiiralbhattarai Jun 13, 2024
6d463fc
Update packages
kailehok Jun 14, 2024
b09d429
Update mocks
kailehok Jun 14, 2024
97abfe8
Update import to latest version
kailehok Jun 14, 2024
820760a
Merge pull request #14 from abiiralbhattarai/feature/solidity
kailehok Jun 14, 2024
44037da
Merge remote-tracking branch 'upstream/feature/solidity' into feature…
kailehok Jun 14, 2024
f9851d1
Update operator registration code
abiiralbhattarai Jun 14, 2024
7dc1753
Update mock for testing
abiiralbhattarai Jun 14, 2024
1a0cd76
Merge pull request #15 from kailehok/feature/solidity
abiiralbhattarai Jun 14, 2024
52f2e19
Merge branch 'Cedro-Finance:feature/solidity' into feature/solidity
abiiralbhattarai Jun 14, 2024
5c8d78b
Add socket as parameter
abiiralbhattarai Jun 20, 2024
853ef53
Update contracts code
abiiralbhattarai Jun 20, 2024
8f99239
Update data type and variables name
abiiralbhattarai Jun 20, 2024
8d7476f
Update code to enable bls key rotation
abiiralbhattarai Jun 27, 2024
167e703
Upgrade contract upgradeability
abiiralbhattarai Jul 4, 2024
8d2b3ca
Integrate bond slashing and optimize code
abiiralbhattarai Jul 4, 2024
629017d
Optimize contracts
abiiralbhattarai Jul 4, 2024
e38ede5
fix: offchain deviation trigger hardcoded to test
rabindraregmi Jul 4, 2024
4ccdf52
Add access specifier to setStaleStakesForbidden
abiiralbhattarai Jul 4, 2024
88b2731
Merge pull request #16 from abiiralbhattarai/feature/solidity
kailehok Jul 4, 2024
55e1e82
Merge branch 'feature/solidity' of github.com:Cedro-Finance/CedroAVS …
rabindraregmi Jul 4, 2024
32c258b
fix: Fix for CU-86epqf3qu
rabindraregmi Jul 5, 2024
edcc7d6
fix: Fix for CU-86epqf3qu in Aggregator
rabindraregmi Jul 5, 2024
7128356
fix: Offchain Trigger issue fixed
rabindraregmi Jul 5, 2024
2e8a0a1
taskprocessor methods added
rabindraregmi Jul 10, 2024
324ff9b
Agent Slash Event Processors added
rabindraregmi Jul 19, 2024
4c67adb
Aggregator tasks common code grouped
rabindraregmi Jul 23, 2024
19dc1ef
fix: Aggregator: Generic Taskprocessor was craeted removing repeated …
rabindraregmi Jul 23, 2024
7dc19da
Unit Testing added for BLS aggregator service
rabindraregmi Jul 25, 2024
924b4e8
AgentPod Client Unit Test added
rabindraregmi Jul 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ node_modules

*.abi
.DS_Store

.openzeppelin/
3 changes: 0 additions & 3 deletions actionOperator/go.mod

This file was deleted.

6 changes: 4 additions & 2 deletions actionOperator/main.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package main

import "fmt"

func main() {

}
fmt.Println("I am here at action operator")
}
9 changes: 9 additions & 0 deletions actionOperator/protocols/common.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package protocols

type IProtocol interface {
PrepareBytes() []byte

GetBytes() []byte
}


159 changes: 159 additions & 0 deletions aggregator/aggregation/aggregator.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
package aggregator

import (
"context"
"math/big"
"os"
"sync"

"github.com/Cedro-Finance/CedroAVS/aggregator/rpc"
"github.com/Cedro-Finance/CedroAVS/aggregator/taskprocessor"
avs "github.com/Cedro-Finance/CedroAVS/core/avsClient"
"github.com/Cedro-Finance/CedroAVS/core/tasks"

// cedroservicemanager "github.com/Cedro-Finance/CedroAVS/core/bindings/CedroServiceManager"
"github.com/Cedro-Finance/CedroAVS/core/config"
"github.com/Cedro-Finance/CedroAVS/core/logger"
"github.com/Layr-Labs/eigensdk-go/chainio/clients/eth"
"github.com/Layr-Labs/eigensdk-go/chainio/clients/wallet"
"github.com/Layr-Labs/eigensdk-go/chainio/txmgr"

// "github.com/Layr-Labs/eigensdk-go/crypto/bls"
sdkEcdsa "github.com/Layr-Labs/eigensdk-go/crypto/ecdsa"
sdklogging "github.com/Layr-Labs/eigensdk-go/logging"
"github.com/Layr-Labs/eigensdk-go/signerv2"
)

type Aggregator struct {
logger sdklogging.Logger
grpcServerIpPortAddr string
gRpc *rpc.GRpcHandler
avsWriter avs.IAvsWriter

taskprocessors map[string]*taskprocessor.TaskProcessor
}

func NewAggregator(cfg *config.Config) (*Aggregator, error) {
var logLevel sdklogging.LogLevel

if cfg.Production {
logLevel = sdklogging.Production
} else {
logLevel = sdklogging.Development
}

logger, err := logger.NewZapLogger(logLevel)

if err != nil {
return nil, err
}

ethRpcClient, err := eth.NewClient(cfg.EthConfig.RpcUrl)

if err != nil {
panic(err)
}

//Operator Key Management

operatorAddress, err := sdkEcdsa.GetAddressFromKeyStoreFile(cfg.KeyStore.Path)

if err != nil {
panic(err)
}

ecdsaKeypassword, ok := os.LookupEnv("OPERATOR_ECDSA_KEY_PASSWORD")

if !ok {
logger.Warnf("OPERATOR_ECDSA_KEY_PASSWORD env var not set")
ecdsaKeypassword = cfg.KeyStore.Password
}

signerConfig := signerv2.Config{
KeystorePath: cfg.KeyStore.Path,
Password: ecdsaKeypassword,
}

signerV2, _, err := signerv2.SignerFromConfig(signerConfig, big.NewInt(17000)) //Chain Id

if err != nil {
panic(err)
}

// privateKey, err := sdkEcdsa.ReadKey(signerConfig.KeystorePath, signerConfig.Password)

// if err != nil {
// return nil, err
// }

txSender, err := wallet.NewPrivateKeyWallet(ethRpcClient, signerV2, operatorAddress, logger)

if err != nil {
return nil, err
}

txMgr := txmgr.NewSimpleTxManager(txSender, ethRpcClient, logger, operatorAddress)

avsWriter, err := avs.NewAvsWriter(cfg, txMgr, ethRpcClient, logger)

if err != nil {
logger.Error("Error while setting avs writer", "err", err)
return nil, err
}

tps := make(map[string]*taskprocessor.TaskProcessor)

for _, tt := range tasks.TaskTypes {
tp, err := taskprocessor.NewTaskProcessorService(tt, cfg, logger, avsWriter)

if err != nil {
panic(err)
}

tps[tt] = tp
}

aggGrpcHandler, err := rpc.NewAggregatorRpcHandler(logger, tps)

if err != nil {
logger.Errorf("Error while creating aggregator service", "err", err)
return nil, err
}

grpc := rpc.NewGRpcHandler(logger, aggGrpcHandler)

return &Aggregator{
logger: logger,
gRpc: grpc,
grpcServerIpPortAddr: cfg.GRpcAggregatorIpAddr,
avsWriter: avsWriter,
taskprocessors: tps,
}, nil
}

func (a *Aggregator) Start(ctx context.Context) error {

var wg *sync.WaitGroup

a.logger.Infof("Aggregator is starting")

wg.Add(1)

go func() {
defer wg.Done()
a.gRpc.Start(ctx, a.grpcServerIpPortAddr)
}()

wg.Add(len(a.taskprocessors))

for _, tp := range a.taskprocessors {
go func(tp *taskprocessor.TaskProcessor) {
defer wg.Done()
tp.Start(ctx)
}(tp)
}

wg.Wait()

return nil
}
33 changes: 33 additions & 0 deletions aggregator/aggregation/aggregator_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package aggregator

import (
"testing"

"github.com/Cedro-Finance/CedroAVS/core/config"
"github.com/Layr-Labs/eigensdk-go/crypto/bls"
"github.com/stretchr/testify/assert"
)



func TestMain(t *testing.T) {

cfg := &config.Config{
BlsPrivateKey: &bls.KeyPair{},
Production: false,
AVS: config.AVSConfig{},
KeyStore: &config.KeyStore{},
GRpcAggregatorIpAddr: "",
Agents: []config.ChainConfig{},
EthConfig: config.EthConfig{},
GraphQLUrl: "",
}

actualAggregator, _ := NewAggregator(cfg)

// assert.Panics(t, func() {
// NewAggregator(cfg)
// })

assert.NotNil(t, actualAggregator.grpcServerIpPortAddr)
}
Loading