Skip to content

Commit

Permalink
Merge branch 'main' into add-fuzz-tests
Browse files Browse the repository at this point in the history
  • Loading branch information
anupsv authored Dec 19, 2024
2 parents 801a84e + 89cfdd7 commit 2413484
Show file tree
Hide file tree
Showing 86 changed files with 4,890 additions and 3,119 deletions.
39 changes: 39 additions & 0 deletions .devnet-alt-da/addresses.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"AddressManager": "0x26a942b414CBc2eBb43F9c4e68DD791B5f61b5c7",
"AnchorStateRegistry": "0x2516DAe378507FD4cbE381e04EB0dFe41308aD3e",
"AnchorStateRegistryProxy": "0x6B73DBbd13FC27bf96b2d508B6C88179D2b4c4ba",
"DataAvailabilityChallenge": "0x18A001ab37Cba856fb8352D46A96069CBA41BFb7",
"DataAvailabilityChallengeProxy": "0xc75824f5666A236720d8409461000371776c4BC3",
"DelayedWETH": "0xec557124625E001dfe2d23ddA4F48A291E8a3e3a",
"DelayedWETHProxy": "0xbff24769250E0b40fD402dcE7AC9Ec7eEb14255E",
"DisputeGameFactory": "0x8a1a5F20ADF3005022049880f799FBBF2a188cfC",
"DisputeGameFactoryProxy": "0xeCb92a686D1ab066fc4E559A305FEB75DD512377",
"FastPreimageOracle": "0xbc1b15C94465d383bB68F345bEba1F3fcD2af44B",
"FaultDisputeGame_0": "0x86a350621ED6d036E2Af9cC68865dEf4B31C13ae",
"FaultDisputeGame_254": "0x9218181FAb774F8DBD245C8a2544069F9A8C2A8a",
"FaultDisputeGame_255": "0x401deDFb8536D84096Dd617689E770cB085ADfb7",
"L1CrossDomainMessenger": "0x2CfFF1c8Df8CE2BA6CBa19699CCBa6F381734938",
"L1CrossDomainMessengerProxy": "0x3d609De69E066F85C38AC274e3EeC251EcfDeAa1",
"L1ERC721Bridge": "0x2AC24b15a2Ded48F4B51e70293589058546a11FE",
"L1ERC721BridgeProxy": "0x961a37bd2eF41Ef68932d6E1FB4113534dcACB9B",
"L1StandardBridge": "0x3857b6c6f162fDA9BD591D4CCDEF8C00093cC357",
"L1StandardBridgeProxy": "0x9D34A2610Ea283f6d9AE29f9Cad82e00c4d38507",
"Mips": "0x9848e4470F89bec8b050eCDf93F69B8660B6046C",
"OPContractsManager": "0xb32a4b81244fEd6A176f295A4787cC9cce687a5e",
"OPContractsManagerProxy": "0x5b66F1D2dC2691F9bcac54Ee8B90a9923701e553",
"OptimismMintableERC20Factory": "0x89c88ED20d4b742185185f77017182247671eE3b",
"OptimismMintableERC20FactoryProxy": "0x623C237952ea6e3cD74740a5B766F2978AEA3b54",
"OptimismPortal2": "0x8237f181A3A8C7f871174e85f499f71f2A0d5B75",
"OptimismPortalProxy": "0xA439B64360C875951478b0Cf77698038df331255",
"PermissionedDelayedWETHProxy": "0x157514fF1F55f8685083D9D83CaE4aD4E186daDa",
"PermissionedDisputeGame": "0xe5b54F119250094761d8fed8d1CF124316B47904",
"PreimageOracle": "0xc043F015EB8cA0b94D4cAde622ed7369ce4ffE4E",
"ProtocolVersions": "0xd85BdcdaE4db1FAEB8eF93331525FE68D7C8B3f0",
"ProtocolVersionsProxy": "0x856e75e9c0Da547F9753c17746D6cc139b668e5c",
"ProxyAdmin": "0xac43F7588b15fA5F2347824F0Ad0ba1BDCa5E72C",
"SuperchainConfig": "0x238213078DbD09f2D15F4c14c02300FA1b2A81BB",
"SuperchainConfigProxy": "0xDc82c0362A241Aa94d53546648EACe48C9773dAa",
"SuperchainProxyAdmin": "0xdaE97900D4B184c5D2012dcdB658c008966466DD",
"SystemConfig": "0xE3dF61CA9F27cd66880325f3C6CB789EDe857997",
"SystemConfigProxy": "0xF493e2ebb09309e2d0046a7aFc88C8eDa3c91560"
}
1 change: 1 addition & 0 deletions .devnet-alt-da/allocs-l1.json

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

36 changes: 0 additions & 36 deletions .devnet/addresses.json

This file was deleted.

1 change: 0 additions & 1 deletion .devnet/allocs-l1.json

This file was deleted.

34 changes: 17 additions & 17 deletions .env.example.holesky
Original file line number Diff line number Diff line change
@@ -1,53 +1,53 @@
# An example holesky testnet configuration

# Hex-encoded signer private key. This key should not be associated with an Ethereum address holding any funds.
EIGENDA_PROXY_SIGNER_PRIVATE_KEY_HEX=
EIGENDA_PROXY_EIGENDA_SIGNER_PRIVATE_KEY_HEX=

# JSON RPC node endpoint for the Ethereum network used for finalizing DA blobs. See available list here: https://docs.eigenlayer.xyz/eigenda/networks/
EIGENDA_PROXY_ETH_RPC=https://ethereum-holesky-rpc.publicnode.com
EIGENDA_PROXY_EIGENDA_ETH_RPC=https://ethereum-holesky-rpc.publicnode.com

# RPC host of the EigenDA disperser service (e.g., on Holesky this is `disperser-holesky.eigenda.xyz:443`). Full network list available in the documentation.
EIGENDA_PROXY_EIGENDA_DISPERSER_RPC=disperser-holesky.eigenda.xyz:443

# The deployed EigenDA service manager address. The list can be found here: https://github.com/Layr-Labs/eigenlayer-middleware/?tab=readme-ov-file#current-mainnet-deployment
EIGENDA_PROXY_SERVICE_MANAGER_ADDR=0xD4A7E1Bd8015057293f0D0A557088c286942e84b
EIGENDA_PROXY_EIGENDA_SERVICE_MANAGER_ADDR=0xD4A7E1Bd8015057293f0D0A557088c286942e84b

# Custom quorum IDs for writing blobs. Should not include default quorums 0 or 1.
# EIGENDA_PROXY_CUSTOM_QUORUM_IDS=
# EIGENDA_PROXY_EIGENDA_CUSTOM_QUORUM_IDS=

# Directory path to SRS tables
# EIGENDA_PROXY_TARGET_CACHE_PATH=resources/SRSTables
# EIGENDA_PROXY_EIGENDA_TARGET_CACHE_PATH=resources/SRSTables

# The number of Ethereum blocks of confirmation that the DA briging transaction must have before it is assumed by the proxy to be final. The value of `0` indicates that the proxy shouldn't wait for any confirmations
# and 0 indicates that the proxy should wait for finalization.
# EIGENDA_PROXY_ETH_CONFIRMATION_DEPTH=6
# EIGENDA_PROXY_EIGENDA_ETH_CONFIRMATION_DEPTH=6

# Directory path to g1.point file
# EIGENDA_PROXY_TARGET_KZG_G1_PATH=resources/g1.point
# EIGENDA_PROXY_EIGENDA_TARGET_KZG_G1_PATH=resources/g1.point

# Directory path to g2.point.powerOf2 file
# EIGENDA_PROXY_TARGET_G2_TAU_PATH=resources/g2.point.powerOf2
# EIGENDA_PROXY_EIGENDA_TARGET_KZG_G2_POWER_OF_2_PATH=resources/g2.point.powerOf2

# Disable point verification mode. This mode performs IFFT on data before writing and FFT on data after reading. Disabling requires supplying the entire blob for verification against the KZG commitment.
# EIGENDA_PROXY_DISABLE_POINT_VERIFICATION_MODE=false
# EIGENDA_PROXY_EIGENDA_DISABLE_POINT_VERIFICATION_MODE=false

# Disable TLS for gRPC communication with the EigenDA disperser
# EIGENDA_PROXY_GRPC_DISABLE_TLS=false
# EIGENDA_PROXY_EIGENDA_GRPC_DISABLE_TLS=false

# Maximum blob length to be written or read from EigenDA. Determines the number of SRS points loaded into memory for KZG commitments. Example units: '30MiB', '4Kb', '30MB'. Maximum size slightly exceeds 1GB.
# EIGENDA_PROXY_MAX_BLOB_LENGTH=16MiB
# EIGENDA_PROXY_EIGENDA_MAX_BLOB_LENGTH=16MiB

# Blob encoding version to use when writing blobs from the high-level interface
# EIGENDA_PROXY_PUT_BLOB_ENCODING_VERSION=0

# Total time to wait for a response from the EigenDA disperser
# EIGENDA_PROXY_RESPONSE_TIMEOUT=10s
# EIGENDA_PROXY_EIGENDA_PUT_BLOB_ENCODING_VERSION=0

# Interval between retries when awaiting network blob finalization
# EIGENDA_PROXY_STATUS_QUERY_INTERVAL=5s
# EIGENDA_PROXY_EIGENDA_STATUS_QUERY_INTERVAL=5s

# Total time to wait for a response from the EigenDA disperser
# EIGENDA_PROXY_EIGENDA_RESPONSE_TIMEOUT=10s

# Duration to wait for a blob to finalize after being sent for dispersal
# EIGENDA_PROXY_STATUS_QUERY_TIMEOUT=45m0s
# EIGENDA_PROXY_EIGENDA_STATUS_QUERY_TIMEOUT=45m0s

# Color the log output if in terminal mode
# EIGENDA_PROXY_LOG_COLOR=false
Expand Down
30 changes: 15 additions & 15 deletions .env.example.mainnet
Original file line number Diff line number Diff line change
@@ -1,52 +1,52 @@
# An example mainnet configuration

# Hex-encoded signer private key. This key should not be associated with an Ethereum address holding any funds.
EIGENDA_PROXY_SIGNER_PRIVATE_KEY_HEX=
EIGENDA_PROXY_EIGENDA_SIGNER_PRIVATE_KEY_HEX=

# JSON RPC node endpoint for the Ethereum network used for finalizing DA blobs. See available list here: https://docs.eigenlayer.xyz/eigenda/networks/
EIGENDA_PROXY_ETH_RPC=
EIGENDA_PROXY_EIGENDA_ETH_RPC=

# RPC host of the EigenDA disperser service (e.g., on Holesky this is `disperser-holesky.eigenda.xyz:443`). Full network list available in the documentation.
EIGENDA_PROXY_EIGENDA_DISPERSER_RPC=disperser.eigenda.xyz:443

# The deployed EigenDA service manager address. The list can be found here: https://github.com/Layr-Labs/eigenlayer-middleware/?tab=readme-ov-file#current-mainnet-deployment
EIGENDA_PROXY_SERVICE_MANAGER_ADDR=0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0
EIGENDA_PROXY_EIGENDA_SERVICE_MANAGER_ADDR=0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0

# Custom quorum IDs for writing blobs. Should not include default quorums 0 or 1.
# EIGENDA_PROXY_CUSTOM_QUORUM_IDS=
# EIGENDA_PROXY_EIGENDA_CUSTOM_QUORUM_IDS=

# Directory path to SRS tables
# EIGENDA_PROXY_TARGET_CACHE_PATH=resources/SRSTables
# EIGENDA_PROXY_EIGENDA_TARGET_CACHE_PATH=resources/SRSTables

# The number of Ethereum blocks of confirmation that the DA briging transaction must have before it is assumed by the proxy to be final. The value of `0` indicates that the proxy shouldn't wait for any confirmations.
# EIGENDA_PROXY_ETH_CONFIRMATION_DEPTH=6
# EIGENDA_PROXY_EIGENDA_ETH_CONFIRMATION_DEPTH=6

# Directory path to g1.point file
# EIGENDA_PROXY_TARGET_KZG_G1_PATH=resources/g1.point
# EIGENDA_PROXY_EIGENDA_TARGET_KZG_G1_PATH=resources/g1.point

# Directory path to g2.point.powerOf2 file
# EIGENDA_PROXY_TARGET_G2_TAU_PATH=resources/g2.point.powerOf2
# EIGENDA_PROXY_EIGENDA_TARGET_KZG_G2_POWER_OF_2_PATH=resources/g2.point.powerOf2

# Disable point verification mode. This mode performs IFFT on data before writing and FFT on data after reading. Disabling requires supplying the entire blob for verification against the KZG commitment.
# EIGENDA_PROXY_DISABLE_POINT_VERIFICATION_MODE=false
# EIGENDA_PROXY_EIGENDA_DISABLE_POINT_VERIFICATION_MODE=false

# Disable TLS for gRPC communication with the EigenDA disperser
# EIGENDA_PROXY_GRPC_DISABLE_TLS=false
# EIGENDA_PROXY_EIGENDA_GRPC_DISABLE_TLS=false

# Maximum blob length to be written or read from EigenDA. Determines the number of SRS points loaded into memory for KZG commitments. Example units: '30MiB', '4Kb', '30MB'. Maximum size slightly exceeds 1GB.
# EIGENDA_PROXY_MAX_BLOB_LENGTH=16MiB
# EIGENDA_PROXY_EIGENDA_MAX_BLOB_LENGTH=16MiB

# Blob encoding version to use when writing blobs from the high-level interface
# EIGENDA_PROXY_PUT_BLOB_ENCODING_VERSION=0
# EIGENDA_PROXY_EIGENDA_PUT_BLOB_ENCODING_VERSION=0

# Total time to wait for a response from the EigenDA disperser
# EIGENDA_PROXY_RESPONSE_TIMEOUT=10s
# EIGENDA_PROXY_EIGENDA_RESPONSE_TIMEOUT=10s

# Interval between retries when awaiting network blob finalization
# EIGENDA_PROXY_STATUS_QUERY_INTERVAL=5s
# EIGENDA_PROXY_EIGENDA_STATUS_QUERY_INTERVAL=5s

# Duration to wait for a blob to finalize after being sent for dispersal
# EIGENDA_PROXY_STATUS_QUERY_TIMEOUT=30m0s
# EIGENDA_PROXY_EIGENDA_STATUS_QUERY_TIMEOUT=30m0s

# Color the log output if in terminal mode
# EIGENDA_PROXY_LOG_COLOR=false
Expand Down
33 changes: 33 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
version: 2
updates:

- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "daily"
time: "08:00"
timezone: "America/Los_Angeles"
target-branch: "main"
commit-message:
prefix: "[golang-version]"
include: "scope"
pull-request-branch-name:
separator: "-"
open-pull-requests-limit: 8
reviewers:
- "Layr-Labs/eigenda-intg" # https://github.com/orgs/Layr-Labs/teams/eigenda-intg
labels:
- "version"
- "golang"
allow:
- dependency-type: "direct"
groups:
# Creates one consolidated PR for all minor/patch updates to reduce PR noise
# Major version updates (e.g., 1.x.x -> 2.x.x) are excluded since they might contain breaking changes and should be reviewed separately.
golang-version-updates:
applies-to: version-updates
patterns:
- "*"
update-types:
- "minor"
- "patch"
35 changes: 32 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,44 @@ on:
branches: [ "main" ]

jobs:
build:
binary:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.21
go-version: 1.22

- name: Build App
run: make eigenda-proxy
run: make eigenda-proxy

docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Build container
uses: docker/build-push-action@v5
with:
push: false
context: .
tags: eigenda-proxy

- name: Run container as background process
shell: bash
run: |
docker run -d \
-p 6666:6666 \
-e EIGENDA_PROXY_ADDR=0.0.0.0 \
-e EIGENDA_PROXY_PORT=6666 \
-e EIGENDA_PROXY_MEMSTORE_ENABLED=true \
-e EIGENDA_PROXY_EIGENDA_CERT_VERIFICATION_DISABLED=true \
eigenda-proxy
- name: Wait for rpc to come up
shell: bash
run: |
${{ github.workspace }}/scripts/wait-for.sh
2 changes: 1 addition & 1 deletion .github/workflows/holesky-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.21
go-version: 1.22

- name: Install project dependencies
run: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ jobs:
steps:
- uses: actions/setup-go@v3
with:
go-version: '1.21' # The Go version to download (if necessary) and use.
go-version: '1.22' # The Go version to download (if necessary) and use.
- run: go version

- name: Checkout EigenDA
- name: Checkout code
uses: actions/checkout@v3

- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
version: v1.60
version: v1.61
args: --timeout 3m
2 changes: 1 addition & 1 deletion .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.21
go-version: 1.22

- name: Install project dependencies
run: |
Expand Down
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@ go.work

## kzg cache
resources/SRSTables/

## Vscode
/.vscode

## Idea
.idea
14 changes: 14 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"go.testEnvVars": {
// Only one of INTEGRATION or TESTNET should be true.
"INTEGRATION": "true",
"TESTNET": "false",
// To test against TESTNET, set SIGNER_PRIVATE_KEY and ETHEREUM_RPC.
"SIGNER_PRIVATE_KEY": "",
"ETHEREUM_RPC": "https://ethereum-holesky-rpc.publicnode.com"
},
"go.testFlags": [
"-test.parallel",
"4",
]
}
5 changes: 3 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# multi container builds ftw

FROM golang:1.21.10-alpine3.19 AS builder
FROM golang:1.22.8-alpine3.19 AS builder

RUN apk add --no-cache make gcc musl-dev linux-headers jq bash git

Expand All @@ -9,6 +9,7 @@ WORKDIR /app

# Copy go.mod and go.sum files
COPY go.mod go.sum ./
COPY client/go.mod ./client/

# Download all dependencies. Dependencies will be cached if the go.mod and go.sum files are not changed
RUN go mod download
Expand All @@ -32,4 +33,4 @@ COPY --from=builder /app/resources/ /app/resources/
EXPOSE 4242 7300

# Run app
ENTRYPOINT ["./eigenda-proxy"]
ENTRYPOINT ["./eigenda-proxy"]
1 change: 1 addition & 0 deletions Dockerfile.dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

# Re-include necessary files only
!go.mod
!client/go.mod
!go.sum
!*/**/*.go
!Makefile
Expand Down
Loading

0 comments on commit 2413484

Please sign in to comment.