Skip to content

Commit

Permalink
feat: aggkit repo migration (#253)
Browse files Browse the repository at this point in the history
* feat: remove `aggoracle` component (#251)

* remove aggoracle component

* improve Rust build perf and cleanup

* handle error when unmarashaling versions.json

* feat: remove `aggsender` component (#252)

* remove aggsender component

* fix: remove build-tools

* fix: improve JSON parsing by cleaning up version strings

* feat: mockery generate (#255)

* mockery generate

* Update .mockery.yaml

Co-authored-by: Stefan Negovanović <93934272+Stefan-Ethernal@users.noreply.github.com>

* review comments

* review comment

---------

Co-authored-by: Stefan Negovanović <93934272+Stefan-Ethernal@users.noreply.github.com>

* rebase fix

* feat: remove syncers and import the aggkit (#256)

* feat: remove `aggoracle` component (#251)

* remove aggoracle component

* improve Rust build perf and cleanup

* handle error when unmarashaling versions.json

* feat: remove `aggsender` component (#252)

* remove aggsender component

* fix: remove build-tools

* feat: mockery generate (#255)

* mockery generate

* Update .mockery.yaml

Co-authored-by: Stefan Negovanović <93934272+Stefan-Ethernal@users.noreply.github.com>

* review comments

* review comment

---------

Co-authored-by: Stefan Negovanović <93934272+Stefan-Ethernal@users.noreply.github.com>

* wip

* feat: fix BuildVersions during cargo build (#258)

* fix DAC imports

* remove unused code

* chore: remove empty docker-compose.yml

* fix build.rs

* remove hex package

* remove log package

* remove db package

* go mod tidy and fix in the proof

* chore: remove redundant file

* feat: remove bridge service (feat. claim sponsor, bridgesync, reorg detector l2 and corresponding config params)

* chore: format and fix docs

* chore: move bats e2e tests from fep folder

* fix: path for batch_verification_monitor script

---------

Co-authored-by: Stefan Negovanović <93934272+Stefan-Ethernal@users.noreply.github.com>
Co-authored-by: Arpit Temani <temaniarpit27@gmail.com>
Co-authored-by: Toni Ramírez <58293609+ToniRamirezM@users.noreply.github.com>
Co-authored-by: Stefan Negovanović <stefan@ethernal.tech>

---------

Co-authored-by: Arpit Temani <temaniarpit27@gmail.com>
Co-authored-by: Rachit Sonthalia <54906134+rachit77@users.noreply.github.com>
Co-authored-by: Toni Ramírez <58293609+ToniRamirezM@users.noreply.github.com>
  • Loading branch information
4 people authored Feb 18, 2025
1 parent 8a0eac0 commit 15f95ce
Show file tree
Hide file tree
Showing 280 changed files with 1,350 additions and 35,138 deletions.
75 changes: 0 additions & 75 deletions .github/workflows/test-e2e-multi_pp.yml

This file was deleted.

1 change: 0 additions & 1 deletion .github/workflows/test-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ jobs:
- "fork11-rollup"
- "fork12-validium"
- "fork12-rollup"
- "fork12-pessimistic"
steps:
- name: Checkout Code
uses: actions/checkout@v4
Expand Down
75 changes: 75 additions & 0 deletions .mockery.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
with-expecter: true
issue-845-fix: true
resolve-type-alias: false
dir: "{{ .InterfaceDir }}/../mocks"
outpkg: "mocks"
filename: "mock_{{ .InterfaceName | snakecase | lower }}.go"
mockname: "{{ .InterfaceName }}"
packages:
github.com/0xPolygon/cdk/agglayer:
config:
inpackage: true
dir: "{{ .InterfaceDir }}"
outpkg: "{{ .PackageName }}"
interfaces:
AgglayerClientInterface:
config:
mockname: AgglayerClientMock
github.com/0xPolygonHermez/zkevm-synchronizer-l1/synchronizer:
config:
interfaces:
Synchronizer:
config:
dir: "./aggregator/mocks"
mockname: "{{ .InterfaceName }}InterfaceMock"
github.com/0xPolygon/cdk/aggregator:
config:
dir: "{{ .InterfaceDir }}/mocks"
mockname: "{{ .InterfaceName }}Mock"
interfaces:
ProverInterface:
Etherman:
StorageInterface:
EthTxManagerClient:
RPCInterface:
github.com/0xPolygon/cdk/aggregator/prover:
config:
dir: "{{ .InterfaceDir }}/mocks"
interfaces:
AggregatorService_ChannelServer:
config:
mockname: ChannelMock
github.com/0xPolygon/cdk/dataavailability:
config:
dir: "{{ .InterfaceDir }}/mocks_da"
all: true
outpkg: "mocks_da"
github.com/0xPolygon/cdk/sequencesender:
config:
dir: "{{ .InterfaceDir }}/mocks"
outpkg: "mocks"
mockname: "{{ .InterfaceName }}Mock"
interfaces:
EthTxManager:
configs:
- mockname: EthTxManagerMock
- mockname: EthTxManagerMock
dir: "{{ .InterfaceDir }}/../test/helpers"
outpkg: "helpers"
Etherman:
RPCInterface:
github.com/0xPolygon/cdk/sequencesender/txbuilder:
config:
dir: "{{ .InterfaceDir }}/mocks_txbuilder"
all: true
outpkg: "mocks_txbuilder"
mockname: "{{ .InterfaceName | camelcase | firstUpper }}"
interfaces:
TxBuilder:
configs:
- dir: "{{ .InterfaceDir }}/../mocks"
outpkg: "mocks"
mockname: "{{ .InterfaceName | camelcase | firstUpper }}Mock"
- dir: "{{ .InterfaceDir }}/mocks_txbuilder"
outpkg: "mocks_txbuilder"
mockname: "{{ .InterfaceName | camelcase | firstUpper }}"
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ RUN go mod download

# BUILD BINARY
COPY . .
RUN make build-go build-tools
RUN make build-go

# BUILD RUST BIN
FROM --platform=${BUILDPLATFORM} rust:slim-bookworm AS chef
Expand Down
14 changes: 5 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@ check-docker:
check-docker-compose:
@which docker-compose > /dev/null || (echo "Error: docker-compose is not installed" && exit 1)

# Check for Protoc
# Check for protoc
.PHONY: check-protoc
check-protoc:
@which protoc > /dev/null || (echo "Error: Protoc is not installed" && exit 1)
@which protoc > /dev/null || (echo "Error: protoc is not installed" && exit 1)

# Check for Curl
# Check for curl
.PHONY: check-curl
check-curl:
@which curl > /dev/null || (echo "Error: curl is not installed" && exit 1)
Expand All @@ -56,20 +56,16 @@ install-linter: check-go check-curl
generate-code-from-proto: check-protoc

.PHONY: build
build: build-rust build-go build-tools## Builds the binaries locally into ./target
build: build-rust build-go ## Builds the binaries locally into ./target

.PHONY: build-rust
build-rust:
export BUILD_SCRIPT_DISABLED=1 && cargo build --release
BUILD_SCRIPT_DISABLED=1 cargo build --release --jobs=$(shell nproc)

.PHONY: build-go
build-go:
$(GOENVVARS) go build -ldflags "all=$(LDFLAGS)" -o $(GOBIN)/$(GOBINARY) $(GOCMD)

.PHONY: build-tools
build-tools: ## Builds the tools
$(GOENVVARS) go build -o $(GOBIN)/aggsender_find_imported_bridge ./tools/aggsender_find_imported_bridge

.PHONY: build-docker
build-docker: ## Builds a docker image with the cdk binary
docker build -t cdk -f ./Dockerfile .
Expand Down
91 changes: 0 additions & 91 deletions agglayer/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,10 @@ var (
jSONRPCCall = rpc.JSONRPCCall
)

type AggLayerClientGetEpochConfiguration interface {
GetEpochConfiguration() (*ClockConfiguration, error)
}

// AgglayerClientInterface is the interface that defines the methods that the AggLayerClient will implement
type AgglayerClientInterface interface {
SendTx(signedTx SignedTx) (common.Hash, error)
WaitTxToBeMined(hash common.Hash, ctx context.Context) error
SendCertificate(certificate *SignedCertificate) (common.Hash, error)
GetCertificateHeader(certificateHash common.Hash) (*CertificateHeader, error)
GetLatestKnownCertificateHeader(networkID uint32) (*CertificateHeader, error)
AggLayerClientGetEpochConfiguration
}

// AggLayerClient is the client that will be used to interact with the AggLayer
Expand Down Expand Up @@ -97,86 +89,3 @@ func (c *AggLayerClient) WaitTxToBeMined(hash common.Hash, ctx context.Context)
}
}
}

// SendCertificate sends a certificate to the AggLayer
func (c *AggLayerClient) SendCertificate(certificate *SignedCertificate) (common.Hash, error) {
certificateToSend := certificate.CopyWithDefaulting()

response, err := rpc.JSONRPCCall(c.url, "interop_sendCertificate", certificateToSend)
if err != nil {
return common.Hash{}, err
}

if response.Error != nil {
return common.Hash{}, fmt.Errorf("%d %s", response.Error.Code, response.Error.Message)
}

var result types.ArgHash
err = json.Unmarshal(response.Result, &result)
if err != nil {
return common.Hash{}, err
}

return result.Hash(), nil
}

// GetCertificateHeader returns the certificate header associated to the hash
func (c *AggLayerClient) GetCertificateHeader(certificateHash common.Hash) (*CertificateHeader, error) {
response, err := rpc.JSONRPCCall(c.url, "interop_getCertificateHeader", certificateHash)
if err != nil {
return nil, err
}

if response.Error != nil {
return nil, fmt.Errorf("%d %s", response.Error.Code, response.Error.Message)
}

var result *CertificateHeader
err = json.Unmarshal(response.Result, &result)
if err != nil {
return nil, err
}

return result, nil
}

// GetEpochConfiguration returns the clock configuration of AggLayer
func (c *AggLayerClient) GetEpochConfiguration() (*ClockConfiguration, error) {
response, err := jSONRPCCall(c.url, "interop_getEpochConfiguration")
if err != nil {
return nil, err
}

if response.Error != nil {
return nil, fmt.Errorf("GetEpochConfiguration code=%d msg=%s", response.Error.Code, response.Error.Message)
}

var result *ClockConfiguration
err = json.Unmarshal(response.Result, &result)
if err != nil {
return nil, err
}

return result, nil
}

// GetLatestKnownCertificateHeader returns the last certificate header submitted by networkID
func (c *AggLayerClient) GetLatestKnownCertificateHeader(networkID uint32) (*CertificateHeader, error) {
response, err := jSONRPCCall(c.url, "interop_getLatestKnownCertificateHeader", networkID)
if err != nil {
return nil, fmt.Errorf("GetLatestKnownCertificateHeader error jSONRPCCall. Err: %w", err)
}

if response.Error != nil {
return nil, fmt.Errorf("GetLatestKnownCertificateHeader rpc returns an error: code=%d msg=%s",
response.Error.Code, response.Error.Message)
}

var result *CertificateHeader
err = json.Unmarshal(response.Result, &result)
if err != nil {
return nil, fmt.Errorf("GetLatestKnownCertificateHeader error Unmashal. Err: %w", err)
}

return result, nil
}
Loading

0 comments on commit 15f95ce

Please sign in to comment.