diff --git a/.github/workflows/eventindexer.yml b/.github/workflows/eventindexer.yml index 778faa42143..6158d07fdb2 100644 --- a/.github/workflows/eventindexer.yml +++ b/.github/workflows/eventindexer.yml @@ -55,7 +55,7 @@ jobs: run: go test `go list ./... | grep -v ./contracts | grep -v ./mock | grep -v ./cmd` -coverprofile=coverage.txt -covermode=atomic - name: eventindexer - Upload coverage to Codecov - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v5 with: files: ./packages/eventindexer/coverage.txt flags: eventindexer diff --git a/.github/workflows/guardian-prover-health-check.yml b/.github/workflows/guardian-prover-health-check.yml index ff6b6f45ba9..7bd6a886357 100644 --- a/.github/workflows/guardian-prover-health-check.yml +++ b/.github/workflows/guardian-prover-health-check.yml @@ -51,7 +51,7 @@ jobs: run: go test `go list ./... | grep -v ./contracts | grep -v ./mock | grep -v ./cmd` -coverprofile=coverage.txt -covermode=atomic - name: guardian-prover-health-check - Upload coverage to Codecov - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v5 with: files: ./packages/guardian-prover-health-check/coverage.txt flags: guardian-prover-health-check diff --git a/.github/workflows/protocol-monitors.yml b/.github/workflows/protocol-monitors.yml index ad640962afe..00c96440f94 100644 --- a/.github/workflows/protocol-monitors.yml +++ b/.github/workflows/protocol-monitors.yml @@ -5,6 +5,7 @@ on: types: [opened, synchronize, reopened, ready_for_review] paths: - "packages/monitors/**" + - "!packages/monitors/**/*.md" branches-ignore: - release-please--branches--** diff --git a/.github/workflows/relayer.yml b/.github/workflows/relayer.yml index 81238a9a8c1..9c0fe4d683a 100644 --- a/.github/workflows/relayer.yml +++ b/.github/workflows/relayer.yml @@ -55,7 +55,7 @@ jobs: run: go test `go list ./... | grep -v ./contracts | grep -v ./mock | grep -v ./cmd` -coverprofile=coverage.txt -covermode=atomic - name: relayer - Upload coverage to Codecov - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v5 with: files: ./packages/relayer/coverage.txt flags: relayer diff --git a/.github/workflows/repo--check-links.yml b/.github/workflows/repo--check-links.yml new file mode 100644 index 00000000000..44be99f6d9a --- /dev/null +++ b/.github/workflows/repo--check-links.yml @@ -0,0 +1,20 @@ +name: Check links + +on: + push: + paths: + - "**/README.md" + - docs/** + +jobs: + check-links: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Check links + uses: lycheeverse/lychee-action@v2 + with: + args: --no-progress --verbose "**/README.md" diff --git a/.github/workflows/taiko-client--test.yml b/.github/workflows/taiko-client--test.yml index 0df43a2b887..f83ff6ed172 100644 --- a/.github/workflows/taiko-client--test.yml +++ b/.github/workflows/taiko-client--test.yml @@ -7,6 +7,7 @@ on: - "packages/taiko-client/**" - "go.mod" - "go.sum" + - "!**/*.md" branches-ignore: - release-please--branches--** @@ -68,6 +69,6 @@ jobs: run: make test - name: Codecov.io - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v5 with: files: packages/taiko-client/coverage.out diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 462e52e6c57..f175c355e98 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,15 +1,15 @@ { - "packages/bridge-ui": "2.12.0", - "packages/docs-site": "1.20.3", + "packages/bridge-ui": "2.13.0", + "packages/docs-site": "1.21.0", "packages/eventindexer": "0.13.0", "packages/fork-diff": "0.6.1", "packages/guardian-prover-health-check": "0.1.0", "packages/guardian-prover-health-check-ui": "0.2.0", - "packages/protocol": "1.10.0", + "packages/protocol": "1.11.0", "packages/relayer": "0.12.0", "packages/snaefell-ui": "1.1.0", "packages/supplementary-contracts": "1.0.0", - "packages/taiko-client": "0.39.2", + "packages/taiko-client": "0.40.0", "packages/taikoon-ui": "1.3.0", "packages/ui-lib": "1.0.0" } diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..876c140821d --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023–present Taiko Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 8ccef57ef1d..00000000000 --- a/LICENSE.md +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright 2023 Taiko Labs - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 22b5ba5f8c8..8ba1fea61f9 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@

- Taiko + Taiko Alethia

- A based rollup. + The first based rollup.

@@ -17,38 +17,43 @@ [![YouTube](https://img.shields.io/youtube/channel/subscribers/UCxd_ARE9LtAEdnRQA6g1TaQ)](https://www.youtube.com/@taikoxyz) [![GitPOAP Badge](https://public-api.gitpoap.io/v1/repo/taikoxyz/taiko-mono/badge)](https://www.gitpoap.io/gh/taikoxyz/taiko-mono) -[![License](https://img.shields.io/github/license/taikoxyz/taiko-mono)](https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE.md) +[![License](https://img.shields.io/github/license/taikoxyz/taiko-mono)](https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE)
## Documentation -Get started with Taiko: +Get started with Taiko Alethia: -- [Taiko docs](https://docs.taiko.xyz) — High-level concepts, guides, resources, and reference pages for getting started. -- [Protocol specs](./packages/protocol/docs/README.md) — In-depth specifications of the Taiko protocol for deeper understanding. -- [Smart contracts](./packages/protocol/contracts/) — Taiko protocol smart contracts, fully documented with NatSpec. +- [Taiko Alethia docs](https://docs.taiko.xyz) — High-level concepts, guides, resources, and reference pages for getting started. +- [Protocol specs](./packages/protocol/docs/README.md) — In-depth specifications of the Taiko Alethia protocol for deeper understanding. +- [Smart contracts](./packages/protocol/contracts/) — Taiko Alethia protocol smart contracts, fully documented with NatSpec. ## Packages > [!TIP] -> Make sure your node is using the latest version tags for taiko-client and taiko-geth. Check out the [node releases page](https://docs.taiko.xyz/network-reference/node-releases)! - -| Package | Description | Release notes | -| :---------------------------------------------------------------------------- | :------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [bridge-ui](./packages/bridge-ui) | Bridge UI. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=bridge-ui*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/bridge-ui/CHANGELOG.md) | -| [docs-site](./packages/docs-site) | End user documentation site. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=docs-site*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/docs-site/CHANGELOG.md) | -| [eventindexer](./packages/eventindexer) | Event indexer. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=eventindexer*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/eventindexer/CHANGELOG.md) | -| [fork-diff](./packages/fork-diff) | Fork diff page. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=fork-diff*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/fork-diff/CHANGELOG.md) | -| [guardian-prover-health-check](./packages/guardian-prover-health-check) | Guardian prover health check service. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=guardian-prover-health-check*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/guardian-prover-health-check/CHANGELOG.md) | -| [guardian-prover-health-check-ui](./packages/guardian-prover-health-check-ui) | Guardian prover health check UI. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=guardian-prover-health-check-ui*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/guardian-prover-health-check-ui/CHANGELOG.md) | -| [protocol](./packages/protocol) | Taiko protocol smart contracts. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=protocol*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/protocol/CHANGELOG.md) | -| [relayer](./packages/relayer) | Bridge backend relayer. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=relayer*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/relayer/CHANGELOG.md) | -| [snaefell-ui](./packages/snaefell-ui) | Snaefell UI. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=snaefell-ui*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/snaefell-ui/CHANGELOG.md) | -| [supplementary-contracts](./packages/supplementary-contracts) | Supplementary contracts not part of the Taiko protocol. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=supplementary-contracts*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/supplementary-contracts/CHANGELOG.md) | -| [taiko-client](./packages/taiko-client) | Taiko client implementation in Go. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=taiko-client*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/taiko-client/CHANGELOG.md) | -| [taikoon-ui](./packages/taikoon-ui) | Taikoon UI. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=taikoon-ui*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/taikoon-ui/CHANGELOG.md) | -| [ui-lib](./packages/ui-lib) | UI library. | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=ui-lib*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/ui-lib/CHANGELOG.md) | +> Make sure your node is using the latest version tags for taiko-client and taiko-geth. Check out the [node releases page](https://docs.taiko.xyz/network-reference/software-releases-and-deployments)! + +| Package | Description | +| :---------------------------------------------------------------------------- | :----------------------------------------------------------------- | +| [balance-monitor](./packages/balance-monitor) | Service that monitors Ethereum L1/L2 addresses and token balances. | +| [blobstorage](./packages/blobstorage) | Service for storing and retrieving blob data. | +| [bridge-ui](./packages/bridge-ui) | Bridge UI. | +| [docs-site](./packages/docs-site) | End user documentation site. | +| [eventindexer](./packages/eventindexer) | Event indexer. | +| [fork-diff](./packages/fork-diff) | Fork diff page. | +| [geth-rpc-gateway](./packages/geth-rpc-gateway) | RPC gateway for geth nodes. | +| [guardian-prover-health-check](./packages/guardian-prover-health-check) | Guardian prover health check service. | +| [guardian-prover-health-check-ui](./packages/guardian-prover-health-check-ui) | Guardian prover health check UI. | +| [monitors](./packages/monitors) | Monitoring and alerting services. | +| [nfts](./packages/nfts) | NFT-related smart contracts and utilities. | +| [protocol](./packages/protocol) | Taiko Alethia protocol smart contracts. | +| [relayer](./packages/relayer) | Bridge backend relayer. | +| [snaefell-ui](./packages/snaefell-ui) | Snaefell UI. | +| [supplementary-contracts](./packages/supplementary-contracts) | Supplementary contracts not part of the Taiko Alethia protocol. | +| [taiko-client](./packages/taiko-client) | Taiko Alethia client implementation in Go. | +| [taikoon-ui](./packages/taikoon-ui) | Taikoon UI. | +| [ui-lib](./packages/ui-lib) | UI library. | ## Issues diff --git a/go.mod b/go.mod index 004715ea4d9..faec2b2c7fe 100644 --- a/go.mod +++ b/go.mod @@ -22,16 +22,16 @@ require ( github.com/joho/godotenv v1.5.1 github.com/labstack/echo-contrib v0.17.1 github.com/labstack/echo-jwt/v4 v4.3.0 - github.com/labstack/echo/v4 v4.13.2 + github.com/labstack/echo/v4 v4.13.3 github.com/labstack/gommon v0.4.2 github.com/modern-go/reflect2 v1.0.2 github.com/morkid/paginate v1.1.8 github.com/patrickmn/go-cache v2.1.0+incompatible github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 github.com/pkg/errors v0.9.1 - github.com/pressly/goose/v3 v3.23.0 + github.com/pressly/goose/v3 v3.24.0 github.com/prometheus/client_golang v1.20.5 - github.com/prysmaticlabs/prysm/v5 v5.1.2 + github.com/prysmaticlabs/prysm/v5 v5.2.0 github.com/rabbitmq/amqp091-go v1.10.0 github.com/shopspring/decimal v1.4.0 github.com/stretchr/testify v1.10.0 @@ -208,7 +208,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.31.0 // indirect golang.org/x/mod v0.20.0 // indirect - golang.org/x/net v0.32.0 // indirect + golang.org/x/net v0.33.0 // indirect golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.27.0 // indirect diff --git a/go.sum b/go.sum index c8241b11bdd..db0a403ab22 100644 --- a/go.sum +++ b/go.sum @@ -383,8 +383,8 @@ github.com/labstack/echo-jwt/v4 v4.3.0 h1:8JcvVCrK9dRkPx/aWY3ZempZLO336Bebh4oAtB github.com/labstack/echo-jwt/v4 v4.3.0/go.mod h1:OlWm3wqfnq3Ma8DLmmH7GiEAz2S7Bj23im2iPMEAR+Q= github.com/labstack/echo/v4 v4.0.0/go.mod h1:tZv7nai5buKSg5h/8E6zz4LsD/Dqh9/91Mvs7Z5Zyno= github.com/labstack/echo/v4 v4.1.15/go.mod h1:GWO5IBVzI371K8XJe50CSvHjQCafK6cw8R/moLhEU6o= -github.com/labstack/echo/v4 v4.13.2 h1:9aAt4hstpH54qIcqkuUXRLTf+v7yOTfMPWzDtuqLmtA= -github.com/labstack/echo/v4 v4.13.2/go.mod h1:uc9gDtHB8UWt3FfbYx0HyxcCuvR4YuPYOxF/1QjoV/c= +github.com/labstack/echo/v4 v4.13.3 h1:pwhpCPrTl5qry5HRdM5FwdXnhXSLSY+WE+YQSeCaafY= +github.com/labstack/echo/v4 v4.13.3/go.mod h1:o90YNEeQWjDozo584l7AwhJMHN0bOC4tAfg+Xox9q5g= github.com/labstack/gommon v0.2.8/go.mod h1:/tj9csK2iPSBvn+3NLM9e52usepMtrd5ilFYA+wQNJ4= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= @@ -428,8 +428,8 @@ github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGA github.com/microcosm-cc/bluemonday v1.0.4/go.mod h1:8iwZnFn2CDDNZ0r6UXhF4xawGvzaqzCRa1n3/lO3W2w= github.com/microcosm-cc/bluemonday v1.0.26 h1:xbqSvqzQMeEHCqMi64VAs4d8uy6Mequs3rQ0k/Khz58= github.com/microcosm-cc/bluemonday v1.0.26/go.mod h1:JyzOCs9gkyQyjs+6h10UEVSe02CGwkhd72Xdqh78TWs= -github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= -github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= +github.com/microsoft/go-mssqldb v1.8.0 h1:7cyZ/AT7ycDsEoWPIXibd+aVKFtteUNhDGf3aobP+tw= +github.com/microsoft/go-mssqldb v1.8.0/go.mod h1:6znkekS3T2vp0waiMhen4GPU1BiAsrP+iXHcE7a7rFo= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= @@ -514,8 +514,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/pressly/goose/v3 v3.23.0 h1:57hqKos8izGek4v6D5+OXBa+Y4Rq8MU//+MmnevdpVA= -github.com/pressly/goose/v3 v3.23.0/go.mod h1:rpx+D9GX/+stXmzKa+uh1DkjPnNVMdiOCV9iLdle4N8= +github.com/pressly/goose/v3 v3.24.0 h1:sFbNms7Bd++2VMq6HSgDHDLWa7kHz1qXzPb3ZIU72VU= +github.com/pressly/goose/v3 v3.24.0/go.mod h1:rEWreU9uVtt0DHCyLzF9gRcWiiTF/V+528DV+4DORug= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -533,8 +533,8 @@ github.com/prysmaticlabs/gohashtree v0.0.4-beta.0.20240624100937-73632381301b h1 github.com/prysmaticlabs/gohashtree v0.0.4-beta.0.20240624100937-73632381301b/go.mod h1:HRuvtXLZ4WkaB1MItToVH2e8ZwKwZPY5/Rcby+CvvLY= github.com/prysmaticlabs/protoc-gen-go-cast v0.0.0-20230228205207-28762a7b9294 h1:q9wE0ZZRdTUAAeyFP/w0SwBEnCqlVy2+on6X2/e+eAU= github.com/prysmaticlabs/protoc-gen-go-cast v0.0.0-20230228205207-28762a7b9294/go.mod h1:ZVEbRdnMkGhp/pu35zq4SXxtvUwWK0J1MATtekZpH2Y= -github.com/prysmaticlabs/prysm/v5 v5.1.2 h1:ib9D7Drh7QPoetJPnYXAHaArmjIreXPZ0FboW9EMzT8= -github.com/prysmaticlabs/prysm/v5 v5.1.2/go.mod h1:ykj3Bl9dHv35cC7fRw6Cd1aCd9l+eNvInHY6gsPbEig= +github.com/prysmaticlabs/prysm/v5 v5.2.0 h1:JqKKK5aqehZN9GiSOSSw4M57NpbvG0nIxqFK5KpPnRw= +github.com/prysmaticlabs/prysm/v5 v5.2.0/go.mod h1:cQc+NIMKaHjPvY566HsYcuni763nzuUWnDsDbk45bbs= github.com/rabbitmq/amqp091-go v1.10.0 h1:STpn5XsHlHGcecLmMFCtg7mqq0RnD+zFr4uzukfVhBw= github.com/rabbitmq/amqp091-go v1.10.0/go.mod h1:Hy4jKW5kQART1u+JkDTF9YYOQUHXqMuhrgxOEeS7G4o= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= @@ -720,8 +720,8 @@ golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= -golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= diff --git a/lychee.toml b/lychee.toml new file mode 100644 index 00000000000..9ba6633e075 --- /dev/null +++ b/lychee.toml @@ -0,0 +1,2 @@ +exclude_path = ["node_modules"] +exclude = ["etherscan.io"] diff --git a/packages/bridge-ui/CHANGELOG.md b/packages/bridge-ui/CHANGELOG.md index fb544b962ea..95b3a0b3280 100644 --- a/packages/bridge-ui/CHANGELOG.md +++ b/packages/bridge-ui/CHANGELOG.md @@ -1,5 +1,33 @@ # Changelog +## [2.13.0](https://github.com/taikoxyz/taiko-mono/compare/bridge-ui-v2.12.0...bridge-ui-v2.13.0) (2024-12-17) + + +### Features + +* **bridge-ui:** add curve ([#18549](https://github.com/taikoxyz/taiko-mono/issues/18549)) ([fd6feef](https://github.com/taikoxyz/taiko-mono/commit/fd6feef545c2432eea8e71c68dc3f3964fe65c17)) +* **bridge-ui:** add padding when claiming to smart contract ([#18141](https://github.com/taikoxyz/taiko-mono/issues/18141)) ([ce5d485](https://github.com/taikoxyz/taiko-mono/commit/ce5d4859a77631ec406ccb5d571efcd91e5fd2f8)) +* **bridge-ui:** more detailed transactions view ([#17899](https://github.com/taikoxyz/taiko-mono/issues/17899)) ([6fe7c44](https://github.com/taikoxyz/taiko-mono/commit/6fe7c447b7c9c13b5868c65c69a9ddfeb968901a)) +* **bridge-ui:** remove fee padding ([#18546](https://github.com/taikoxyz/taiko-mono/issues/18546)) ([3966bb1](https://github.com/taikoxyz/taiko-mono/commit/3966bb1cea358923284de74b81e3ce512b8291dd)) + + +### Bug Fixes + +* **bridge-ui:** balance visually not updating correctly when switching chains ([#17832](https://github.com/taikoxyz/taiko-mono/issues/17832)) ([f495e40](https://github.com/taikoxyz/taiko-mono/commit/f495e406633fc9349e8d3a125c463c0be1e15b66)) +* **bridge-ui:** increase pagesize ([#17886](https://github.com/taikoxyz/taiko-mono/issues/17886)) ([9e38a33](https://github.com/taikoxyz/taiko-mono/commit/9e38a33cd361dc6bd2e2e77a8017151eb08400f3)) + + +### Workflow + +* **protocol:** trigger patch release (1.10.1) ([#18358](https://github.com/taikoxyz/taiko-mono/issues/18358)) ([f4f4796](https://github.com/taikoxyz/taiko-mono/commit/f4f4796488059b02c79d6fb15170df58dd31dc4e)) + + +### Build + +* **deps-dev:** bump @sveltejs/kit from 2.5.7 to 2.5.21 ([#17901](https://github.com/taikoxyz/taiko-mono/issues/17901)) ([7a32ac4](https://github.com/taikoxyz/taiko-mono/commit/7a32ac40a654521c82cb3ff5b6f5af87d0a915a4)) +* **deps:** bump github.com/stretchr/testify from 1.9.0 to 1.10.0 ([#18539](https://github.com/taikoxyz/taiko-mono/issues/18539)) ([79f3fab](https://github.com/taikoxyz/taiko-mono/commit/79f3fab5f1d1ec1bb4ee18afb9268b622e894780)) +* **deps:** bump golang.org/x/sync from 0.9.0 to 0.10.0 ([#18560](https://github.com/taikoxyz/taiko-mono/issues/18560)) ([3d51970](https://github.com/taikoxyz/taiko-mono/commit/3d51970aa0953bbfecaeebf76ea7e664c875c0e4)) + ## [2.12.0](https://github.com/taikoxyz/taiko-mono/compare/bridge-ui-v2.11.0...bridge-ui-v2.12.0) (2024-07-18) diff --git a/packages/bridge-ui/package.json b/packages/bridge-ui/package.json index c44dfca11bd..601c5923d39 100644 --- a/packages/bridge-ui/package.json +++ b/packages/bridge-ui/package.json @@ -1,6 +1,6 @@ { "name": "bridge-ui", - "version": "2.12.0", + "version": "2.13.0", "private": true, "scripts": { "dev": "vite dev", diff --git a/packages/docs-site/CHANGELOG.md b/packages/docs-site/CHANGELOG.md index e6d11b67417..d06f345cc23 100644 --- a/packages/docs-site/CHANGELOG.md +++ b/packages/docs-site/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## [1.21.0](https://github.com/taikoxyz/taiko-mono/compare/docs-site-v1.20.3...docs-site-v1.21.0) (2024-12-23) + + +### Features + +* **docs-site:** add doc for SGX Verifier. ([#18579](https://github.com/taikoxyz/taiko-mono/issues/18579)) ([08b2c49](https://github.com/taikoxyz/taiko-mono/commit/08b2c49f19b25643b4570642d1612b15d5d71290)) + + +### Chores + +* **docs-site:** fix broken link ([#18585](https://github.com/taikoxyz/taiko-mono/issues/18585)) ([38bbb55](https://github.com/taikoxyz/taiko-mono/commit/38bbb55dc076a03751871dde5d61729282a68d9a)) +* **docs-site:** fix typos in node operator guides ([#18586](https://github.com/taikoxyz/taiko-mono/issues/18586)) ([b4bd23c](https://github.com/taikoxyz/taiko-mono/commit/b4bd23ca0798ab239730765a4ca1d8e49ef6e52e)) +* **docs-site:** update proof tier graphic ([#18617](https://github.com/taikoxyz/taiko-mono/issues/18617)) ([becffb7](https://github.com/taikoxyz/taiko-mono/commit/becffb7cc81c6f17436985a81750a5eef7f980e1)) + + +### Build + +* **deps:** bump github.com/stretchr/testify from 1.9.0 to 1.10.0 ([#18539](https://github.com/taikoxyz/taiko-mono/issues/18539)) ([79f3fab](https://github.com/taikoxyz/taiko-mono/commit/79f3fab5f1d1ec1bb4ee18afb9268b622e894780)) +* **deps:** bump golang.org/x/sync from 0.9.0 to 0.10.0 ([#18560](https://github.com/taikoxyz/taiko-mono/issues/18560)) ([3d51970](https://github.com/taikoxyz/taiko-mono/commit/3d51970aa0953bbfecaeebf76ea7e664c875c0e4)) + ## [1.20.3](https://github.com/taikoxyz/taiko-mono/compare/docs-site-v1.20.2...docs-site-v1.20.3) (2024-12-09) diff --git a/packages/docs-site/astro.config.ts b/packages/docs-site/astro.config.ts index 71087619c0d..0c4eeda19e7 100644 --- a/packages/docs-site/astro.config.ts +++ b/packages/docs-site/astro.config.ts @@ -92,6 +92,7 @@ export default defineConfig({ items: [ {label: "TaikoL1 Contract", link: "/taiko-protocol/codebase-analysis/taikol1-contract"}, {label: "TaikoL2 Contract", link: "/taiko-protocol/codebase-analysis/taikol2-contract"}, + {label: "SGXVerifier Contract", link: "/taiko-protocol/codebase-analysis/sgxverifier-contract"}, ], }, { label: "Block states", link: "/taiko-protocol/block-states" }, diff --git a/packages/docs-site/package.json b/packages/docs-site/package.json index 1328c3be706..de59304b68e 100644 --- a/packages/docs-site/package.json +++ b/packages/docs-site/package.json @@ -1,7 +1,7 @@ { "name": "docs-site", "type": "module", - "version": "1.20.3", + "version": "1.21.0", "scripts": { "dev": "astro dev", "start": "astro dev", diff --git a/packages/docs-site/src/assets/content/docs/network-reference/proof-tier-config-mn.webp b/packages/docs-site/src/assets/content/docs/network-reference/proof-tier-config-mn.webp index 42b50901739..bedfb3c43b4 100644 Binary files a/packages/docs-site/src/assets/content/docs/network-reference/proof-tier-config-mn.webp and b/packages/docs-site/src/assets/content/docs/network-reference/proof-tier-config-mn.webp differ diff --git a/packages/docs-site/src/content/docs/network-reference/mainnet-addresses.md b/packages/docs-site/src/content/docs/network-reference/mainnet-addresses.md index 4e3bab65088..e98c0898edd 100644 --- a/packages/docs-site/src/content/docs/network-reference/mainnet-addresses.md +++ b/packages/docs-site/src/content/docs/network-reference/mainnet-addresses.md @@ -23,7 +23,7 @@ description: Network reference page describing various important addresses on Ta | ------------------------------- | -------------------------------------------- | -------------------------- | | TaikoL1 | `0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a` | based.taiko.eth | | RollupAddressManager | `0x579f40D0BE111b823962043702cabe6Aaa290780` | ram.based.taiko.eth | -| TierRouter | `0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0` | N/A | +| TierRouter | `0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66` | N/A | | GuardianProver | `0xE3D777143Ea25A6E031d1e921F396750885f43aC` | guardians.based.taiko.eth | | GuardianProverMinority | `0x579A8d63a2Db646284CBFE31FE5082c9989E985c` | guardians1.based.taiko.eth | | AssignmentHook | `0x537a2f0D3a5879b41BCb5A2afE2EA5c4961796F6` | N/A | diff --git a/packages/docs-site/src/content/docs/network-reference/network-configuration.mdx b/packages/docs-site/src/content/docs/network-reference/network-configuration.mdx index 7ea3687d077..e615b575524 100644 --- a/packages/docs-site/src/content/docs/network-reference/network-configuration.mdx +++ b/packages/docs-site/src/content/docs/network-reference/network-configuration.mdx @@ -26,7 +26,7 @@ You can find all the corresponding values below in the [deployed TierProviderBas ## Tier configuration (Mainnet) -You can view the full `MainnetTierRouter` tier configuration [here](https://etherscan.io/address/0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0#code): +You can view the full `MainnetTierRouter` tier configuration [here](https://etherscan.io/address/0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66#code): ![mainnet proof tiers](~/assets/content/docs/network-reference/proof-tier-config-mn.webp) diff --git a/packages/docs-site/src/content/docs/network-reference/software-releases-and-deployments.md b/packages/docs-site/src/content/docs/network-reference/software-releases-and-deployments.md index 336964cf320..f07a85dd624 100644 --- a/packages/docs-site/src/content/docs/network-reference/software-releases-and-deployments.md +++ b/packages/docs-site/src/content/docs/network-reference/software-releases-and-deployments.md @@ -1,9 +1,9 @@ --- -title: Software releases and Deployments -description: Network reference page displaying the latest software versions. +title: Software releases and deployments +description: Reference page showing the latest Taiko software versions and deployments. --- -## Software Releases +## Software releases It is **highly recommended** you use the latest software. You can find the latest versions here: @@ -15,12 +15,12 @@ It is **highly recommended** you use the latest software. You can find the lates | [simple-taiko-node](https://github.com/taikoxyz/simple-taiko-node/tree/main) | [![Github Release](https://img.shields.io/github/v/release/taikoxyz/simple-taiko-node?label=)](https://github.com/taikoxyz/simple-taiko-node/blob/main/CHANGELOG.md) | | [raiko](https://github.com/taikoxyz/raiko/tree/main) | [![Github Release](https://img.shields.io/github/v/release/taikoxyz/raiko?label=)](https://github.com/taikoxyz/raiko/blob/main/CHANGELOG.md) | -## Mainnet Deployment Logs +## Mainnet deployment logs You can find the contract addresses of the latest smart contract deployments of the Taiko Protocol on Ethereum [here](https://github.com/taikoxyz/taiko-mono/blob/main/packages/protocol/deployments/mainnet-contract-logs-L1.md). You can find the smart contract addresses of L2 contracts for the Taiko Protocol on Mainnet [here](https://github.com/taikoxyz/taiko-mono/blob/main/packages/protocol/deployments/mainnet-contract-logs-L2.md). -## Hekla Deployment Logs +## Hekla deployment logs You can find the all L1 and L2 contract addresses of the latest smart contract deployments of the Taiko Protocol [here](https://github.com/taikoxyz/taiko-mono/blob/main/packages/protocol/deployments/hekla-contract-logs.md). diff --git a/packages/docs-site/src/content/docs/taiko-protocol/codebase-analysis/sgxverifier-contract.md b/packages/docs-site/src/content/docs/taiko-protocol/codebase-analysis/sgxverifier-contract.md new file mode 100644 index 00000000000..3f9c832fb4d --- /dev/null +++ b/packages/docs-site/src/content/docs/taiko-protocol/codebase-analysis/sgxverifier-contract.md @@ -0,0 +1,108 @@ +--- +title: SGXVerifier +description: Taiko protocol page for "SGXVerifier.sol". +--- + +The `SGXVerifier` smart contract implements SGX (Software Guard Extensions) signature proof verification on-chain. This verification ensures integrity and security of rollup state transitions by validating SGX-generated signatures. It also enables management and tracking of SGX instances through registration and replacement. + +--- + +## Core Purpose + +1. **Instance Registry**: + +- Each SGX instance is uniquely identified by its Ethereum address (derived from an ECDSA public-private key pair generated in the SGX enclave). +- The registry ensures: + - Only valid instances are allowed. + - Instances are valid for a predefined duration (`INSTANCE_EXPIRY`). + +2. **Instance Lifecycle**: + +- **Addition**: SGX instances can be added via the `addInstances` function or the `registerInstance` method (following attestation verification). +- **Replacement**: Old SGX instances can be replaced with new ones to maintain security. +- **Deletion**: Instances can be removed using the `deleteInstances` function. + +--- + +## Key Functions + +### `addInstances` + +- **Purpose**: Adds new SGX instances to the registry. +- **Input**: + - `_instances`: Array of Ethereum addresses corresponding to the SGX instances. +- **Output**: Returns an array of assigned instance IDs. +- **Access Control**: Restricted to the owner. + +--- + +### `deleteInstances` + +- **Purpose**: Removes SGX instances from the registry. +- **Input**: + - `_ids`: Array of instance IDs to be removed. +- **Access Control**: Restricted to the owner or the `SGX_WATCHDOG` role. + +--- + +### `registerInstance` + +- **Purpose**: Registers an SGX instance by verifying its attestation off-chain and adding it to the registry. +- **Input**: + - `_attestation`: Parsed attestation quote containing SGX enclave report details. +- **Output**: Returns the assigned instance ID. +- **Access Control**: Open to external calls. + +--- + +### `verifyProof` + +- **Purpose**: Validates the SGX signature proof for a single block state transition. +- **Input**: + - `_ctx`: Context of the proof. + - `_tran`: Transition data. + - `_proof`: SGX signature proof. +- **Mechanism**: + - Validates the instance ID and signature. + - Ensures the SGX instance is valid and replaces it if needed. + +--- + +### `verifyBatchProof` + +- **Purpose**: Validates SGX signature proofs for multiple block state transitions in a batch. +- **Input**: + - `_ctxs`: Array of contexts for the batch. + - `_proof`: SGX batch signature proof. +- **Mechanism**: + - Verifies the signature against public inputs for all blocks. + - Replaces the SGX instance if necessary. + +--- + +## Key Events + +1. **`InstanceAdded`**: + +- Emitted when a new SGX instance is added or an old instance is replaced. +- Parameters: + - `id`: ID of the SGX instance. + - `instance`: Address of the new SGX instance. + - `replaced`: Address of the replaced instance (if any). + - `validSince`: Timestamp indicating when the instance became valid. + +2. **`InstanceDeleted`**: + +- Emitted when an SGX instance is removed from the registry. +- Parameters: + - `id`: ID of the SGX instance. + - `instance`: Address of the removed instance. + +--- + +## Constants + +1. **`INSTANCE_EXPIRY`**: Duration (365 days) for which an SGX instance remains valid. +2. **`INSTANCE_VALIDITY_DELAY`**: Delay before an SGX instance becomes valid after registration. + +--- diff --git a/packages/eventindexer/docs/docs.go b/packages/eventindexer/docs/docs.go index 561b1402938..abed8494ff4 100644 --- a/packages/eventindexer/docs/docs.go +++ b/packages/eventindexer/docs/docs.go @@ -17,7 +17,7 @@ const docTemplate = `{ }, "license": { "name": "MIT", - "url": "https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE.md" + "url": "https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE" }, "version": "{{.Version}}" }, diff --git a/packages/eventindexer/docs/swagger.json b/packages/eventindexer/docs/swagger.json index aec099185a7..4f663dda8c8 100644 --- a/packages/eventindexer/docs/swagger.json +++ b/packages/eventindexer/docs/swagger.json @@ -10,7 +10,7 @@ }, "license": { "name": "MIT", - "url": "https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE.md" + "url": "https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE" }, "version": "1.0" }, diff --git a/packages/eventindexer/docs/swagger.yaml b/packages/eventindexer/docs/swagger.yaml index 434d1128ca0..14e7e96df6d 100644 --- a/packages/eventindexer/docs/swagger.yaml +++ b/packages/eventindexer/docs/swagger.yaml @@ -123,7 +123,7 @@ info: url: https://community.taiko.xyz/ license: name: MIT - url: https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE.md + url: https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE termsOfService: http://swagger.io/terms/ title: Taiko Event Indexer API version: "1.0" diff --git a/packages/eventindexer/pkg/http/server.go b/packages/eventindexer/pkg/http/server.go index 4626bf590d4..707f3a8075d 100644 --- a/packages/eventindexer/pkg/http/server.go +++ b/packages/eventindexer/pkg/http/server.go @@ -23,7 +23,7 @@ import ( // @contact.email info@taiko.xyz // @license.name MIT -// @license.url https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE.md +// @license.url https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE // @host eventindexer.hekla.taiko.xyz // Server represents an eventindexer http server instance. diff --git a/packages/monitors/README.md b/packages/monitors/README.md new file mode 100644 index 00000000000..43f6628df45 --- /dev/null +++ b/packages/monitors/README.md @@ -0,0 +1,3 @@ +# Monitors + +This package contains monitoring and alerting services for the Taiko protocol. It uses OpenZeppelin Defender for monitoring smart contracts and setting up automated alerts. diff --git a/packages/protocol/CHANGELOG.md b/packages/protocol/CHANGELOG.md index d1b9a102079..1e9434fed09 100644 --- a/packages/protocol/CHANGELOG.md +++ b/packages/protocol/CHANGELOG.md @@ -1,5 +1,81 @@ # Changelog +## [1.11.0](https://github.com/taikoxyz/taiko-mono/compare/protocol-v1.10.0...protocol-v1.11.0) (2024-12-24) + + +### Features + +* **protocol:** add `lastProposedIn` to slotB ([#18379](https://github.com/taikoxyz/taiko-mono/issues/18379)) ([96b380a](https://github.com/taikoxyz/taiko-mono/commit/96b380a452f1055da960146b4bf1e94c1842da73)) +* **protocol:** adjust the zk ratio(risc0 & sp1) ([#18613](https://github.com/taikoxyz/taiko-mono/issues/18613)) ([431435e](https://github.com/taikoxyz/taiko-mono/commit/431435e6e74799caea94f53438238c63831cf07c)) +* **protocol:** allow `local.params.parentMetaHash` to remain as 0 ([#18451](https://github.com/taikoxyz/taiko-mono/issues/18451)) ([94185fe](https://github.com/taikoxyz/taiko-mono/commit/94185feb207b9a2e74fb05a4898d25ce2008f826)) +* **protocol:** allow any ERC20 tokens or Ether to be used as bonds ([#18380](https://github.com/taikoxyz/taiko-mono/issues/18380)) ([1920521](https://github.com/taikoxyz/taiko-mono/commit/1920521a2478d1e31745742f1ddbb296cdd98f6f)) +* **protocol:** change HeklaTaikoToken's clock mode to timestamp to test the DAO ([#18597](https://github.com/taikoxyz/taiko-mono/issues/18597)) ([ccc9500](https://github.com/taikoxyz/taiko-mono/commit/ccc9500d861d5cc666f038ddb8ceed00a353ee94)) +* **protocol:** decrease the rate of risc0 in Hekla ([#18553](https://github.com/taikoxyz/taiko-mono/issues/18553)) ([57d20db](https://github.com/taikoxyz/taiko-mono/commit/57d20db59ffa23f7038ad80a4322634cc71251ea)) +* **protocol:** increase risc0 frequency in Hekla ([#18407](https://github.com/taikoxyz/taiko-mono/issues/18407)) ([350264c](https://github.com/taikoxyz/taiko-mono/commit/350264c98d6a96ea11d5b1cef684a81605d3826b)) +* **protocol:** increase zk(risc0 & sp1) rate in mainnet ([#18481](https://github.com/taikoxyz/taiko-mono/issues/18481)) ([f24a908](https://github.com/taikoxyz/taiko-mono/commit/f24a908e60c062ad789a34765de5a1037bdb1ff0)) +* **protocol:** introduce ForkManager to improve protocol fork management ([#18508](https://github.com/taikoxyz/taiko-mono/issues/18508)) ([ff5c196](https://github.com/taikoxyz/taiko-mono/commit/ff5c1964a303e21dfeb87f8f9c01fc82ef43a03e)) +* **protocol:** measure gas per block using a debug event ([#18470](https://github.com/taikoxyz/taiko-mono/issues/18470)) ([e84e472](https://github.com/taikoxyz/taiko-mono/commit/e84e472e4a0479301d5ce1d4268d964705dcbbd0)) +* **protocol:** propose a batch blocks conditionally ([#18570](https://github.com/taikoxyz/taiko-mono/issues/18570)) ([e846f62](https://github.com/taikoxyz/taiko-mono/commit/e846f6289fea0b046ddcfcdfaf46f3727efbdf11)) +* **protocol:** request zk proofs(risc0 & sp1) in mainnet ([#18467](https://github.com/taikoxyz/taiko-mono/issues/18467)) ([1fab427](https://github.com/taikoxyz/taiko-mono/commit/1fab427005708036c981f2b8fb47d9aa408e0d94)) +* **protocol:** tolerate invalid BaseFeeConfig on L2 ([#18338](https://github.com/taikoxyz/taiko-mono/issues/18338)) ([f9f5d15](https://github.com/taikoxyz/taiko-mono/commit/f9f5d156f9fef622d921f6e007ecb43ded0130ad)) +* **protocol:** update `B_TIER_ROUTER` in `RollupAddressCache` ([#18370](https://github.com/taikoxyz/taiko-mono/issues/18370)) ([9748ae5](https://github.com/taikoxyz/taiko-mono/commit/9748ae527a75124f8674bb66280b9161ce79d046)) +* **protocol:** update `RollupAddressCache` with new `MainnetTierRouter` address ([#18619](https://github.com/taikoxyz/taiko-mono/issues/18619)) ([b2ca63c](https://github.com/taikoxyz/taiko-mono/commit/b2ca63cd4ed7eca385c317d9a6ade794bf156c79)) +* **protocol:** update sp1 to 3.0.0 prod version ([#18465](https://github.com/taikoxyz/taiko-mono/issues/18465)) ([0b11101](https://github.com/taikoxyz/taiko-mono/commit/0b1110159201f94ff5a4df528eab60b306d4fb25)) + + +### Bug Fixes + +* **protocol:** fix debitBond bug and add additional tests ([#18443](https://github.com/taikoxyz/taiko-mono/issues/18443)) ([75ff1f8](https://github.com/taikoxyz/taiko-mono/commit/75ff1f87412c763e6ed3431d13689a629a2dd668)) +* **protocol:** revert `B_TIER_OPTIMISTIC` back to `""` ([#18446](https://github.com/taikoxyz/taiko-mono/issues/18446)) ([9549e7f](https://github.com/taikoxyz/taiko-mono/commit/9549e7f3e899b22ff8c9ff7d731aa3ce250fd071)) + + +### Chores + +* **main:** fix misspelled ([#18581](https://github.com/taikoxyz/taiko-mono/issues/18581)) ([3687c4e](https://github.com/taikoxyz/taiko-mono/commit/3687c4e060b4b316fb185c649e9b089b97d53eda)) +* **protocol:** change bond amounts, proving windows, and cooldown windows ([#18371](https://github.com/taikoxyz/taiko-mono/issues/18371)) ([fac5c16](https://github.com/taikoxyz/taiko-mono/commit/fac5c167357f430cfb030e7ceaa41bb8e4b938d4)) +* **protocol:** delete gas debug event ([#18620](https://github.com/taikoxyz/taiko-mono/issues/18620)) ([06128e8](https://github.com/taikoxyz/taiko-mono/commit/06128e8f64b7bf2997b70959c78ab256404ebab3)) +* **protocol:** fix typos in documentation files ([#18490](https://github.com/taikoxyz/taiko-mono/issues/18490)) ([8d1f9ea](https://github.com/taikoxyz/taiko-mono/commit/8d1f9eab8e02b1868f2e24005699a8ed1d2937fa)) +* **protocol:** optimize Taiko L1 gas cost ([#18376](https://github.com/taikoxyz/taiko-mono/issues/18376)) ([ea0158f](https://github.com/taikoxyz/taiko-mono/commit/ea0158f0cbaa974f90f9174410c705e6cbdc48aa)) +* **protocol:** remove repetitive words in audit report ([#18584](https://github.com/taikoxyz/taiko-mono/issues/18584)) ([8092ee5](https://github.com/taikoxyz/taiko-mono/commit/8092ee56e00ed3e422471a9ed85c42fad6c19a13)) +* **protocol:** restore proving window changes ([#18368](https://github.com/taikoxyz/taiko-mono/issues/18368)) ([9182fba](https://github.com/taikoxyz/taiko-mono/commit/9182fbaf05d309f9827310f3616992c0cc88a22d)) +* **repo:** improve documentation and changelog ([#18489](https://github.com/taikoxyz/taiko-mono/issues/18489)) ([c7b9b4f](https://github.com/taikoxyz/taiko-mono/commit/c7b9b4f01098d4fab337b9ff456ce394cdaf3a79)) + + +### Documentation + +* **protocol:** add mainnet zkVM verifiers deployment ([#18454](https://github.com/taikoxyz/taiko-mono/issues/18454)) ([3481b68](https://github.com/taikoxyz/taiko-mono/commit/3481b68e8d377c1ae6fc5a1a0e08d8411f94c613)) +* **protocol:** add Ontake fork audit report from OpenZeppelin ([#18491](https://github.com/taikoxyz/taiko-mono/issues/18491)) ([e83adc0](https://github.com/taikoxyz/taiko-mono/commit/e83adc06ac4ce8ebe7e34feaad5691176dba27e2)) +* **protocol:** update Hekla deployments ([#18598](https://github.com/taikoxyz/taiko-mono/issues/18598)) ([a095c69](https://github.com/taikoxyz/taiko-mono/commit/a095c69a240d64606b09a26f2e80ad6daf18c273)) +* **protocol:** update mainnet deployment docs ([#18366](https://github.com/taikoxyz/taiko-mono/issues/18366)) ([bbd69ca](https://github.com/taikoxyz/taiko-mono/commit/bbd69ca583257ade30ac9ea2601509af5bc0789a)) +* **protocol:** update mainnet deployment docs ([#18482](https://github.com/taikoxyz/taiko-mono/issues/18482)) ([9da8499](https://github.com/taikoxyz/taiko-mono/commit/9da849989249072e3a03e611b9c08b00295cf42c)) +* **protocol:** update mainnet deployment docs ([#18621](https://github.com/taikoxyz/taiko-mono/issues/18621)) ([eb542bf](https://github.com/taikoxyz/taiko-mono/commit/eb542bf67dea51fd42c0f5c40ee987e5acadc3fd)) +* **protocol:** upgrade sp1 remote verifier in Hekla ([#18469](https://github.com/taikoxyz/taiko-mono/issues/18469)) ([051b619](https://github.com/taikoxyz/taiko-mono/commit/051b619c6ce93a09c7e14dd8fafc99681c9261ad)) +* **protocol:** upgrade verifiers to support proof aggregation in Hekla ([#18453](https://github.com/taikoxyz/taiko-mono/issues/18453)) ([bfb0386](https://github.com/taikoxyz/taiko-mono/commit/bfb03864ee83ccc3bce989f3e9fd2309eb90c277)) +* **repo:** improve grammar and readability ([#18501](https://github.com/taikoxyz/taiko-mono/issues/18501)) ([61994ff](https://github.com/taikoxyz/taiko-mono/commit/61994ffefcf29981beb567b84a3a55706300cf13)) + + +### Code Refactoring + +* **protocol:** extra a new function in LibProposing ([#18456](https://github.com/taikoxyz/taiko-mono/issues/18456)) ([5b4b0cd](https://github.com/taikoxyz/taiko-mono/commit/5b4b0cd271534aa72d865afa5fc55e0ee4b16b73)) +* **protocol:** remove unused code post Ontake fork ([#18150](https://github.com/taikoxyz/taiko-mono/issues/18150)) ([8543cec](https://github.com/taikoxyz/taiko-mono/commit/8543cecdef9d10d038bc5a7313230006acd26e22)) +* **protocol:** slightly improve EssentialContract ([#18445](https://github.com/taikoxyz/taiko-mono/issues/18445)) ([3d077f8](https://github.com/taikoxyz/taiko-mono/commit/3d077f8ee520a116028711391c323c7badd1f2c6)) + + +### Tests + +* **protocol:** check LibEIP1559 function results in fuzz tests ([#18475](https://github.com/taikoxyz/taiko-mono/issues/18475)) ([06e190c](https://github.com/taikoxyz/taiko-mono/commit/06e190c01bc4c4aae25664e8c2c154d8cf46efa5)) + + +### Workflow + +* **protocol:** make the storage layout table clearer ([#18633](https://github.com/taikoxyz/taiko-mono/issues/18633)) ([7394458](https://github.com/taikoxyz/taiko-mono/commit/73944585586686ad1ce5548ce59e9ea583c4b2ee)) + + +### Build + +* **deps:** bump github.com/stretchr/testify from 1.9.0 to 1.10.0 ([#18539](https://github.com/taikoxyz/taiko-mono/issues/18539)) ([79f3fab](https://github.com/taikoxyz/taiko-mono/commit/79f3fab5f1d1ec1bb4ee18afb9268b622e894780)) +* **deps:** bump golang.org/x/sync from 0.9.0 to 0.10.0 ([#18560](https://github.com/taikoxyz/taiko-mono/issues/18560)) ([3d51970](https://github.com/taikoxyz/taiko-mono/commit/3d51970aa0953bbfecaeebf76ea7e664c875c0e4)) + ## [1.10.0](https://github.com/taikoxyz/taiko-mono/compare/protocol-v1.9.0...protocol-v1.10.0) (2024-11-01) diff --git a/packages/protocol/contract_layout_layer1.md b/packages/protocol/contract_layout_layer1.md index 88c1f86ae62..e69de29bb2d 100644 --- a/packages/protocol/contract_layout_layer1.md +++ b/packages/protocol/contract_layout_layer1.md @@ -1,1832 +0,0 @@ -## ERC1155Vault - -╭--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===============================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[48] | 303 | 0 | 1536 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[50] | 351 | 0 | 1600 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[50] | 401 | 0 | 1600 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_\_gap | uint256[50] | 451 | 0 | 1600 | ERC1155Vault | -╰--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------╯ - -## ERC20Vault - -╭--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===========================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| bridgedToCanonical | mapping(address => struct ERC20Vault.CanonicalERC20) | 301 | 0 | 32 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| btokenDenylist | mapping(address => bool) | 303 | 0 | 32 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| lastMigrationStart | mapping(uint256 => mapping(address => uint256)) | 304 | 0 | 32 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[46] | 305 | 0 | 1472 | ERC20Vault | -╰--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------╯ - -## ERC721Vault - -╭--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=============================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[48] | 303 | 0 | 1536 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_\_gap | uint256[50] | 351 | 0 | 1600 | ERC721Vault | -╰--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------╯ - -## BridgedERC20 - -╭------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+========================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_balances | mapping(address => uint256) | 251 | 0 | 32 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_totalSupply | uint256 | 253 | 0 | 32 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_name | string | 254 | 0 | 32 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_symbol | string | 255 | 0 | 32 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[45] | 256 | 0 | 1440 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| srcToken | address | 301 | 0 | 20 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **srcDecimals | uint8 | 301 | 20 | 1 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| srcChainId | uint256 | 302 | 0 | 32 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| migratingAddress | address | 303 | 0 | 20 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| migratingInbound | bool | 303 | 20 | 1 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_\_gap | uint256[47] | 304 | 0 | 1504 | BridgedERC20 | -╰------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------╯ - -## BridgedERC20V2 - -╭------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_balances | mapping(address => uint256) | 251 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_totalSupply | uint256 | 253 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_name | string | 254 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_symbol | string | 255 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[45] | 256 | 0 | 1440 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| srcToken | address | 301 | 0 | 20 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **srcDecimals | uint8 | 301 | 20 | 1 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| srcChainId | uint256 | 302 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| migratingAddress | address | 303 | 0 | 20 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| migratingInbound | bool | 303 | 20 | 1 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[47] | 304 | 0 | 1504 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_hashedName | bytes32 | 351 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_hashedVersion | bytes32 | 352 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_name | string | 353 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_version | string | 354 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[48] | 355 | 0 | 1536 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_\_gap | uint256[49] | 404 | 0 | 1568 | BridgedERC20V2 | -╰------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------╯ - -## BridgedERC721 - -╭--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=========================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_name | string | 301 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_symbol | string | 302 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_owners | mapping(uint256 => address) | 303 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_balances | mapping(address => uint256) | 304 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_tokenApprovals | mapping(uint256 => address) | 305 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_operatorApprovals | mapping(address => mapping(address => bool)) | 306 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[44] | 307 | 0 | 1408 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| srcToken | address | 351 | 0 | 20 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| srcChainId | uint256 | 352 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_\_gap | uint256[48] | 353 | 0 | 1536 | BridgedERC721 | -╰--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------╯ - -## BridgedERC1155 - -╭--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==============================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_balances | mapping(uint256 => mapping(address => uint256)) | 301 | 0 | 32 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_operatorApprovals | mapping(address => mapping(address => bool)) | 302 | 0 | 32 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_uri | string | 303 | 0 | 32 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[47] | 304 | 0 | 1504 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| srcToken | address | 351 | 0 | 20 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| srcChainId | uint256 | 352 | 0 | 32 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| symbol | string | 353 | 0 | 32 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| name | string | 354 | 0 | 32 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_\_gap | uint256[46] | 355 | 0 | 1472 | BridgedERC1155 | -╰--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------╯ - -## Bridge - -╭------------------+-----------------------------------------+------+--------+-------+-------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| \_owner | address | 51 | 0 | 20 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| addressManager | address | 151 | 0 | 20 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **reserved1 | uint64 | 251 | 0 | 8 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| nextMessageId | uint64 | 251 | 8 | 8 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| messageStatus | mapping(bytes32 => enum IBridge.Status) | 252 | 0 | 32 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **ctx | struct IBridge.Context | 253 | 0 | 64 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **reserved2 | uint256 | 255 | 0 | 32 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **reserved3 | uint256 | 256 | 0 | 32 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| \_\_gap | uint256[44] | 257 | 0 | 1408 | Bridge | -╰------------------+-----------------------------------------+------+--------+-------+-------------------------------------------╯ - -## QuotaManager - -╭------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| tokenQuota | mapping(address => struct QuotaManager.Quota) | 251 | 0 | 32 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| quotaPeriod | uint24 | 252 | 0 | 3 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_\_gap | uint256[48] | 253 | 0 | 1536 | QuotaManager | -╰------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------╯ - -## AddressManager - -╭------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+========================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **addresses | mapping(uint256 => mapping(bytes32 => address)) | 251 | 0 | 32 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 252 | 0 | 1568 | AddressManager | -╰------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------╯ - -## AddressResolver - -╭----------------+-------------+------+--------+-------+-------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+====================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | AddressResolver | -|----------------+-------------+------+--------+-------+-------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | AddressResolver | -|----------------+-------------+------+--------+-------+-------------------------------------------------------------| -| addressManager | address | 0 | 2 | 20 | AddressResolver | -|----------------+-------------+------+--------+-------+-------------------------------------------------------------| -| \_\_gap | uint256[49] | 1 | 0 | 1568 | AddressResolver | -╰----------------+-------------+------+--------+-------+-------------------------------------------------------------╯ - -## EssentialContract - -╭------------------+-------------+------+--------+-------+-----------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==========================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | EssentialContract | -╰------------------+-------------+------+--------+-------+-----------------------------------------------------------------╯ - -## SignalService - -╭------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+====================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| topBlockId | mapping(uint64 => mapping(bytes32 => uint64)) | 251 | 0 | 32 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| isAuthorized | mapping(address => bool) | 252 | 0 | 32 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_\_gap | uint256[48] | 253 | 0 | 1536 | SignalService | -╰------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------╯ - -## TaikoToken - -╭-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+================================================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **slots_previously_used_by_ERC20SnapshotUpgradeable | uint256[50] | 251 | 0 | 1600 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_balances | mapping(address => uint256) | 301 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_allowances | mapping(address => mapping(address => uint256)) | 302 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_totalSupply | uint256 | 303 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_name | string | 304 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_symbol | string | 305 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[45] | 306 | 0 | 1440 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_hashedName | bytes32 | 351 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_hashedVersion | bytes32 | 352 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_name | string | 353 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_version | string | 354 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[48] | 355 | 0 | 1536 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 404 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 405 | 0 | 1568 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_delegates | mapping(address => address) | 454 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 455 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| \_totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 456 | 0 | 32 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[47] | 457 | 0 | 1504 | TaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[50] | 504 | 0 | 1600 | TaikoToken | -╰-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+--------------------------------------------------╯ - -## ComposeVerifier - -╭------------------+-------------+------+--------+-------+------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | ComposeVerifier | -|------------------+-------------+------+--------+-------+------------------------------------------------------------------------| -| \_\_gap | uint256[50] | 251 | 0 | 1600 | ComposeVerifier | -╰------------------+-------------+------+--------+-------+------------------------------------------------------------------------╯ - -## TeeAnyVerifier - -╭------------------+-------------+------+--------+-------+----------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===============================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | TeeAnyVerifier | -|------------------+-------------+------+--------+-------+----------------------------------------------------------------------| -| **gap | uint256[50] | 301 | 0 | 1600 | TeeAnyVerifier | -╰------------------+-------------+------+--------+-------+----------------------------------------------------------------------╯ - -## ZkAndTeeVerifier - -╭------------------+-------------+------+--------+-------+--------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | ZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------------| -| **gap | uint256[50] | 301 | 0 | 1600 | ZkAndTeeVerifier | -╰------------------+-------------+------+--------+-------+--------------------------------------------------------------------------╯ - -## ZkAnyVerifier - -╭------------------+-------------+------+--------+-------+--------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=============================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | ZkAnyVerifier | -|------------------+-------------+------+--------+-------+--------------------------------------------------------------------| -| **gap | uint256[50] | 301 | 0 | 1600 | ZkAnyVerifier | -╰------------------+-------------+------+--------+-------+--------------------------------------------------------------------╯ - -## Risc0Verifier - -╭------------------+--------------------------+------+--------+-------+------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| isImageTrusted | mapping(bytes32 => bool) | 251 | 0 | 32 | Risc0Verifier | -|------------------+--------------------------+------+--------+-------+------------------------------------------------------------| -| \_\_gap | uint256[49] | 252 | 0 | 1568 | Risc0Verifier | -╰------------------+--------------------------+------+--------+-------+------------------------------------------------------------╯ - -## SP1Verifier - -╭------------------+--------------------------+------+--------+-------+--------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==============================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| isProgramTrusted | mapping(bytes32 => bool) | 251 | 0 | 32 | SP1Verifier | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------------| -| \_\_gap | uint256[49] | 252 | 0 | 1568 | SP1Verifier | -╰------------------+--------------------------+------+--------+-------+--------------------------------------------------------╯ - -## SgxVerifier - -╭-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+======================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| nextInstanceId | uint256 | 251 | 0 | 32 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| instances | mapping(uint256 => struct SgxVerifier.Instance) | 252 | 0 | 32 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| addressRegistered | mapping(address => bool) | 253 | 0 | 32 | SgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------| -| \_\_gap | uint256[47] | 254 | 0 | 1504 | SgxVerifier | -╰-------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------╯ - -## AutomataDcapV3Attestation - -╭-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===================================================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| sigVerifyLib | contract ISigVerifyLib | 251 | 0 | 20 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| pemCertLib | contract IPEMCertChainLib | 252 | 0 | 20 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| checkLocalEnclaveReport | bool | 252 | 20 | 1 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| trustedUserMrEnclave | mapping(bytes32 => bool) | 253 | 0 | 32 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| trustedUserMrSigner | mapping(bytes32 => bool) | 254 | 0 | 32 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| serialNumIsRevoked | mapping(uint256 => mapping(bytes => bool)) | 255 | 0 | 32 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| tcbInfo | mapping(string => struct TCBInfoStruct.TCBInfo) | 256 | 0 | 32 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| qeIdentity | struct EnclaveIdStruct.EnclaveId | 257 | 0 | 128 | AutomataDcapV3Attestation | -|-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| \_\_gap | uint256[39] | 261 | 0 | 1248 | AutomataDcapV3Attestation | -╰-------------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------------------------------------------╯ - -## TaikoL1 - -╭------------------+------------------------+------+--------+-------+--------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| \_owner | address | 51 | 0 | 20 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| addressManager | address | 151 | 0 | 20 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| state | struct TaikoData.State | 251 | 0 | 1600 | TaikoL1 | -|------------------+------------------------+------+--------+-------+--------------------------------------------| -| \_\_gap | uint256[50] | 301 | 0 | 1600 | TaikoL1 | -╰------------------+------------------------+------+--------+-------+--------------------------------------------╯ - -## HeklaTaikoL1 - -╭------------------+------------------------+------+--------+-------+------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==========================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| state | struct TaikoData.State | 251 | 0 | 1600 | HeklaTaikoL1 | -|------------------+------------------------+------+--------+-------+------------------------------------------------------| -| \_\_gap | uint256[50] | 301 | 0 | 1600 | HeklaTaikoL1 | -╰------------------+------------------------+------+--------+-------+------------------------------------------------------╯ - -## HeklaTierRouter - -╭------+------+------+--------+-------+----------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+================================================+ -╰------+------+------+--------+-------+----------╯ - -## MainnetBridge - -╭------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===========================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| **reserved1 | uint64 | 251 | 0 | 8 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| nextMessageId | uint64 | 251 | 8 | 8 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| messageStatus | mapping(bytes32 => enum IBridge.Status) | 252 | 0 | 32 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| **ctx | struct IBridge.Context | 253 | 0 | 64 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| **reserved2 | uint256 | 255 | 0 | 32 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| **reserved3 | uint256 | 256 | 0 | 32 | MainnetBridge | -|------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------| -| \_\_gap | uint256[44] | 257 | 0 | 1408 | MainnetBridge | -╰------------------+-----------------------------------------+------+--------+-------+----------------------------------------------------------------------╯ - -## MainnetSignalService - -╭------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===============================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| topBlockId | mapping(uint64 => mapping(bytes32 => uint64)) | 251 | 0 | 32 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| isAuthorized | mapping(address => bool) | 252 | 0 | 32 | MainnetSignalService | -|------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------| -| \_\_gap | uint256[48] | 253 | 0 | 1536 | MainnetSignalService | -╰------------------+-----------------------------------------------+------+--------+-------+------------------------------------------------------------------------------------╯ - -## MainnetERC20Vault - -╭--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==================================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| bridgedToCanonical | mapping(address => struct ERC20Vault.CanonicalERC20) | 301 | 0 | 32 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| btokenDenylist | mapping(address => bool) | 303 | 0 | 32 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| lastMigrationStart | mapping(uint256 => mapping(address => uint256)) | 304 | 0 | 32 | MainnetERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------| -| **gap | uint256[46] | 305 | 0 | 1472 | MainnetERC20Vault | -╰--------------------+------------------------------------------------------+------+--------+-------+------------------------------------------------------------------------------╯ - -## MainnetERC1155Vault - -╭--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+======================================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| **gap | uint256[48] | 303 | 0 | 1536 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| **gap | uint256[50] | 351 | 0 | 1600 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| **gap | uint256[50] | 401 | 0 | 1600 | MainnetERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------| -| \_\_gap | uint256[50] | 451 | 0 | 1600 | MainnetERC1155Vault | -╰--------------------+------------------------------------------------------+------+--------+-------+----------------------------------------------------------------------------------╯ - -## MainnetERC721Vault - -╭--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+====================================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| **gap | uint256[48] | 303 | 0 | 1536 | MainnetERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------| -| \_\_gap | uint256[50] | 351 | 0 | 1600 | MainnetERC721Vault | -╰--------------------+------------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------╯ - -## MainnetSharedAddressManager - -╭------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===============================================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| **addresses | mapping(uint256 => mapping(bytes32 => address)) | 251 | 0 | 32 | MainnetSharedAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 252 | 0 | 1568 | MainnetSharedAddressManager | -╰------------------+-------------------------------------------------+------+--------+-------+--------------------------------------------------------------------------------------------------╯ - -## RollupAddressCache - -╭------+------+------+--------+-------+----------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+================================================+ -╰------+------+------+--------+-------+----------╯ - -## SharedAddressCache - -╭------+------+------+--------+-------+----------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+================================================+ -╰------+------+------+--------+-------+----------╯ - -## AddressCache - -╭------+------+------+--------+-------+----------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+================================================+ -╰------+------+------+--------+-------+----------╯ - -## MainnetSgxVerifier - -╭-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===================================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| nextInstanceId | uint256 | 251 | 0 | 32 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| instances | mapping(uint256 => struct SgxVerifier.Instance) | 252 | 0 | 32 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| addressRegistered | mapping(address => bool) | 253 | 0 | 32 | MainnetSgxVerifier | -|-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| \_\_gap | uint256[47] | 254 | 0 | 1504 | MainnetSgxVerifier | -╰-------------------+-------------------------------------------------+------+--------+-------+-------------------------------------------------------------------------------------╯ - -## MainnetSP1Verifier - -╭------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===========================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| isProgramTrusted | mapping(bytes32 => bool) | 251 | 0 | 32 | MainnetSP1Verifier | -|------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------| -| \_\_gap | uint256[49] | 252 | 0 | 1568 | MainnetSP1Verifier | -╰------------------+--------------------------+------+--------+-------+-------------------------------------------------------------------------------------╯ - -## MainnetZkAnyVerifier - -╭------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | MainnetZkAnyVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **gap | uint256[50] | 301 | 0 | 1600 | MainnetZkAnyVerifier | -╰------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------╯ - -## MainnetRisc0Verifier - -╭------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===============================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| isImageTrusted | mapping(bytes32 => bool) | 251 | 0 | 32 | MainnetRisc0Verifier | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------| -| \_\_gap | uint256[49] | 252 | 0 | 1568 | MainnetRisc0Verifier | -╰------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------------------------╯ - -## MainnetZkAndTeeVerifier - -╭------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+========================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | MainnetZkAndTeeVerifier | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------| -| **gap | uint256[50] | 301 | 0 | 1600 | MainnetZkAndTeeVerifier | -╰------------------+-------------+------+--------+-------+-----------------------------------------------------------------------------------------------╯ - -## MainnetTeeAnyVerifier - -╭------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+====================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | MainnetTeeAnyVerifier | -|------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------| -| **gap | uint256[50] | 301 | 0 | 1600 | MainnetTeeAnyVerifier | -╰------------------+-------------+------+--------+-------+-------------------------------------------------------------------------------------------╯ - -## MainnetGuardianProver - -╭-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=====================================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| guardianIds | mapping(address => uint256) | 251 | 0 | 32 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| approvals | mapping(uint256 => mapping(bytes32 => uint256)) | 252 | 0 | 32 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| guardians | address[] | 253 | 0 | 32 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| version | uint32 | 254 | 0 | 4 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| minGuardians | uint32 | 254 | 4 | 4 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| provingAutoPauseEnabled | bool | 254 | 8 | 1 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| latestProofHash | mapping(uint256 => mapping(uint256 => bytes32)) | 255 | 0 | 32 | MainnetGuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------| -| \_\_gap | uint256[45] | 256 | 0 | 1440 | MainnetGuardianProver | -╰-------------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------╯ - -## MainnetTaikoL1 - -╭------------------+------------------------+------+--------+-------+-------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=======================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| state | struct TaikoData.State | 251 | 0 | 1600 | MainnetTaikoL1 | -|------------------+------------------------+------+--------+-------+-------------------------------------------------------------------| -| \_\_gap | uint256[50] | 301 | 0 | 1600 | MainnetTaikoL1 | -╰------------------+------------------------+------+--------+-------+-------------------------------------------------------------------╯ - -## MainnetRollupAddressManager - -╭------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==========================================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| **addresses | mapping(uint256 => mapping(bytes32 => address)) | 251 | 0 | 32 | MainnetRollupAddressManager | -|------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------| -| **gap | uint256[49] | 252 | 0 | 1568 | MainnetRollupAddressManager | -╰------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------------------------------------╯ - -## MainnetTierRouter - -╭------+------+------+--------+-------+----------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+================================================+ -╰------+------+------+--------+-------+----------╯ - -## MainnetProverSet - -╭------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=============================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| isProver | mapping(address => bool) | 251 | 0 | 32 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| admin | address | 252 | 0 | 20 | MainnetProverSet | -|------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------| -| \_\_gap | uint256[48] | 253 | 0 | 1536 | MainnetProverSet | -╰------------------+--------------------------+------+--------+-------+-----------------------------------------------------------------------╯ - -## TokenUnlock - -╭------------------+--------------------------+------+--------+-------+---------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=====================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| amountVested | uint256 | 251 | 0 | 32 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| recipient | address | 252 | 0 | 20 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| tgeTimestamp | uint64 | 252 | 20 | 8 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| isProverSet | mapping(address => bool) | 253 | 0 | 32 | TokenUnlock | -|------------------+--------------------------+------+--------+-------+---------------------------------------------------------------| -| \_\_gap | uint256[47] | 254 | 0 | 1504 | TokenUnlock | -╰------------------+--------------------------+------+--------+-------+---------------------------------------------------------------╯ - -## ProverSet - -╭------------------+--------------------------+------+--------+-------+--------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+========================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| isProver | mapping(address => bool) | 251 | 0 | 32 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| admin | address | 252 | 0 | 20 | ProverSet | -|------------------+--------------------------+------+--------+-------+--------------------------------------------------| -| \_\_gap | uint256[48] | 253 | 0 | 1536 | ProverSet | -╰------------------+--------------------------+------+--------+-------+--------------------------------------------------╯ - -## GuardianProver - -╭-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| guardianIds | mapping(address => uint256) | 251 | 0 | 32 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| approvals | mapping(uint256 => mapping(bytes32 => uint256)) | 252 | 0 | 32 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| guardians | address[] | 253 | 0 | 32 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| version | uint32 | 254 | 0 | 4 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| minGuardians | uint32 | 254 | 4 | 4 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| provingAutoPauseEnabled | bool | 254 | 8 | 1 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| latestProofHash | mapping(uint256 => mapping(uint256 => bytes32)) | 255 | 0 | 32 | GuardianProver | -|-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------| -| \_\_gap | uint256[45] | 256 | 0 | 1440 | GuardianProver | -╰-------------------------+-------------------------------------------------+------+--------+-------+------------------------------------------------------------╯ - - - -## ForkManager - -╭---------------+-------------+------+--------+-------+---------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=========================================================================================================+ -| _initialized | uint8 | 0 | 0 | 1 | ForkManager | -|---------------+-------------+------+--------+-------+---------------------------------------------------| -| _initializing | bool | 0 | 1 | 1 | ForkManager | -|---------------+-------------+------+--------+-------+---------------------------------------------------| -| __gap | uint256[50] | 1 | 0 | 1600 | ForkManager | -|---------------+-------------+------+--------+-------+---------------------------------------------------| -| _owner | address | 51 | 0 | 20 | ForkManager | -|---------------+-------------+------+--------+-------+---------------------------------------------------| -| __gap | uint256[49] | 52 | 0 | 1568 | ForkManager | -|---------------+-------------+------+--------+-------+---------------------------------------------------| -| _pendingOwner | address | 101 | 0 | 20 | ForkManager | -|---------------+-------------+------+--------+-------+---------------------------------------------------| -| __gap | uint256[49] | 102 | 0 | 1568 | ForkManager | -╰---------------+-------------+------+--------+-------+---------------------------------------------------╯ - - diff --git a/packages/protocol/contract_layout_layer2.md b/packages/protocol/contract_layout_layer2.md index 1733909fe13..e69de29bb2d 100644 --- a/packages/protocol/contract_layout_layer2.md +++ b/packages/protocol/contract_layout_layer2.md @@ -1,825 +0,0 @@ -## ERC1155Vault - -╭--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===============================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[48] | 303 | 0 | 1536 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[50] | 351 | 0 | 1600 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[50] | 401 | 0 | 1600 | ERC1155Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_\_gap | uint256[50] | 451 | 0 | 1600 | ERC1155Vault | -╰--------------------+------------------------------------------------------+------+--------+-------+-----------------------------------------------------------╯ - -## ERC20Vault - -╭--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===========================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| bridgedToCanonical | mapping(address => struct ERC20Vault.CanonicalERC20) | 301 | 0 | 32 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| btokenDenylist | mapping(address => bool) | 303 | 0 | 32 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| lastMigrationStart | mapping(uint256 => mapping(address => uint256)) | 304 | 0 | 32 | ERC20Vault | -|--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[46] | 305 | 0 | 1472 | ERC20Vault | -╰--------------------+------------------------------------------------------+------+--------+-------+-------------------------------------------------------╯ - -## ERC721Vault - -╭--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=============================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[48] | 303 | 0 | 1536 | ERC721Vault | -|--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_\_gap | uint256[50] | 351 | 0 | 1600 | ERC721Vault | -╰--------------------+------------------------------------------------------+------+--------+-------+---------------------------------------------------------╯ - -## BridgedERC20 - -╭------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+========================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_balances | mapping(address => uint256) | 251 | 0 | 32 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_totalSupply | uint256 | 253 | 0 | 32 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_name | string | 254 | 0 | 32 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_symbol | string | 255 | 0 | 32 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[45] | 256 | 0 | 1440 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| srcToken | address | 301 | 0 | 20 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **srcDecimals | uint8 | 301 | 20 | 1 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| srcChainId | uint256 | 302 | 0 | 32 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| migratingAddress | address | 303 | 0 | 20 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| migratingInbound | bool | 303 | 20 | 1 | BridgedERC20 | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_\_gap | uint256[47] | 304 | 0 | 1504 | BridgedERC20 | -╰------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------╯ - -## BridgedERC20V2 - -╭------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_balances | mapping(address => uint256) | 251 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_totalSupply | uint256 | 253 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_name | string | 254 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_symbol | string | 255 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[45] | 256 | 0 | 1440 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| srcToken | address | 301 | 0 | 20 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **srcDecimals | uint8 | 301 | 20 | 1 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| srcChainId | uint256 | 302 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| migratingAddress | address | 303 | 0 | 20 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| migratingInbound | bool | 303 | 20 | 1 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[47] | 304 | 0 | 1504 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_hashedName | bytes32 | 351 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_hashedVersion | bytes32 | 352 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_name | string | 353 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_version | string | 354 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[48] | 355 | 0 | 1536 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | BridgedERC20V2 | -|------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_\_gap | uint256[49] | 404 | 0 | 1568 | BridgedERC20V2 | -╰------------------+--------------------------------------------------------+------+--------+-------+---------------------------------------------------------------╯ - -## BridgedERC721 - -╭--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=========================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_name | string | 301 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_symbol | string | 302 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_owners | mapping(uint256 => address) | 303 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_balances | mapping(address => uint256) | 304 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_tokenApprovals | mapping(uint256 => address) | 305 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_operatorApprovals | mapping(address => mapping(address => bool)) | 306 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| **gap | uint256[44] | 307 | 0 | 1408 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| srcToken | address | 351 | 0 | 20 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| srcChainId | uint256 | 352 | 0 | 32 | BridgedERC721 | -|--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------| -| \_\_gap | uint256[48] | 353 | 0 | 1536 | BridgedERC721 | -╰--------------------+----------------------------------------------+------+--------+-------+-------------------------------------------------------------╯ - -## BridgedERC1155 - -╭--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==============================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[50] | 251 | 0 | 1600 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_balances | mapping(uint256 => mapping(address => uint256)) | 301 | 0 | 32 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_operatorApprovals | mapping(address => mapping(address => bool)) | 302 | 0 | 32 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_uri | string | 303 | 0 | 32 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| **gap | uint256[47] | 304 | 0 | 1504 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| srcToken | address | 351 | 0 | 20 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| srcChainId | uint256 | 352 | 0 | 32 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| symbol | string | 353 | 0 | 32 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| name | string | 354 | 0 | 32 | BridgedERC1155 | -|--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------| -| \_\_gap | uint256[46] | 355 | 0 | 1472 | BridgedERC1155 | -╰--------------------+-------------------------------------------------+------+--------+-------+---------------------------------------------------------------╯ - -## Bridge - -╭------------------+-----------------------------------------+------+--------+-------+-------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| \_owner | address | 51 | 0 | 20 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| addressManager | address | 151 | 0 | 20 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **reserved1 | uint64 | 251 | 0 | 8 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| nextMessageId | uint64 | 251 | 8 | 8 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| messageStatus | mapping(bytes32 => enum IBridge.Status) | 252 | 0 | 32 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **ctx | struct IBridge.Context | 253 | 0 | 64 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **reserved2 | uint256 | 255 | 0 | 32 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| **reserved3 | uint256 | 256 | 0 | 32 | Bridge | -|------------------+-----------------------------------------+------+--------+-------+-------------------------------------------| -| \_\_gap | uint256[44] | 257 | 0 | 1408 | Bridge | -╰------------------+-----------------------------------------+------+--------+-------+-------------------------------------------╯ - -## QuotaManager - -╭------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| tokenQuota | mapping(address => struct QuotaManager.Quota) | 251 | 0 | 32 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| quotaPeriod | uint24 | 252 | 0 | 3 | QuotaManager | -|------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------| -| \_\_gap | uint256[48] | 253 | 0 | 1536 | QuotaManager | -╰------------------+-----------------------------------------------+------+--------+-------+-------------------------------------------------------╯ - -## AddressManager - -╭------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+========================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **addresses | mapping(uint256 => mapping(bytes32 => address)) | 251 | 0 | 32 | AddressManager | -|------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------| -| **gap | uint256[49] | 252 | 0 | 1568 | AddressManager | -╰------------------+-------------------------------------------------+------+--------+-------+-----------------------------------------------------------╯ - -## AddressResolver - -╭----------------+-------------+------+--------+-------+-------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+====================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | AddressResolver | -|----------------+-------------+------+--------+-------+-------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | AddressResolver | -|----------------+-------------+------+--------+-------+-------------------------------------------------------------| -| addressManager | address | 0 | 2 | 20 | AddressResolver | -|----------------+-------------+------+--------+-------+-------------------------------------------------------------| -| \_\_gap | uint256[49] | 1 | 0 | 1568 | AddressResolver | -╰----------------+-------------+------+--------+-------+-------------------------------------------------------------╯ - -## EssentialContract - -╭------------------+-------------+------+--------+-------+-----------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==========================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | EssentialContract | -|------------------+-------------+------+--------+-------+-----------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | EssentialContract | -╰------------------+-------------+------+--------+-------+-----------------------------------------------------------------╯ - -## SignalService - -╭------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+====================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| topBlockId | mapping(uint64 => mapping(bytes32 => uint64)) | 251 | 0 | 32 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| isAuthorized | mapping(address => bool) | 252 | 0 | 32 | SignalService | -|------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------| -| \_\_gap | uint256[48] | 253 | 0 | 1536 | SignalService | -╰------------------+-----------------------------------------------+------+--------+-------+---------------------------------------------------------╯ - -## BridgedTaikoToken - -╭-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+==============================================================================================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **slots_previously_used_by_ERC20SnapshotUpgradeable | uint256[50] | 251 | 0 | 1600 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_balances | mapping(address => uint256) | 301 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_allowances | mapping(address => mapping(address => uint256)) | 302 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_totalSupply | uint256 | 303 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_name | string | 304 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_symbol | string | 305 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **gap | uint256[45] | 306 | 0 | 1440 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_hashedName | bytes32 | 351 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_hashedVersion | bytes32 | 352 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_name | string | 353 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_version | string | 354 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **gap | uint256[48] | 355 | 0 | 1536 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 404 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **gap | uint256[49] | 405 | 0 | 1568 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_delegates | mapping(address => address) | 454 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 455 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| \_totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 456 | 0 | 32 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **gap | uint256[47] | 457 | 0 | 1504 | BridgedTaikoToken | -|-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------| -| **gap | uint256[50] | 504 | 0 | 1600 | BridgedTaikoToken | -╰-----------------------------------------------------+---------------------------------------------------------------+------+--------+-------+----------------------------------------------------------------╯ - -## DelegateOwner - -╭------------------+-------------+------+--------+-------+--------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===========================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| remoteChainId | uint64 | 251 | 0 | 8 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| admin | address | 251 | 8 | 20 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| nextTxId | uint64 | 252 | 0 | 8 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| remoteOwner | address | 252 | 8 | 20 | DelegateOwner | -|------------------+-------------+------+--------+-------+--------------------------------------------------| -| \_\_gap | uint256[48] | 253 | 0 | 1536 | DelegateOwner | -╰------------------+-------------+------+--------+-------+--------------------------------------------------╯ - -## TaikoL2 - -╭------------------+-----------------------------+------+--------+-------+--------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=====================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| \_owner | address | 51 | 0 | 20 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| addressManager | address | 151 | 0 | 20 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| \_blockhashes | mapping(uint256 => bytes32) | 251 | 0 | 32 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| publicInputHash | bytes32 | 252 | 0 | 32 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| parentGasExcess | uint64 | 253 | 0 | 8 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| lastSyncedBlock | uint64 | 253 | 8 | 8 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| parentTimestamp | uint64 | 253 | 16 | 8 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| parentGasTarget | uint64 | 253 | 24 | 8 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| l1ChainId | uint64 | 254 | 0 | 8 | TaikoL2 | -|------------------+-----------------------------+------+--------+-------+--------------------------------------------| -| \_\_gap | uint256[46] | 255 | 0 | 1472 | TaikoL2 | -╰------------------+-----------------------------+------+--------+-------+--------------------------------------------╯ - -## HeklaTaikoL2 - -╭------------------+-----------------------------+------+--------+-------+------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+===============================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| \_blockhashes | mapping(uint256 => bytes32) | 251 | 0 | 32 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| publicInputHash | bytes32 | 252 | 0 | 32 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| parentGasExcess | uint64 | 253 | 0 | 8 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| lastSyncedBlock | uint64 | 253 | 8 | 8 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| parentTimestamp | uint64 | 253 | 16 | 8 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| parentGasTarget | uint64 | 253 | 24 | 8 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| l1ChainId | uint64 | 254 | 0 | 8 | HeklaTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------| -| \_\_gap | uint256[46] | 255 | 0 | 1472 | HeklaTaikoL2 | -╰------------------+-----------------------------+------+--------+-------+------------------------------------------------------╯ - -## MainnetTaikoL2 - -╭------------------+-----------------------------+------+--------+-------+------------------------------------------------------------╮ -| Name | Type | Slot | Offset | Bytes | Contract | -+=====================================================================================================================================+ -| \_initialized | uint8 | 0 | 0 | 1 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| \_initializing | bool | 0 | 1 | 1 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[50] | 1 | 0 | 1600 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| \_owner | address | 51 | 0 | 20 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[49] | 52 | 0 | 1568 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| \_pendingOwner | address | 101 | 0 | 20 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[49] | 102 | 0 | 1568 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| addressManager | address | 151 | 0 | 20 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[49] | 152 | 0 | 1568 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| **reentry | uint8 | 201 | 0 | 1 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| **paused | uint8 | 201 | 1 | 1 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| **lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| **gap | uint256[49] | 202 | 0 | 1568 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| \_blockhashes | mapping(uint256 => bytes32) | 251 | 0 | 32 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| publicInputHash | bytes32 | 252 | 0 | 32 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| parentGasExcess | uint64 | 253 | 0 | 8 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| lastSyncedBlock | uint64 | 253 | 8 | 8 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| parentTimestamp | uint64 | 253 | 16 | 8 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| parentGasTarget | uint64 | 253 | 24 | 8 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| l1ChainId | uint64 | 254 | 0 | 8 | MainnetTaikoL2 | -|------------------+-----------------------------+------+--------+-------+------------------------------------------------------------| -| \_\_gap | uint256[46] | 255 | 0 | 1472 | MainnetTaikoL2 | -╰------------------+-----------------------------+------+--------+-------+------------------------------------------------------------╯ diff --git a/packages/protocol/contracts/layer1/based/TaikoL1.sol b/packages/protocol/contracts/layer1/based/TaikoL1.sol index 1ce30755442..0a1175e5fce 100644 --- a/packages/protocol/contracts/layer1/based/TaikoL1.sol +++ b/packages/protocol/contracts/layer1/based/TaikoL1.sol @@ -25,13 +25,6 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { uint256[50] private __gap; - /// @dev Emitted to assist with future gas optimizations. - /// @param isProposeBlock True if measuring gas for proposing a block, false if measuring gas - /// for proving a block. - /// @param gasUsed The average gas used per block, including verifications. - /// @param batchSize The number of blocks proposed or proved. - event DebugGasPerBlock(bool isProposeBlock, uint256 gasUsed, uint256 batchSize); - error L1_FORK_HEIGHT_ERROR(); modifier whenProvingNotPaused() { @@ -44,16 +37,6 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { emit StateVariablesUpdated(state.slotB); } - modifier measureGasUsed(bool _isProposeBlock, uint256 _batchSize) { - uint256 gas = gasleft(); - _; - unchecked { - if (_batchSize > 0) { - emit DebugGasPerBlock(_isProposeBlock, gas - gasleft() / _batchSize, _batchSize); - } - } - } - /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. /// @param _rollupAddressManager The address of the {AddressManager} contract. @@ -90,7 +73,6 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { bytes calldata _txList ) external - measureGasUsed(true, 1) whenNotPaused nonReentrant emitEventForClient @@ -106,7 +88,6 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { bytes[] calldata _txListArr ) external - measureGasUsed(true, _paramsArr.length) whenNotPaused nonReentrant emitEventForClient @@ -122,7 +103,6 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { bytes calldata _input ) external - measureGasUsed(false, 1) whenNotPaused whenProvingNotPaused nonReentrant @@ -138,7 +118,6 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { bytes calldata _batchProof ) external - measureGasUsed(false, _blockIds.length) whenNotPaused whenProvingNotPaused nonReentrant diff --git a/packages/protocol/contracts/layer1/mainnet/addrcache/RollupAddressCache.sol b/packages/protocol/contracts/layer1/mainnet/addrcache/RollupAddressCache.sol index 3f92804e7e3..003cc333e52 100644 --- a/packages/protocol/contracts/layer1/mainnet/addrcache/RollupAddressCache.sol +++ b/packages/protocol/contracts/layer1/mainnet/addrcache/RollupAddressCache.sol @@ -37,7 +37,7 @@ contract RollupAddressCache is AddressCache { return (true, 0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a); } if (_name == LibStrings.B_TIER_ROUTER) { - return (true, 0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0); + return (true, 0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66); } if (_name == LibStrings.B_TIER_SGX) { return (true, 0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81); diff --git a/packages/protocol/contracts/layer1/mainnet/rollup/MainnetTierRouter.sol b/packages/protocol/contracts/layer1/mainnet/rollup/MainnetTierRouter.sol index 0499226f1ce..331a3bee38f 100644 --- a/packages/protocol/contracts/layer1/mainnet/rollup/MainnetTierRouter.sol +++ b/packages/protocol/contracts/layer1/mainnet/rollup/MainnetTierRouter.sol @@ -35,8 +35,8 @@ contract MainnetTierRouter is ITierRouter, TierProviderBase { /// @inheritdoc ITierProvider function getMinTier(address _proposer, uint256 _rand) public view override returns (uint16) { if (_proposer == DAO_FALLBACK_PROPOSER) { - if (_rand % 200 == 0) return LibTiers.TIER_ZKVM_RISC0; - else if (_rand % 40 == 1) return LibTiers.TIER_ZKVM_SP1; + if (_rand % 1000 == 0) return LibTiers.TIER_ZKVM_RISC0; + else if (_rand % 1000 < 99) return LibTiers.TIER_ZKVM_SP1; else return LibTiers.TIER_SGX; } return LibTiers.TIER_SGX; diff --git a/packages/protocol/deployments/mainnet-contract-logs-L1.md b/packages/protocol/deployments/mainnet-contract-logs-L1.md index e084844b82d..89b083c9496 100644 --- a/packages/protocol/deployments/mainnet-contract-logs-L1.md +++ b/packages/protocol/deployments/mainnet-contract-logs-L1.md @@ -175,14 +175,14 @@ - ens: `ram.based.taiko.eth` - proxy: `0x579f40D0BE111b823962043702cabe6Aaa290780` -- impl: `0x52CA3c5566d779b3c6bb5c4f760Ea39E294Fc788` +- impl: `0x0079a79E5d8DDA67029051d505E5A11DE279B36D` - names: - bond_token: `0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800` - taiko_token: `0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800` - signal_service: `0x9e0a24964e5397B566c1ed39258e21aB5E35C77C` - bridge: `0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC` - taiko: `0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a` - - tier_router: `0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0` + - tier_router: `0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66` - tier_sgx: `0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81` - risc0_groth16_verifier: `0xcF706D99C265fC2349AE43c5f6BFD7931FE5308D` - tier_zkvm_risc0: `0x55902b2D3DF2A65370A89C86Ae9dd71Ecd508edc` @@ -217,6 +217,7 @@ - upgraded from `0x3202Fc255aE09F91DbbD5b000b87dA4A2E04eE37` to `0x190D5d50D98D2202a618f75B2fD9986e60E096be` @commit`4fd7b59` @tx`0xf26d0526aa4b8225c603720ce0dc016803188b959c50677d5446087d1f2c4e60` - upgraded from `0x190D5d50D98D2202a618f75B2fD9986e60E096be` to `0x6D8e6e1a061791AD17A55De5e15a111c58f6Fb3D` @commit`2625c60` @tx`0x5d46840df79d8df508880675e7ea549e9b46137f597ca520c3e0c979439441d1` - upgraded from `0x6D8e6e1a061791AD17A55De5e15a111c58f6Fb3D` to `0x52CA3c5566d779b3c6bb5c4f760Ea39E294Fc788` @commit`9ae9a5e` @tx`0x43353a74df973d8f6a379b5c8815ac80935a5099f8ab93a4aa204eb5ef2c663e` + - upgraded from `0x52CA3c5566d779b3c6bb5c4f760Ea39E294Fc788` to `0x0079a79E5d8DDA67029051d505E5A11DE279B36D` @commit`06128e8` @tx`0xe66aba9f8bfcd86dc0ae32416862ca61a51c47f8ec747799e65f155ef27eeb20` #### taikoL1 @@ -243,16 +244,20 @@ - Upgrade to `0x4229d14F520848aa83760Cf748abEB8A69cdaB2d` @commit`9345f14` @tx`0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd` - Upgrade to `0xA3E75eDA1Be2114816f388A5cF53EbA142DCDB17` @commit`ea0158f` @tx`0x78ca7c7d9c7e5aa9c5e6ab80e0229289a8d3bc8df2c2b9ba6baa74a0f60a0703` - Upgrade to `0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B` @commit`ea0158f` with new `RollupAddressManagerCache` @commit `9ae9a5e` @tx`0x5eb57ab352b3e3c1ddbc3fe468d582901b88c6a137ce49b0d70857d5218d626d` + - Upgrade to `0xb74A66b6CF50AD63E29669F0BDE4354E11758162` @commit`06128e8` @tx`0xe66aba9f8bfcd86dc0ae32416862ca61a51c47f8ec747799e65f155ef27eeb20` + - Upgrade to `0xd4896d4537c6425aC5d89B9f122d4E4ac4D65e1c` @commit`ea0158f` with new `RollupAddressManagerCache` @commit `7394458` @tx`0x9c2f36af40c0004110041fc45d980b73b0c8dde8064713a55aeb6f69fca77a99` + - Upgrade to `0xe7c4B445D3C7C8E4D68afb85A068F9fAa18e9A5B` @commit`ea0158f` with new `RollupAddressManagerCache` @commit `9ae9a5e` @tx`0x5eb57ab352b3e3c1ddbc3fe468d582901b88c6a137ce49b0d70857d5218d626d` #### tier_router -- impl: `0x394E30d83d020469a1F8b16E89D7fD5FdB1935b0` +- impl: `0x8a4c692F12d3a9750E744A4CE24a1d351bE52E66` - logs: - deployed on Oct 24, 2024 @commit`7334b1d` - deployed on Nov 1, 2024 @commit`f4f4796` - deployed on Nov 2, 2024 @commit`9182fba` - deployed on Nov 8, 2024 @commit`1fee7bb` without changes in [PR #18371](https://github.com/taikoxyz/taiko-mono/pull/18371) - deployed on Nov 10, 2024 @commit`f24a908` without changes in [PR #18371](https://github.com/taikoxyz/taiko-mono/pull/18371) + - deployed on Dec 20, 2024 @commit`06128e8` without changes in [PR #18371](https://github.com/taikoxyz/taiko-mono/pull/18371) #### tier_sgx @@ -395,7 +400,7 @@ - ens: `labprover.taiko.eth` - proxy: `0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9` -- impl: `0x3022Ed0346CCE0c08268c8ad081458AfD95E8763` +- impl: `0xd0d3f025D83D7122de7eC43e86331C57c8A4F30B` - enabled provers: - `0x000000629FBCf27A347d1AEbA658435230D74a5f` - `0x000000633b68f5d8d3a86593ebb815b4663bcbe0` @@ -412,12 +417,13 @@ - upgraded from `0x518845daA8870bE2C59E49620Fc262AD48953C9a` to `0x74828E5fe803072AF9Df512B3911B4223572D652` @commit`bb2abc5` @tx`0xc1f91c375713f601b99cf6d2cdb80c129e036a7c9ec5f75871c4d13216dbbb5c` - upgraded from `0x74828E5fe803072AF9Df512B3911B4223572D652` to `0xCE5a119479337a153CA3bd1b2bF9755c78F2B15A` @commit`be34059` @tx`0x170617251f2345eda4bcbd29e316caa0b014602a44244c60b963382ac7da7748` - upgraded from `0xCE5a119479337a153CA3bd1b2bF9755c78F2B15A` to `0x3022Ed0346CCE0c08268c8ad081458AfD95E8763` @commit`9345f14` @tx`0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd` + - upgraded from `0x3022Ed0346CCE0c08268c8ad081458AfD95E8763` to `0xd0d3f025D83D7122de7eC43e86331C57c8A4F30B` @commit`06128e8` @tx`0xe66aba9f8bfcd86dc0ae32416862ca61a51c47f8ec747799e65f155ef27eeb20` ### labcontester.taiko.eth - ens: `labcontester.taiko.eth` - proxy: `0xa01d464ca3982DAa97B19fa7F8a232eB11A9DDb3` -- impl: `0x3022Ed0346CCE0c08268c8ad081458AfD95E8763` +- impl: `0xd0d3f025D83D7122de7eC43e86331C57c8A4F30B` - enabled provers: - `0x00000027F51a57E7FcBC4b481d15fcE5BE68b30B` - logs: @@ -428,3 +434,4 @@ - upgraded from `0x518845daA8870bE2C59E49620Fc262AD48953C9a` to `0x74828E5fe803072AF9Df512B3911B4223572D652` @commit`bb2abc5` @tx`0xc1f91c375713f601b99cf6d2cdb80c129e036a7c9ec5f75871c4d13216dbbb5c` - upgraded from `0x74828E5fe803072AF9Df512B3911B4223572D652` to `0xCE5a119479337a153CA3bd1b2bF9755c78F2B15A` @commit`be34059` @tx`0x170617251f2345eda4bcbd29e316caa0b014602a44244c60b963382ac7da7748` - upgraded from `0xCE5a119479337a153CA3bd1b2bF9755c78F2B15A` to `0x3022Ed0346CCE0c08268c8ad081458AfD95E8763` @commit`9345f14` @tx`0x13ea4d044a313cf667d16514465e6b96227ef7198bda7b19c70eefee44e9bccd` + - upgraded from `0x3022Ed0346CCE0c08268c8ad081458AfD95E8763` to `0xd0d3f025D83D7122de7eC43e86331C57c8A4F30B` @commit`06128e8` @tx`0xe66aba9f8bfcd86dc0ae32416862ca61a51c47f8ec747799e65f155ef27eeb20` diff --git a/packages/protocol/package.json b/packages/protocol/package.json index f8a526c81c2..cf9f5272977 100644 --- a/packages/protocol/package.json +++ b/packages/protocol/package.json @@ -1,6 +1,6 @@ { "name": "@taiko/protocol", - "version": "1.10.0", + "version": "1.11.0", "private": true, "scripts": { "buildMerkle": "ts-node ./utils/airdrop/buildMerkleTree.ts ./utils/airdrop/airdrop_db/example_claimList.json", diff --git a/packages/protocol/script/gen-layouts.sh b/packages/protocol/script/gen-layouts.sh index a6a774285b4..f3e74433b8d 100755 --- a/packages/protocol/script/gen-layouts.sh +++ b/packages/protocol/script/gen-layouts.sh @@ -92,7 +92,7 @@ for contract in "${contracts[@]}"; do echo "inspect ${contract}" echo "## ${contract}" >> $output_file - FOUNDRY_PROFILE=${profile} forge inspect -C ./contracts/${profile} -o ./out/${profile} ${contract} storagelayout --pretty >> $output_file + FORGE_DISPLAY=plain FOUNDRY_PROFILE=${profile} forge inspect -C ./contracts/${profile} -o ./out/${profile} ${contract} storagelayout --pretty >> $output_file echo "" >> $output_file done @@ -103,3 +103,11 @@ if [[ "$(uname -s)" == "Darwin" ]]; then else sed -i "$sed_pattern" "$output_file" fi + +# Use awk to remove the last column and write to a temporary file +temp_file="${output_file}_temp" +while IFS= read -r line; do + # Remove everything behind the second-to-last "|" + echo "$line" | sed -E 's/\|[^|]*\|[^|]*$/|/' +done < "$output_file" > "$temp_file" +mv "$temp_file" "$output_file" \ No newline at end of file diff --git a/packages/relayer/docs/docs.go b/packages/relayer/docs/docs.go index 622106df9d1..dde35e98426 100644 --- a/packages/relayer/docs/docs.go +++ b/packages/relayer/docs/docs.go @@ -17,7 +17,7 @@ const docTemplate = `{ }, "license": { "name": "MIT", - "url": "https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE.md" + "url": "https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE" }, "version": "{{.Version}}" }, diff --git a/packages/relayer/docs/swagger.json b/packages/relayer/docs/swagger.json index 028b3a5e083..42ff334167b 100644 --- a/packages/relayer/docs/swagger.json +++ b/packages/relayer/docs/swagger.json @@ -10,7 +10,7 @@ }, "license": { "name": "MIT", - "url": "https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE.md" + "url": "https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE" }, "version": "1.0" }, diff --git a/packages/relayer/docs/swagger.yaml b/packages/relayer/docs/swagger.yaml index 8e35602519f..1760c3aab6f 100644 --- a/packages/relayer/docs/swagger.yaml +++ b/packages/relayer/docs/swagger.yaml @@ -47,7 +47,7 @@ info: url: https://community.taiko.xyz/ license: name: MIT - url: https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE.md + url: https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE termsOfService: http://swagger.io/terms/ title: Taiko Bridge Relayer API version: "1.0" diff --git a/packages/relayer/pkg/http/server.go b/packages/relayer/pkg/http/server.go index c3739197f9f..b64dc6e74d3 100644 --- a/packages/relayer/pkg/http/server.go +++ b/packages/relayer/pkg/http/server.go @@ -38,7 +38,7 @@ type ethClient interface { // @contact.email info@taiko.xyz // @license.name MIT -// @license.url https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE.md +// @license.url https://github.com/taikoxyz/taiko-mono/blob/main/LICENSE // @host relayer.hekla.taiko.xyz // Server represents an relayer http server instance. diff --git a/packages/taiko-client/CHANGELOG.md b/packages/taiko-client/CHANGELOG.md index 99eceb0e43e..bf15b7faff9 100644 --- a/packages/taiko-client/CHANGELOG.md +++ b/packages/taiko-client/CHANGELOG.md @@ -1,5 +1,60 @@ # Changelog +## [0.40.0](https://github.com/taikoxyz/taiko-mono/compare/taiko-client-v0.39.2...taiko-client-v0.40.0) (2024-12-23) + + +### Features + +* **protocol:** propose a batch blocks conditionally ([#18570](https://github.com/taikoxyz/taiko-mono/issues/18570)) ([e846f62](https://github.com/taikoxyz/taiko-mono/commit/e846f6289fea0b046ddcfcdfaf46f3727efbdf11)) +* **taiko-client:** add chain ID to `TryDecompress()` ([#18444](https://github.com/taikoxyz/taiko-mono/issues/18444)) ([10d99d5](https://github.com/taikoxyz/taiko-mono/commit/10d99d50d3866a6e233d9e3749ea5eb753335815)) +* **taiko-client:** client changes based on [#18150](https://github.com/taikoxyz/taiko-mono/issues/18150) ([#18350](https://github.com/taikoxyz/taiko-mono/issues/18350)) ([ddc6473](https://github.com/taikoxyz/taiko-mono/commit/ddc647327e8d58f5a2def5b902ad06800982544b)) +* **taiko-client:** compatible changes for `lastProposedIn` ([#18442](https://github.com/taikoxyz/taiko-mono/issues/18442)) ([28f32a7](https://github.com/taikoxyz/taiko-mono/commit/28f32a790cc680ecb3e6345221e4183af4f34b2e)) +* **taiko-client:** enable proof aggregation (batch proofs) ([#18163](https://github.com/taikoxyz/taiko-mono/issues/18163)) ([7642961](https://github.com/taikoxyz/taiko-mono/commit/7642961a9031840183f4d00d0a4c19fdb8a68058)) +* **taiko-client:** improve `ProofBuffer` ([#18627](https://github.com/taikoxyz/taiko-mono/issues/18627)) ([c386589](https://github.com/taikoxyz/taiko-mono/commit/c3865896523712afa108be810e75b511e7ecc0c4)) +* **taiko-client:** make p2p-sync required ([#18571](https://github.com/taikoxyz/taiko-mono/issues/18571)) ([de92b28](https://github.com/taikoxyz/taiko-mono/commit/de92b28c03b747845a8a1aa26991307d1ed47fd0)) +* **taiko-client:** revert pr 18442 ([#18450](https://github.com/taikoxyz/taiko-mono/issues/18450)) ([0706f0a](https://github.com/taikoxyz/taiko-mono/commit/0706f0aee9c318d8de298f98480a46de6337937c)) +* **taiko-client:** update Go contract bindings ([#18381](https://github.com/taikoxyz/taiko-mono/issues/18381)) ([71cfc5c](https://github.com/taikoxyz/taiko-mono/commit/71cfc5ce1ef06dcf099a4ce9b22bea6100406148)) +* **taiko-client:** update Go contract bindings ([#18384](https://github.com/taikoxyz/taiko-mono/issues/18384)) ([8dd14a1](https://github.com/taikoxyz/taiko-mono/commit/8dd14a1b4b21ce77ed3aac935b1d2c950e11e729)) +* **taiko-client:** update Go contract bindings ([#18462](https://github.com/taikoxyz/taiko-mono/issues/18462)) ([bc0ee99](https://github.com/taikoxyz/taiko-mono/commit/bc0ee9952234cc6722d3a0e9d9ebd92bca706999)) + + +### Bug Fixes + +* **taiko-client:** valid status check in `BatchGetBlocksProofStatus` ([#18595](https://github.com/taikoxyz/taiko-mono/issues/18595)) ([ec5f599](https://github.com/taikoxyz/taiko-mono/commit/ec5f5999750f70efe58cc061c5856250dcef5ce2)) + + +### Chores + +* **taiko-client:** add `BaseFeeConfig.SharingPctg` to mainnet protocol config ([#18341](https://github.com/taikoxyz/taiko-mono/issues/18341)) ([75d14a7](https://github.com/taikoxyz/taiko-mono/commit/75d14a7afac83b4578a3c32456a28ae70373d5cb)) +* **taiko-client:** update CI badge and path ([#18441](https://github.com/taikoxyz/taiko-mono/issues/18441)) ([6aef03e](https://github.com/taikoxyz/taiko-mono/commit/6aef03e87eaf3cdbfb7637bd6122525f75c611f0)) +* **taiko-client:** update docker-compose config ([#18330](https://github.com/taikoxyz/taiko-mono/issues/18330)) ([74e4ca4](https://github.com/taikoxyz/taiko-mono/commit/74e4ca4aaef07af4958a7b61c95e385022b1cf3c)) +* **taiko-client:** update Go contract bindings generation script ([#18324](https://github.com/taikoxyz/taiko-mono/issues/18324)) ([4f698a0](https://github.com/taikoxyz/taiko-mono/commit/4f698a02bb1714caf527629a637323a9964cdb11)) + + +### Code Refactoring + +* **taiko-client:** move `utils` package from `internal/` to `pkg/` ([#18516](https://github.com/taikoxyz/taiko-mono/issues/18516)) ([b674857](https://github.com/taikoxyz/taiko-mono/commit/b67485732832fb90849179a7a8c8093f2228eb5a)) + + +### Tests + +* **taiko-client:** fix some lint issues for `taiko-client` ([#18517](https://github.com/taikoxyz/taiko-mono/issues/18517)) ([ac7eba6](https://github.com/taikoxyz/taiko-mono/commit/ac7eba69bfe13f026bc6e08074ebaec5dcb067eb)) +* **taiko-client:** introduce TestTxPoolContentWithMinTip test case ([#18285](https://github.com/taikoxyz/taiko-mono/issues/18285)) ([d572f4c](https://github.com/taikoxyz/taiko-mono/commit/d572f4c412e59094ea9a4c5ff0b0667c9c04bd66)) +* **taiko-client:** skip `TestCheckL1ReorgToSameHeightFork` temporarily ([#18522](https://github.com/taikoxyz/taiko-mono/issues/18522)) ([385fed2](https://github.com/taikoxyz/taiko-mono/commit/385fed2ce273d131635c54e99a11704a4ed385b8)) + + +### Workflow + +* **protocol:** trigger patch release (1.10.1) ([#18358](https://github.com/taikoxyz/taiko-mono/issues/18358)) ([f4f4796](https://github.com/taikoxyz/taiko-mono/commit/f4f4796488059b02c79d6fb15170df58dd31dc4e)) +* **repo:** change to trigger hive test manually ([#18514](https://github.com/taikoxyz/taiko-mono/issues/18514)) ([63dec66](https://github.com/taikoxyz/taiko-mono/commit/63dec6695b3e330ba7bd69857743741d7608e2a4)) +* **repo:** update go mod and use random port ([#18515](https://github.com/taikoxyz/taiko-mono/issues/18515)) ([3c2e943](https://github.com/taikoxyz/taiko-mono/commit/3c2e943ab2d6ff636ad69dc7e93df34d8f549c4d)) + + +### Build + +* **deps:** bump github.com/stretchr/testify from 1.9.0 to 1.10.0 ([#18539](https://github.com/taikoxyz/taiko-mono/issues/18539)) ([79f3fab](https://github.com/taikoxyz/taiko-mono/commit/79f3fab5f1d1ec1bb4ee18afb9268b622e894780)) +* **deps:** bump golang.org/x/sync from 0.9.0 to 0.10.0 ([#18560](https://github.com/taikoxyz/taiko-mono/issues/18560)) ([3d51970](https://github.com/taikoxyz/taiko-mono/commit/3d51970aa0953bbfecaeebf76ea7e664c875c0e4)) + ## [0.39.2](https://github.com/taikoxyz/taiko-mono/compare/taiko-client-v0.39.1...taiko-client-v0.39.2) (2024-10-24) diff --git a/packages/taiko-client/README.md b/packages/taiko-client/README.md index 2f2bdd812f0..70ff96eadbe 100644 --- a/packages/taiko-client/README.md +++ b/packages/taiko-client/README.md @@ -5,7 +5,7 @@ -Taiko protocol's client software implementation in Go. Learn more about Taiko nodes with [the docs](https://docs.taiko.xyz/core-concepts/taiko-nodes/). +Taiko protocol's client software implementation in Go. Learn more about Taiko nodes with [the docs](https://docs.taiko.xyz/taiko-protocol/taiko-nodes). ## Project structure diff --git a/packages/taiko-client/cmd/flags/driver.go b/packages/taiko-client/cmd/flags/driver.go index 8d4152719ba..8f8dad3dbf1 100644 --- a/packages/taiko-client/cmd/flags/driver.go +++ b/packages/taiko-client/cmd/flags/driver.go @@ -8,6 +8,14 @@ import ( // Optional flags used by driver. var ( + P2PSync = &cli.BoolFlag{ + Name: "p2p.sync", + Usage: "Try P2P syncing blocks between L2 execution engines, " + + "will be helpful to bring a new node online quickly", + Value: false, + Category: driverCategory, + EnvVars: []string{"P2P_SYNC"}, + } P2PSyncTimeout = &cli.DurationFlag{ Name: "p2p.syncTimeout", Usage: "P2P syncing timeout, if no sync progress is made within this time span, " + @@ -19,7 +27,6 @@ var ( CheckPointSyncURL = &cli.StringFlag{ Name: "p2p.checkPointSyncUrl", Usage: "HTTP RPC endpoint of another synced L2 execution engine node", - Required: true, Category: driverCategory, EnvVars: []string{"P2P_CHECK_POINT_SYNC_URL"}, } @@ -80,6 +87,7 @@ var DriverFlags = MergeFlags(CommonFlags, []cli.Flag{ L2WSEndpoint, L2AuthEndpoint, JWTSecret, + P2PSync, P2PSyncTimeout, CheckPointSyncURL, MaxExponent, diff --git a/packages/taiko-client/cmd/flags/prover.go b/packages/taiko-client/cmd/flags/prover.go index d9c13f1ce1d..2de5bbc1422 100644 --- a/packages/taiko-client/cmd/flags/prover.go +++ b/packages/taiko-client/cmd/flags/prover.go @@ -212,7 +212,7 @@ var ( Category: proverCategory, EnvVars: []string{"PROVER_ZKVM_BATCH_SIZE"}, } - ForceProveInterval = &cli.DurationFlag{ + ForceBatchProvingInterval = &cli.DurationFlag{ Name: "prover.forceBatchProvingInterval", Usage: "Time interval to prove blocks even the number of pending proof do not exceed prover.batchSize, " + "this flag only works post Ontake fork", @@ -254,5 +254,5 @@ var ProverFlags = MergeFlags(CommonFlags, []cli.Flag{ RaikoZKVMHostEndpoint, SGXBatchSize, ZKVMBatchSize, - ForceProveInterval, + ForceBatchProvingInterval, }, TxmgrFlags) diff --git a/packages/taiko-client/driver/chain_syncer/blob/syncer_test.go b/packages/taiko-client/driver/chain_syncer/blob/syncer_test.go index 55492b03e19..5ac39a757ec 100644 --- a/packages/taiko-client/driver/chain_syncer/blob/syncer_test.go +++ b/packages/taiko-client/driver/chain_syncer/blob/syncer_test.go @@ -65,12 +65,12 @@ func (s *BlobSyncerTestSuite) TestProcessL1BlocksReorg() { func (s *BlobSyncerTestSuite) TestOnBlockProposed() { s.Nil(s.s.onBlockProposed( context.Background(), - &metadata.TaikoDataBlockMetadataLegacy{TaikoDataBlockMetadata: bindings.TaikoDataBlockMetadata{Id: 0}}, + &metadata.TaikoDataBlockMetadataOntake{TaikoDataBlockMetadataV2: bindings.TaikoDataBlockMetadataV2{Id: 0}}, func() {}, )) s.NotNil(s.s.onBlockProposed( context.Background(), - &metadata.TaikoDataBlockMetadataLegacy{TaikoDataBlockMetadata: bindings.TaikoDataBlockMetadata{Id: 1}}, + &metadata.TaikoDataBlockMetadataOntake{TaikoDataBlockMetadataV2: bindings.TaikoDataBlockMetadataV2{Id: 1}}, func() {}, )) } @@ -80,18 +80,21 @@ func (s *BlobSyncerTestSuite) TestInsertNewHead() { s.Nil(err) l1Head, err := s.s.rpc.L1.BlockByNumber(context.Background(), nil) s.Nil(err) + protocolConfigs, err := s.s.rpc.TaikoL1.GetConfig(nil) + s.Nil(err) _, err = s.s.insertNewHead( context.Background(), - &metadata.TaikoDataBlockMetadataLegacy{ - TaikoDataBlockMetadata: bindings.TaikoDataBlockMetadata{ - Id: 1, - L1Height: l1Head.NumberU64(), - L1Hash: l1Head.Hash(), - Coinbase: common.BytesToAddress(testutils.RandomBytes(1024)), - BlobHash: testutils.RandomHash(), - Difficulty: testutils.RandomHash(), - GasLimit: utils.RandUint32(nil), - Timestamp: uint64(time.Now().Unix()), + &metadata.TaikoDataBlockMetadataOntake{ + TaikoDataBlockMetadataV2: bindings.TaikoDataBlockMetadataV2{ + Id: 1, + AnchorBlockId: l1Head.NumberU64(), + AnchorBlockHash: l1Head.Hash(), + Coinbase: common.BytesToAddress(testutils.RandomBytes(1024)), + BlobHash: testutils.RandomHash(), + Difficulty: testutils.RandomHash(), + GasLimit: utils.RandUint32(nil), + Timestamp: uint64(time.Now().Unix()), + BaseFeeConfig: protocolConfigs.BaseFeeConfig, }, Log: types.Log{ BlockNumber: l1Head.Number().Uint64(), diff --git a/packages/taiko-client/driver/chain_syncer/chain_syncer.go b/packages/taiko-client/driver/chain_syncer/chain_syncer.go index 9f9d07bf8d4..5402b5766f6 100644 --- a/packages/taiko-client/driver/chain_syncer/chain_syncer.go +++ b/packages/taiko-client/driver/chain_syncer/chain_syncer.go @@ -32,6 +32,10 @@ type L2ChainSyncer struct { // Sync mode syncMode string + + // If this flag is activated, will try P2P beacon sync if current node is behind of the protocol's + // the latest verified block head + p2pSync bool } // New creates a new chain syncer instance. @@ -39,6 +43,7 @@ func New( ctx context.Context, rpc *rpc.Client, state *state.State, + p2pSync bool, p2pSyncTimeout time.Duration, maxRetrieveExponent uint64, blobServerEndpoint *url.URL, @@ -73,6 +78,7 @@ func New( blobSyncer: blobSyncer, progressTracker: tracker, syncMode: syncMode, + p2pSync: p2pSync, }, nil } @@ -98,6 +104,7 @@ func (s *L2ChainSyncer) Sync() error { if s.progressTracker.Triggered() { log.Info( "Switch to insert pending blocks one by one", + "p2pEnabled", s.p2pSync, "p2pOutOfSync", s.progressTracker.OutOfSync(), ) @@ -163,12 +170,13 @@ func (s *L2ChainSyncer) AheadOfHeadToSync(heightToSync uint64) bool { // needNewBeaconSyncTriggered checks whether the current L2 execution engine needs to trigger // another new beacon sync, the following conditions should be met: -// 1. The protocol's latest verified block head is not zero. -// 2. The L2 execution engine's chain is behind of the protocol's latest verified block head. -// 3. The L2 execution engine's chain has met a sync timeout issue. +// 1. The `P2PSync` flag is set. +// 2. The protocol's latest verified block head is not zero. +// 3. The L2 execution engine's chain is behind of the protocol's latest verified block head. +// 4. The L2 execution engine's chain has met a sync timeout issue. func (s *L2ChainSyncer) needNewBeaconSyncTriggered() (uint64, bool, error) { // If the flag is not set or there was a finished beacon sync, we simply return false. - if s.progressTracker.Finished() { + if !s.p2pSync || s.progressTracker.Finished() { return 0, false, nil } diff --git a/packages/taiko-client/driver/chain_syncer/chain_syncer_test.go b/packages/taiko-client/driver/chain_syncer/chain_syncer_test.go index f18e10b7b23..5327317f02e 100644 --- a/packages/taiko-client/driver/chain_syncer/chain_syncer_test.go +++ b/packages/taiko-client/driver/chain_syncer/chain_syncer_test.go @@ -39,6 +39,7 @@ func (s *ChainSyncerTestSuite) SetupTest() { context.Background(), s.RPCClient, state, + false, 1*time.Hour, 0, nil, diff --git a/packages/taiko-client/driver/config.go b/packages/taiko-client/driver/config.go index b78b2f7daf4..2a184a48e80 100644 --- a/packages/taiko-client/driver/config.go +++ b/packages/taiko-client/driver/config.go @@ -17,11 +17,12 @@ import ( // Config contains the configurations to initialize a Taiko driver. type Config struct { *rpc.ClientConfig - P2PSyncTimeout time.Duration - RetryInterval time.Duration - MaxExponent uint64 - BlobServerEndpoint *url.URL - SocialScanEndpoint *url.URL + P2PSync bool + P2PSyncTimeout time.Duration + RetryInterval time.Duration + MaxExponent uint64 + BlobServerEndpoint *url.URL + SocialScanEndpoint *url.URL SoftBlockServerPort uint64 SoftBlockServerJWTSecret []byte SoftBlockServerCORSOrigins string @@ -37,10 +38,11 @@ func NewConfigFromCliContext(c *cli.Context) (*Config, error) { } var ( + p2pSync = c.Bool(flags.P2PSync.Name) l2CheckPoint = c.String(flags.CheckPointSyncURL.Name) ) - if len(l2CheckPoint) == 0 { + if p2pSync && len(l2CheckPoint) == 0 { return nil, errors.New("empty L2 check point URL") } @@ -67,8 +69,8 @@ func NewConfigFromCliContext(c *cli.Context) (*Config, error) { } } - if beaconEndpoint == "" { - return nil, errors.New("empty L1 beacon endpoint") + if beaconEndpoint == "" && blobServerEndpoint == nil && socialScanEndpoint == nil { + return nil, errors.New("empty L1 beacon endpoint, blob server and Social Scan endpoint") } var softBlockServerJWTSecret []byte @@ -93,11 +95,12 @@ func NewConfigFromCliContext(c *cli.Context) (*Config, error) { JwtSecret: string(jwtSecret), Timeout: timeout, }, - RetryInterval: c.Duration(flags.BackOffRetryInterval.Name), - P2PSyncTimeout: c.Duration(flags.P2PSyncTimeout.Name), - MaxExponent: c.Uint64(flags.MaxExponent.Name), - BlobServerEndpoint: blobServerEndpoint, - SocialScanEndpoint: socialScanEndpoint, + RetryInterval: c.Duration(flags.BackOffRetryInterval.Name), + P2PSync: p2pSync, + P2PSyncTimeout: c.Duration(flags.P2PSyncTimeout.Name), + MaxExponent: c.Uint64(flags.MaxExponent.Name), + BlobServerEndpoint: blobServerEndpoint, + SocialScanEndpoint: socialScanEndpoint, SoftBlockServerPort: c.Uint64(flags.SoftBlockServerPort.Name), SoftBlockServerJWTSecret: softBlockServerJWTSecret, SoftBlockServerCORSOrigins: c.String(flags.SoftBlockServerCORSOrigins.Name), diff --git a/packages/taiko-client/driver/config_test.go b/packages/taiko-client/driver/config_test.go index 829501f038c..f65359467dd 100644 --- a/packages/taiko-client/driver/config_test.go +++ b/packages/taiko-client/driver/config_test.go @@ -34,6 +34,7 @@ func (s *DriverTestSuite) TestNewConfigFromCliContext() { s.Equal(taikoL2, c.TaikoL2Address.String()) s.Equal(120*time.Second, c.P2PSyncTimeout) s.NotEmpty(c.JwtSecret) + s.True(c.P2PSync) s.Equal(l2CheckPoint, c.L2CheckPoint) s.Nil(new(Driver).InitFromCli(context.Background(), ctx)) @@ -51,6 +52,7 @@ func (s *DriverTestSuite) TestNewConfigFromCliContext() { "--" + flags.JWTSecret.Name, os.Getenv("JWT_SECRET"), "--" + flags.P2PSyncTimeout.Name, "120s", "--" + flags.RPCTimeout.Name, "5s", + "--" + flags.P2PSync.Name, "--" + flags.CheckPointSyncURL.Name, l2CheckPoint, })) } @@ -68,6 +70,7 @@ func (s *DriverTestSuite) TestNewConfigFromCliContextEmptyL2CheckPoint() { s.ErrorContains(app.Run([]string{ "TestNewConfigFromCliContext", "--" + flags.JWTSecret.Name, os.Getenv("JWT_SECRET"), + "--" + flags.P2PSync.Name, "--" + flags.L2WSEndpoint.Name, "", }), "empty L2 check point URL") } @@ -82,6 +85,7 @@ func (s *DriverTestSuite) SetupApp() *cli.App { &cli.StringFlag{Name: flags.TaikoL1Address.Name}, &cli.StringFlag{Name: flags.TaikoL2Address.Name}, &cli.StringFlag{Name: flags.JWTSecret.Name}, + &cli.BoolFlag{Name: flags.P2PSync.Name}, &cli.DurationFlag{Name: flags.P2PSyncTimeout.Name}, &cli.DurationFlag{Name: flags.RPCTimeout.Name}, &cli.StringFlag{Name: flags.CheckPointSyncURL.Name}, diff --git a/packages/taiko-client/driver/driver.go b/packages/taiko-client/driver/driver.go index df50ac1f633..64993c77602 100644 --- a/packages/taiko-client/driver/driver.go +++ b/packages/taiko-client/driver/driver.go @@ -71,7 +71,7 @@ func (d *Driver) InitFromConfig(ctx context.Context, cfg *Config) (err error) { return err } - if peers == 0 { + if cfg.P2PSync && peers == 0 { log.Warn("P2P syncing verified blocks enabled, but no connected peer found in L2 execution engine") } @@ -79,6 +79,7 @@ func (d *Driver) InitFromConfig(ctx context.Context, cfg *Config) (err error) { d.ctx, d.rpc, d.state, + cfg.P2PSync, cfg.P2PSyncTimeout, cfg.MaxExponent, cfg.BlobServerEndpoint, diff --git a/packages/taiko-client/driver/txlist_decompressor/txlist_decompressor_test.go b/packages/taiko-client/driver/txlist_decompressor/txlist_decompressor_test.go index e93ccdd8d30..4888dd48bce 100644 --- a/packages/taiko-client/driver/txlist_decompressor/txlist_decompressor_test.go +++ b/packages/taiko-client/driver/txlist_decompressor/txlist_decompressor_test.go @@ -80,7 +80,6 @@ func rlpEncodedTransactionBytes(l int, signed bool) []byte { var tx *types.Transaction if signed { txData := &types.LegacyTx{Nonce: 1, To: &testAddr, GasPrice: common.Big256, Value: common.Big1, Gas: 10} - tx = types.MustSignNewTx(testKey, types.LatestSigner(¶ms.ChainConfig{ChainID: chainID}), txData) } else { tx = types.NewTransaction(1, testAddr, common.Big1, 10, new(big.Int).SetUint64(10*params.GWei), nil) diff --git a/packages/taiko-client/internal/testutils/helper.go b/packages/taiko-client/internal/testutils/helper.go index 873f5ad74ab..b7d94b8b8c5 100644 --- a/packages/taiko-client/internal/testutils/helper.go +++ b/packages/taiko-client/internal/testutils/helper.go @@ -34,22 +34,14 @@ func (s *ClientTestSuite) ProposeAndInsertEmptyBlocks( l1Head, err := s.RPCClient.L1.HeaderByNumber(context.Background(), nil) s.Nil(err) - sink := make(chan *bindings.TaikoL1ClientBlockProposed) - sub, err := s.RPCClient.TaikoL1.WatchBlockProposed(nil, sink, nil, nil) + sink := make(chan *bindings.TaikoL1ClientBlockProposedV2) + sub, err := s.RPCClient.TaikoL1.WatchBlockProposedV2(nil, sink, nil) s.Nil(err) defer func() { sub.Unsubscribe() close(sink) }() - sink2 := make(chan *bindings.TaikoL1ClientBlockProposedV2) - sub2, err := s.RPCClient.TaikoL1.WatchBlockProposedV2(nil, sink2, nil) - s.Nil(err) - defer func() { - sub2.Unsubscribe() - close(sink2) - }() - // RLP encoded empty list s.Nil(proposer.ProposeTxLists(context.Background(), []types.Transactions{{}})) s.Nil(blobSyncer.ProcessL1Blocks(context.Background())) @@ -64,14 +56,9 @@ func (s *ClientTestSuite) ProposeAndInsertEmptyBlocks( var txHash common.Hash for i := 0; i < 3; i++ { - select { - case event := <-sink: - metadataList = append(metadataList, metadata.NewTaikoDataBlockMetadataLegacy(event)) - txHash = event.Raw.TxHash - case event := <-sink2: - metadataList = append(metadataList, metadata.NewTaikoDataBlockMetadataOntake(event)) - txHash = event.Raw.TxHash - } + event := <-sink + metadataList = append(metadataList, metadata.NewTaikoDataBlockMetadataOntake(event)) + txHash = event.Raw.TxHash } _, isPending, err := s.RPCClient.L1.TransactionByHash(context.Background(), txHash) @@ -97,19 +84,13 @@ func (s *ClientTestSuite) ProposeAndInsertValidBlock( s.Nil(err) // Propose txs in L2 execution engine's mempool - sink := make(chan *bindings.TaikoL1ClientBlockProposed) - sub, err := s.RPCClient.TaikoL1.WatchBlockProposed(nil, sink, nil, nil) - s.Nil(err) - - sink2 := make(chan *bindings.TaikoL1ClientBlockProposedV2) - sub2, err := s.RPCClient.TaikoL1.WatchBlockProposedV2(nil, sink2, nil) + sink := make(chan *bindings.TaikoL1ClientBlockProposedV2) + sub, err := s.RPCClient.TaikoL1.WatchBlockProposedV2(nil, sink, nil) s.Nil(err) defer func() { sub.Unsubscribe() - sub2.Unsubscribe() close(sink) - close(sink2) }() nonce, err := s.RPCClient.L2.PendingNonceAt(context.Background(), s.TestAddr) @@ -130,18 +111,10 @@ func (s *ClientTestSuite) ProposeAndInsertValidBlock( s.Nil(proposer.ProposeOp(context.Background())) var ( - txHash common.Hash - meta metadata.TaikoBlockMetaData - ) - select { - case event := <-sink: - txHash = event.Raw.TxHash - meta = metadata.NewTaikoDataBlockMetadataLegacy(event) - case event := <-sink2: + event = <-sink txHash = event.Raw.TxHash - meta = metadata.NewTaikoDataBlockMetadataOntake(event) - } - + meta = metadata.NewTaikoDataBlockMetadataOntake(event) + ) _, isPending, err := s.RPCClient.L1.TransactionByHash(context.Background(), txHash) s.Nil(err) s.False(isPending) @@ -157,9 +130,7 @@ func (s *ClientTestSuite) ProposeAndInsertValidBlock( ctx, cancel := context.WithTimeout(context.Background(), time.Minute) defer cancel() - s.Nil(backoff.Retry(func() error { - return blobSyncer.ProcessL1Blocks(ctx) - }, backoff.NewExponentialBackOff())) + s.Nil(backoff.Retry(func() error { return blobSyncer.ProcessL1Blocks(ctx) }, backoff.NewExponentialBackOff())) s.Nil(s.RPCClient.WaitTillL2ExecutionEngineSynced(context.Background())) @@ -182,20 +153,12 @@ func (s *ClientTestSuite) ProposeValidBlock( s.Nil(err) // Propose txs in L2 execution engine's mempool - sink := make(chan *bindings.TaikoL1ClientBlockProposed) - sink2 := make(chan *bindings.TaikoL1ClientBlockProposedV2) - - sub, err := s.RPCClient.TaikoL1.WatchBlockProposed(nil, sink, nil, nil) - s.Nil(err) - - sub2, err := s.RPCClient.TaikoL1.WatchBlockProposedV2(nil, sink2, nil) + sink := make(chan *bindings.TaikoL1ClientBlockProposedV2) + sub, err := s.RPCClient.TaikoL1.WatchBlockProposedV2(nil, sink, nil) s.Nil(err) - defer func() { sub.Unsubscribe() - sub2.Unsubscribe() close(sink) - close(sink2) }() ontakeForkHeight, err := s.RPCClient.TaikoL2.OntakeForkHeight(nil) @@ -231,14 +194,10 @@ func (s *ClientTestSuite) ProposeValidBlock( s.Nil(proposer.ProposeOp(context.Background())) - var txHash common.Hash - select { - case event := <-sink: - txHash = event.Raw.TxHash - case event := <-sink2: + var ( + event = <-sink txHash = event.Raw.TxHash - } - + ) _, isPending, err := s.RPCClient.L1.TransactionByHash(context.Background(), txHash) s.Nil(err) s.False(isPending) diff --git a/packages/taiko-client/package.json b/packages/taiko-client/package.json index 53409674e4f..210f57be4da 100644 --- a/packages/taiko-client/package.json +++ b/packages/taiko-client/package.json @@ -1,5 +1,5 @@ { "name": "taiko-client", - "version": "0.39.2", + "version": "0.40.0", "private": true } diff --git a/packages/taiko-client/proposer/proposer_test.go b/packages/taiko-client/proposer/proposer_test.go index afe34def3c3..c81bfa2415a 100644 --- a/packages/taiko-client/proposer/proposer_test.go +++ b/packages/taiko-client/proposer/proposer_test.go @@ -16,23 +16,17 @@ import ( "github.com/ethereum/go-ethereum/common/math" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/miner" - "github.com/ethereum/go-ethereum/rlp" "github.com/stretchr/testify/suite" "github.com/taikoxyz/taiko-mono/packages/taiko-client/bindings" - "github.com/taikoxyz/taiko-mono/packages/taiko-client/bindings/encoding" "github.com/taikoxyz/taiko-mono/packages/taiko-client/bindings/metadata" "github.com/taikoxyz/taiko-mono/packages/taiko-client/driver/chain_syncer/beaconsync" "github.com/taikoxyz/taiko-mono/packages/taiko-client/driver/chain_syncer/blob" "github.com/taikoxyz/taiko-mono/packages/taiko-client/driver/state" "github.com/taikoxyz/taiko-mono/packages/taiko-client/internal/testutils" - "github.com/taikoxyz/taiko-mono/packages/taiko-client/pkg/config" "github.com/taikoxyz/taiko-mono/packages/taiko-client/pkg/jwt" "github.com/taikoxyz/taiko-mono/packages/taiko-client/pkg/rpc" - "github.com/taikoxyz/taiko-mono/packages/taiko-client/pkg/utils" - builder "github.com/taikoxyz/taiko-mono/packages/taiko-client/proposer/transaction_builder" ) type ProposerTestSuite struct { @@ -244,58 +238,6 @@ func (s *ProposerTestSuite) TestTxPoolContentWithMinTip() { s.Nil(s.s.ProcessL1Blocks(context.Background())) } -func (s *ProposerTestSuite) TestProposeTxLists() { - p := s.p - ctx := p.ctx - cfg := s.p.Config - - txBuilder := builder.NewBlobTransactionBuilder( - p.rpc, - p.L1ProposerPrivKey, - cfg.TaikoL1Address, - cfg.ProverSetAddress, - cfg.L2SuggestedFeeRecipient, - cfg.ProposeBlockTxGasLimit, - cfg.ExtraData, - config.NewChainConfig(s.p.protocolConfigs), - false, - ) - - emptyTxListBytes, err := rlp.EncodeToBytes(types.Transactions{}) - s.Nil(err) - txListsBytes := [][]byte{emptyTxListBytes} - txCandidates := make([]txmgr.TxCandidate, len(txListsBytes)) - for i, txListBytes := range txListsBytes { - compressedTxListBytes, err := utils.Compress(txListBytes) - if err != nil { - log.Warn("Failed to compress transactions list", "index", i, "error", err) - break - } - - candidate, err := txBuilder.BuildLegacy( - p.ctx, - p.IncludeParentMetaHash, - compressedTxListBytes, - ) - if err != nil { - log.Warn("Failed to build TaikoL1.proposeBlock transaction", "error", err) - break - } - - // trigger the error - candidate.GasLimit = 10_000_000 - - txCandidates[i] = *candidate - } - - for _, txCandidate := range txCandidates { - txMgr, _ := p.txmgrSelector.Select() - receipt, err := txMgr.Send(ctx, txCandidate) - s.Nil(err) - s.Nil(encoding.TryParsingCustomErrorFromReceipt(ctx, p.rpc.L1, p.proposerAddress, receipt)) - } -} - func (s *ProposerTestSuite) TestProposeOpNoEmptyBlock() { // TODO: Temporarily skip this test case when using l2_reth node. if os.Getenv("L2_NODE") == "l2_reth" { @@ -363,24 +305,14 @@ func (s *ProposerTestSuite) TestName() { func (s *ProposerTestSuite) TestProposeOp() { // Propose txs in L2 execution engine's mempool - sink := make(chan *bindings.TaikoL1ClientBlockProposed) - - sub, err := s.p.rpc.TaikoL1.WatchBlockProposed(nil, sink, nil, nil) + sink := make(chan *bindings.TaikoL1ClientBlockProposedV2) + sub, err := s.p.rpc.TaikoL1.WatchBlockProposedV2(nil, sink, nil) s.Nil(err) defer func() { sub.Unsubscribe() close(sink) }() - sink2 := make(chan *bindings.TaikoL1ClientBlockProposedV2) - - sub2, err := s.p.rpc.TaikoL1.WatchBlockProposedV2(nil, sink2, nil) - s.Nil(err) - defer func() { - sub2.Unsubscribe() - close(sink2) - }() - to := common.BytesToAddress(testutils.RandomBytes(32)) _, err = testutils.SendDynamicFeeTx(s.p.rpc.L2, s.TestAddrPrivKey, &to, common.Big1, nil) s.Nil(err) @@ -388,15 +320,9 @@ func (s *ProposerTestSuite) TestProposeOp() { s.Nil(s.p.ProposeOp(context.Background())) var ( - meta metadata.TaikoBlockMetaData + event = <-sink + meta = metadata.NewTaikoDataBlockMetadataOntake(event) ) - select { - case event := <-sink: - meta = metadata.NewTaikoDataBlockMetadataLegacy(event) - case event := <-sink2: - meta = metadata.NewTaikoDataBlockMetadataOntake(event) - } - s.Equal(meta.GetCoinbase(), s.p.L2SuggestedFeeRecipient) _, isPending, err := s.p.rpc.L1.TransactionByHash(context.Background(), meta.GetTxHash()) diff --git a/packages/taiko-client/prover/config.go b/packages/taiko-client/prover/config.go index 552ecfac231..cab66a38db6 100644 --- a/packages/taiko-client/prover/config.go +++ b/packages/taiko-client/prover/config.go @@ -62,7 +62,7 @@ type Config struct { PrivateTxmgrConfigs *txmgr.CLIConfig SGXProofBufferSize uint64 ZKVMProofBufferSize uint64 - ForceProveInterval time.Duration + ForceBatchProvingInterval time.Duration } // NewConfigFromCliContext creates a new config instance from command line flags. @@ -186,8 +186,8 @@ func NewConfigFromCliContext(c *cli.Context) (*Config, error) { l1ProverPrivKey, c, ), - SGXProofBufferSize: c.Uint64(flags.SGXBatchSize.Name), - ZKVMProofBufferSize: c.Uint64(flags.ZKVMBatchSize.Name), - ForceProveInterval: c.Duration(flags.ForceProveInterval.Name), + SGXProofBufferSize: c.Uint64(flags.SGXBatchSize.Name), + ZKVMProofBufferSize: c.Uint64(flags.ZKVMBatchSize.Name), + ForceBatchProvingInterval: c.Duration(flags.ForceBatchProvingInterval.Name), }, nil } diff --git a/packages/taiko-client/prover/init.go b/packages/taiko-client/prover/init.go index dc2e4cb40eb..61faf0f66fc 100644 --- a/packages/taiko-client/prover/init.go +++ b/packages/taiko-client/prover/init.go @@ -159,6 +159,7 @@ func (p *Prover) initProofSubmitters( p.IsGuardianProver(), p.cfg.GuardianProofSubmissionDelay, bufferSize, + p.cfg.ForceBatchProvingInterval, ); err != nil { return err } diff --git a/packages/taiko-client/prover/proof_producer/dummy_producer_test.go b/packages/taiko-client/prover/proof_producer/dummy_producer_test.go index e2361ae9cc8..4977e2c6c75 100644 --- a/packages/taiko-client/prover/proof_producer/dummy_producer_test.go +++ b/packages/taiko-client/prover/proof_producer/dummy_producer_test.go @@ -37,7 +37,7 @@ func TestDummyProducerRequestProof(t *testing.T) { res, err := producer.RequestProof( &ProofRequestOptions{}, blockID, - &metadata.TaikoDataBlockMetadataLegacy{}, + &metadata.TaikoDataBlockMetadataOntake{}, header, tier, time.Now(), diff --git a/packages/taiko-client/prover/proof_producer/guardian_producer_test.go b/packages/taiko-client/prover/proof_producer/guardian_producer_test.go index 85d0663e000..1697e763ad7 100644 --- a/packages/taiko-client/prover/proof_producer/guardian_producer_test.go +++ b/packages/taiko-client/prover/proof_producer/guardian_producer_test.go @@ -40,7 +40,7 @@ func TestGuardianProducerRequestProof(t *testing.T) { context.Background(), &ProofRequestOptions{}, blockID, - &metadata.TaikoDataBlockMetadataLegacy{}, + &metadata.TaikoDataBlockMetadataOntake{}, header, time.Now(), ) @@ -79,7 +79,7 @@ func TestGuardianProducerRequestProofReturnLivenessBond(t *testing.T) { context.Background(), &ProofRequestOptions{}, blockID, - &metadata.TaikoDataBlockMetadataLegacy{}, + &metadata.TaikoDataBlockMetadataOntake{}, header, time.Now(), ) @@ -118,7 +118,7 @@ func TestMinorityRequestProof(t *testing.T) { context.Background(), &ProofRequestOptions{}, blockID, - &metadata.TaikoDataBlockMetadataLegacy{}, + &metadata.TaikoDataBlockMetadataOntake{}, header, time.Now(), ) @@ -156,7 +156,7 @@ func TestRequestMinorityProofReturnLivenessBond(t *testing.T) { context.Background(), &ProofRequestOptions{}, blockID, - &metadata.TaikoDataBlockMetadataLegacy{}, + &metadata.TaikoDataBlockMetadataOntake{}, header, time.Now(), ) diff --git a/packages/taiko-client/prover/proof_producer/optimistic_producer_test.go b/packages/taiko-client/prover/proof_producer/optimistic_producer_test.go index f5d756fff6d..372de77a2b4 100644 --- a/packages/taiko-client/prover/proof_producer/optimistic_producer_test.go +++ b/packages/taiko-client/prover/proof_producer/optimistic_producer_test.go @@ -41,7 +41,7 @@ func TestOptimisticRequestProof(t *testing.T) { context.Background(), &ProofRequestOptions{}, blockID, - &metadata.TaikoDataBlockMetadataLegacy{}, + &metadata.TaikoDataBlockMetadataOntake{}, header, time.Now(), ) @@ -79,7 +79,7 @@ func TestProofCancel(t *testing.T) { context.Background(), &ProofRequestOptions{}, blockID, - &metadata.TaikoDataBlockMetadataLegacy{}, + &metadata.TaikoDataBlockMetadataOntake{}, header, time.Now(), ) diff --git a/packages/taiko-client/prover/proof_producer/sgx_producer.go b/packages/taiko-client/prover/proof_producer/sgx_producer.go index 3f4861fd933..91ca16064f3 100644 --- a/packages/taiko-client/prover/proof_producer/sgx_producer.go +++ b/packages/taiko-client/prover/proof_producer/sgx_producer.go @@ -308,6 +308,9 @@ func (s *SGXProofProducer) requestBatchProof( return nil, fmt.Errorf("failed to get batch proof, msg: %s", output.ErrorMessage) } + if output.Data == nil { + return nil, fmt.Errorf("unexpected structure error, response: %s", string(resBytes)) + } if output.Data.Status == ErrProofInProgress.Error() { return nil, ErrProofInProgress } @@ -315,7 +318,8 @@ func (s *SGXProofProducer) requestBatchProof( return nil, ErrRetry } - if len(output.Data.Proof.Proof) == 0 { + if output.Data.Proof == nil || + len(output.Data.Proof.Proof) == 0 { return nil, errEmptyProof } proof = common.Hex2Bytes(output.Data.Proof.Proof[2:]) diff --git a/packages/taiko-client/prover/proof_producer/sgx_producer_test.go b/packages/taiko-client/prover/proof_producer/sgx_producer_test.go index 6b68cd57e09..19114cb4eec 100644 --- a/packages/taiko-client/prover/proof_producer/sgx_producer_test.go +++ b/packages/taiko-client/prover/proof_producer/sgx_producer_test.go @@ -39,7 +39,7 @@ func TestSGXProducerRequestProof(t *testing.T) { context.Background(), &ProofRequestOptions{}, blockID, - &metadata.TaikoDataBlockMetadataLegacy{}, + &metadata.TaikoDataBlockMetadataOntake{}, header, time.Now(), ) diff --git a/packages/taiko-client/prover/proof_producer/zkvm_producer.go b/packages/taiko-client/prover/proof_producer/zkvm_producer.go index 3e2711a1962..98f8529acc5 100644 --- a/packages/taiko-client/prover/proof_producer/zkvm_producer.go +++ b/packages/taiko-client/prover/proof_producer/zkvm_producer.go @@ -479,6 +479,10 @@ func (s *ZKvmProofProducer) requestBatchProof( if len(output.ErrorMessage) > 0 || len(output.Error) > 0 { return nil, fmt.Errorf("failed to get batch proof, msg: %s", output.ErrorMessage) } + if output.Data == nil { + return nil, fmt.Errorf("unexpected structure error, response: %s", string(resBytes)) + } + if output.Data.Status == ErrProofInProgress.Error() { return nil, ErrProofInProgress } @@ -486,7 +490,7 @@ func (s *ZKvmProofProducer) requestBatchProof( return nil, ErrRetry } - if len(output.Data.Proof.Proof) == 0 { + if output.Data.Proof == nil || len(output.Data.Proof.Proof) == 0 { return nil, errEmptyProof } proof = common.Hex2Bytes(output.Data.Proof.Proof[2:]) diff --git a/packages/taiko-client/prover/proof_submitter/interface.go b/packages/taiko-client/prover/proof_submitter/interface.go index 26971fc8587..b60ec9c3919 100644 --- a/packages/taiko-client/prover/proof_submitter/interface.go +++ b/packages/taiko-client/prover/proof_submitter/interface.go @@ -19,6 +19,7 @@ type Submitter interface { Producer() proofProducer.ProofProducer Tier() uint16 BufferSize() uint64 + AggregationEnabled() bool } // Contester is the interface for contesting proofs of the L2 blocks. diff --git a/packages/taiko-client/prover/proof_submitter/proof_buffer.go b/packages/taiko-client/prover/proof_submitter/proof_buffer.go index b21e992aa37..8f2d6d0cb72 100644 --- a/packages/taiko-client/prover/proof_submitter/proof_buffer.go +++ b/packages/taiko-client/prover/proof_submitter/proof_buffer.go @@ -3,6 +3,7 @@ package submitter import ( "errors" "sync" + "time" producer "github.com/taikoxyz/taiko-mono/packages/taiko-client/prover/proof_producer" ) @@ -14,16 +15,19 @@ var ( // ProofBuffer caches all single proof with a fixed size. type ProofBuffer struct { - MaxLength uint64 - buffer []*producer.ProofWithHeader - mutex sync.RWMutex + MaxLength uint64 + buffer []*producer.ProofWithHeader + lastUpdatedAt time.Time + isAggregating bool + mutex sync.RWMutex } // NewProofBuffer creates a new ProofBuffer instance. func NewProofBuffer(maxLength uint64) *ProofBuffer { return &ProofBuffer{ - buffer: make([]*producer.ProofWithHeader, 0, maxLength), - MaxLength: maxLength, + buffer: make([]*producer.ProofWithHeader, 0, maxLength), + lastUpdatedAt: time.Now(), + MaxLength: maxLength, } } @@ -37,6 +41,7 @@ func (pb *ProofBuffer) Write(item *producer.ProofWithHeader) (int, error) { } pb.buffer = append(pb.buffer, item) + pb.lastUpdatedAt = time.Now() return len(pb.buffer), nil } @@ -65,11 +70,14 @@ func (pb *ProofBuffer) Len() int { return len(pb.buffer) } -// Clear clears all buffer. -func (pb *ProofBuffer) Clear() { - pb.mutex.Lock() - defer pb.mutex.Unlock() - pb.buffer = pb.buffer[:0] +// LastUpdatedAt returns the last updated time of the buffer. +func (pb *ProofBuffer) LastUpdatedAt() time.Time { + return pb.lastUpdatedAt +} + +// LastUpdatedAt returns the last updated time of the buffer. +func (pb *ProofBuffer) UpdateLastUpdatedAt() { + pb.lastUpdatedAt = time.Now() } // ClearItems clears items that has given block ids in the buffer. @@ -94,5 +102,21 @@ func (pb *ProofBuffer) ClearItems(blockIDs ...uint64) int { } pb.buffer = newBuffer + pb.isAggregating = false return clearedCount } + +// MarkAggregating marks the proofs in this buffer are aggregating. +func (pb *ProofBuffer) MarkAggregating() { + pb.isAggregating = true +} + +// IsAggregating returns if the proofs in this buffer are aggregating. +func (pb *ProofBuffer) IsAggregating() bool { + return pb.isAggregating +} + +// Enabled returns if the buffer is enabled. +func (pb *ProofBuffer) Enabled() bool { + return pb.MaxLength > 1 +} diff --git a/packages/taiko-client/prover/proof_submitter/proof_contester_test.go b/packages/taiko-client/prover/proof_submitter/proof_contester_test.go index feaee51a60c..6c836a2b5f3 100644 --- a/packages/taiko-client/prover/proof_submitter/proof_contester_test.go +++ b/packages/taiko-client/prover/proof_submitter/proof_contester_test.go @@ -17,7 +17,7 @@ func (s *ProofSubmitterTestSuite) TestSubmitContestNoTransition() { common.Big256, common.Big1, testutils.RandomHash(), - &metadata.TaikoDataBlockMetadataLegacy{}, + &metadata.TaikoDataBlockMetadataOntake{}, encoding.TierOptimisticID, ), ) diff --git a/packages/taiko-client/prover/proof_submitter/proof_submitter.go b/packages/taiko-client/prover/proof_submitter/proof_submitter.go index ba1cb8bad0d..b87f992772c 100644 --- a/packages/taiko-client/prover/proof_submitter/proof_submitter.go +++ b/packages/taiko-client/prover/proof_submitter/proof_submitter.go @@ -53,7 +53,8 @@ type ProofSubmitter struct { isGuardian bool submissionDelay time.Duration // Batch proof related - proofBuffer *ProofBuffer + proofBuffer *ProofBuffer + forceBatchProvingInterval time.Duration } // NewProofSubmitter creates a new ProofSubmitter instance. @@ -74,6 +75,7 @@ func NewProofSubmitter( isGuardian bool, submissionDelay time.Duration, proofBufferSize uint64, + forceBatchProvingInterval time.Duration, ) (*ProofSubmitter, error) { anchorValidator, err := validator.New(taikoL2Address, rpcClient.L2.ChainID, rpcClient) if err != nil { @@ -81,22 +83,23 @@ func NewProofSubmitter( } return &ProofSubmitter{ - rpc: rpcClient, - proofProducer: proofProducer, - resultCh: resultCh, - batchResultCh: batchResultCh, - aggregationNotify: aggregationNotify, - anchorValidator: anchorValidator, - txBuilder: builder, - sender: transaction.NewSender(rpcClient, txmgr, privateTxmgr, proverSetAddress, gasLimit), - proverAddress: txmgr.From(), - proverSetAddress: proverSetAddress, - taikoL2Address: taikoL2Address, - graffiti: rpc.StringToBytes32(graffiti), - tiers: tiers, - isGuardian: isGuardian, - submissionDelay: submissionDelay, - proofBuffer: NewProofBuffer(proofBufferSize), + rpc: rpcClient, + proofProducer: proofProducer, + resultCh: resultCh, + batchResultCh: batchResultCh, + aggregationNotify: aggregationNotify, + anchorValidator: anchorValidator, + txBuilder: builder, + sender: transaction.NewSender(rpcClient, txmgr, privateTxmgr, proverSetAddress, gasLimit), + proverAddress: txmgr.From(), + proverSetAddress: proverSetAddress, + taikoL2Address: taikoL2Address, + graffiti: rpc.StringToBytes32(graffiti), + tiers: tiers, + isGuardian: isGuardian, + submissionDelay: submissionDelay, + proofBuffer: NewProofBuffer(proofBufferSize), + forceBatchProvingInterval: forceBatchProvingInterval, }, nil } @@ -143,7 +146,7 @@ func (s *ProofSubmitter) RequestProof(ctx context.Context, meta metadata.TaikoBl Graffiti: common.Bytes2Hex(s.graffiti[:]), GasUsed: header.GasUsed, ParentGasUsed: parent.GasUsed(), - Compressed: s.proofBuffer.MaxLength > 1, + Compressed: s.proofBuffer.Enabled(), } // If the prover set address is provided, we use that address as the prover on chain. @@ -159,9 +162,9 @@ func (s *ProofSubmitter) RequestProof(ctx context.Context, meta metadata.TaikoBl log.Error("Failed to request proof, context is canceled", "blockID", opts.BlockID, "error", ctx.Err()) return nil } - // Check if the proof buffer is full - if s.proofBuffer.MaxLength > 1 && s.proofBuffer.MaxLength == uint64(s.proofBuffer.Len()) { - log.Debug("Buffer is full now", "blockID", meta.GetBlockID()) + // Check if the proof buffer is full. + if s.proofBuffer.Enabled() && uint64(s.proofBuffer.Len()) >= s.proofBuffer.MaxLength { + log.Warn("Proof buffer is full now", "blockID", meta.GetBlockID()) return errBufferOverflow } // Check if there is a need to generate proof @@ -198,21 +201,30 @@ func (s *ProofSubmitter) RequestProof(ctx context.Context, meta metadata.TaikoBl } return fmt.Errorf("failed to request proof (id: %d): %w", meta.GetBlockID(), err) } - if meta.IsOntakeBlock() && s.proofBuffer.MaxLength > 1 { + if meta.IsOntakeBlock() && s.proofBuffer.Enabled() { bufferSize, err := s.proofBuffer.Write(result) if err != nil { - return fmt.Errorf("failed to add proof into buffer (id: %d)(current buffer size: %d): %w", + return fmt.Errorf( + "failed to add proof into buffer (id: %d) (current buffer size: %d): %w", meta.GetBlockID(), bufferSize, err, ) } - log.Debug("Succeed to generate proof", + log.Info( + "Proof generated", "blockID", meta.GetBlockID(), "bufferSize", bufferSize, + "maxBufferSize", s.proofBuffer.MaxLength, + "bufferIsAggregating", s.proofBuffer.IsAggregating(), + "bufferLastUpdatedAt", s.proofBuffer.lastUpdatedAt, ) - if s.proofBuffer.MaxLength == uint64(bufferSize) { + // Check if we need to aggregate proofs. + if !s.proofBuffer.IsAggregating() && + (uint64(bufferSize) >= s.proofBuffer.MaxLength || + time.Since(s.proofBuffer.lastUpdatedAt) > s.forceBatchProvingInterval) { s.aggregationNotify <- s.Tier() + s.proofBuffer.MarkAggregating() } } else { s.resultCh <- result @@ -344,7 +356,8 @@ func (s *ProofSubmitter) BatchSubmitProofs(ctx context.Context, batchProof *proo ) var ( invalidBlockIDs []uint64 - latestProvenBlockID = big.NewInt(0) + latestProvenBlockID = common.Big0 + uint64BlockIDs []uint64 ) if len(batchProof.Proofs) == 0 { return proofProducer.ErrInvalidLength @@ -369,19 +382,20 @@ func (s *ProofSubmitter) BatchSubmitProofs(ctx context.Context, batchProof *proo return err } for i, proof := range batchProof.Proofs { + uint64BlockIDs = append(uint64BlockIDs, proof.BlockID.Uint64()) // Check if this proof is still needed to be submitted. ok, err := s.sender.ValidateProof(ctx, proof, new(big.Int).SetUint64(stateVars.B.LastVerifiedBlockId)) if err != nil { return err } if !ok { - log.Error("a valid proof for block is already submitted", "blockId", proof.BlockID) + log.Error("A valid proof for block is already submitted", "blockId", proof.BlockID) invalidBlockIDs = append(invalidBlockIDs, proof.BlockID.Uint64()) continue } if proofStatus[i].IsSubmitted && !proofStatus[i].Invalid { - log.Error("a valid proof for block is already submitted", "blockId", proof.BlockID) + log.Error("A valid proof for block is already submitted", "blockId", proof.BlockID) invalidBlockIDs = append(invalidBlockIDs, proof.BlockID.Uint64()) continue } @@ -389,7 +403,8 @@ func (s *ProofSubmitter) BatchSubmitProofs(ctx context.Context, batchProof *proo // Get the corresponding L2 block. block, err := s.rpc.L2.BlockByHash(ctx, proof.Header.Hash()) if err != nil { - log.Error("failed to get L2 block with given hash", + log.Error( + "Failed to get L2 block with given hash", "hash", proof.Header.Hash(), "error", err, ) @@ -415,7 +430,7 @@ func (s *ProofSubmitter) BatchSubmitProofs(ctx context.Context, batchProof *proo } if len(invalidBlockIDs) > 0 { - log.Warn("Detected invalid proofs", "blockIds", invalidBlockIDs) + log.Warn("Invalid proofs in batch", "blockIds", invalidBlockIDs) s.proofBuffer.ClearItems(invalidBlockIDs...) return ErrInvalidProof } @@ -435,7 +450,9 @@ func (s *ProofSubmitter) BatchSubmitProofs(ctx context.Context, batchProof *proo metrics.ProverSentProofCounter.Add(float64(len(batchProof.BlockIDs))) metrics.ProverLatestProvenBlockIDGauge.Set(float64(latestProvenBlockID.Uint64())) - s.proofBuffer.Clear() + s.proofBuffer.ClearItems(uint64BlockIDs...) + // Each time we submit a batch proof, we should update the LastUpdatedAt() of the buffer. + s.proofBuffer.UpdateLastUpdatedAt() return nil } @@ -460,7 +477,16 @@ func (s *ProofSubmitter) AggregateProofs(ctx context.Context) error { startTime, ) if err != nil { - log.Error("Failed to request proof aggregation", "err", err) + if errors.Is(err, proofProducer.ErrProofInProgress) || + errors.Is(err, proofProducer.ErrRetry) { + log.Info("Aggregating proofs", + "status", err, + "length", len(buffer), + "tier", s.Tier(), + ) + } else { + log.Error("Failed to request proof aggregation", "err", err) + } return err } s.batchResultCh <- result @@ -511,3 +537,8 @@ func (s *ProofSubmitter) Tier() uint16 { func (s *ProofSubmitter) BufferSize() uint64 { return s.proofBuffer.MaxLength } + +// AggregationEnabled returns whether the proof submitter's aggregation feature is enabled. +func (s *ProofSubmitter) AggregationEnabled() bool { + return s.proofBuffer.Enabled() +} diff --git a/packages/taiko-client/prover/proof_submitter/proof_submitter_test.go b/packages/taiko-client/prover/proof_submitter/proof_submitter_test.go index 3a7cbde8a12..bbf390dc088 100644 --- a/packages/taiko-client/prover/proof_submitter/proof_submitter_test.go +++ b/packages/taiko-client/prover/proof_submitter/proof_submitter_test.go @@ -100,6 +100,7 @@ func (s *ProofSubmitterTestSuite) SetupTest() { false, 0*time.Second, 0, + 30*time.Minute, ) s.Nil(err) s.contester = NewProofContester( @@ -199,6 +200,7 @@ func (s *ProofSubmitterTestSuite) TestGetRandomBumpedSubmissionDelay() { false, time.Duration(0), 0, + 30*time.Minute, ) s.Nil(err) @@ -223,6 +225,7 @@ func (s *ProofSubmitterTestSuite) TestGetRandomBumpedSubmissionDelay() { false, 1*time.Hour, 0, + 30*time.Minute, ) s.Nil(err) delay, err = submitter2.getRandomBumpedSubmissionDelay(time.Now()) @@ -242,7 +245,7 @@ func (s *ProofSubmitterTestSuite) TestProofSubmitterRequestProofDeadlineExceeded s.ErrorContains( s.submitter.RequestProof( ctx, - &metadata.TaikoDataBlockMetadataLegacy{TaikoDataBlockMetadata: bindings.TaikoDataBlockMetadata{Id: 256}}, + &metadata.TaikoDataBlockMetadataOntake{TaikoDataBlockMetadataV2: bindings.TaikoDataBlockMetadataV2{Id: 256}}, ), "context deadline exceeded", ) @@ -253,7 +256,7 @@ func (s *ProofSubmitterTestSuite) TestProofSubmitterSubmitProofMetadataNotFound( s.submitter.SubmitProof( context.Background(), &producer.ProofWithHeader{ BlockID: common.Big256, - Meta: &metadata.TaikoDataBlockMetadataLegacy{}, + Meta: &metadata.TaikoDataBlockMetadataOntake{}, Header: &types.Header{}, Opts: &producer.ProofRequestOptions{}, Proof: bytes.Repeat([]byte{0xff}, 100), @@ -286,7 +289,7 @@ func (s *ProofSubmitterTestSuite) TestProofSubmitterRequestProofCancelled() { s.ErrorContains( s.submitter.RequestProof( ctx, - &metadata.TaikoDataBlockMetadataLegacy{TaikoDataBlockMetadata: bindings.TaikoDataBlockMetadata{Id: 256}}, + &metadata.TaikoDataBlockMetadataOntake{TaikoDataBlockMetadataV2: bindings.TaikoDataBlockMetadataV2{Id: 256}}, ), "context canceled", ) diff --git a/packages/taiko-client/prover/prover.go b/packages/taiko-client/prover/prover.go index 237a7f44937..a157a59bc6e 100644 --- a/packages/taiko-client/prover/prover.go +++ b/packages/taiko-client/prover/prover.go @@ -279,15 +279,7 @@ func (p *Prover) eventLoop() { default: } } - // reqAggregation requests performing a aggregate operation, won't block - // if we are already aggregating. - reqAggregation := func() { - select { - // 0 means aggregating all tier proofs - case p.aggregationNotify <- 0: - default: - } - } + // Call reqProving() right away to catch up with the latest state. reqProving() @@ -297,9 +289,6 @@ func (p *Prover) eventLoop() { forceProvingTicker := time.NewTicker(15 * time.Second) defer forceProvingTicker.Stop() - forceAggregatingTicker := time.NewTicker(p.cfg.ForceProveInterval) - defer forceAggregatingTicker.Stop() - // Channels chBufferSize := p.protocolConfigs.BlockMaxProposals blockProposedCh := make(chan *bindings.TaikoL1ClientBlockProposed, chBufferSize) @@ -347,9 +336,7 @@ func (p *Prover) eventLoop() { log.Error("Prove new blocks error", "error", err) } case tier := <-p.aggregationNotify: - p.withRetry(func() error { - return p.aggregateOp(tier) - }) + p.withRetry(func() error { return p.aggregateOp(tier) }) case e := <-blockVerifiedCh: p.blockVerifiedHandler.Handle(encoding.BlockVerifiedEventToV2(e)) case e := <-transitionProvedCh: @@ -389,8 +376,6 @@ func (p *Prover) eventLoop() { reqProving() case <-forceProvingTicker.C: reqProving() - case <-forceAggregatingTicker.C: - reqAggregation() } } } @@ -422,10 +407,10 @@ func (p *Prover) aggregateOp(tier uint16) error { g, gCtx := errgroup.WithContext(p.ctx) for _, submitter := range p.proofSubmitters { g.Go(func() error { - if submitter.BufferSize() > 1 && - (tier == 0 || submitter.Tier() == tier) { + if submitter.AggregationEnabled() && submitter.Tier() == tier { if err := submitter.AggregateProofs(gCtx); err != nil { - log.Error("Failed to aggregate proofs", + log.Error( + "Failed to aggregate proofs", "error", err, "tier", submitter.Tier(), ) diff --git a/packages/taiko-client/prover/prover_test.go b/packages/taiko-client/prover/prover_test.go index 638dc9b7aec..377e9816c92 100644 --- a/packages/taiko-client/prover/prover_test.go +++ b/packages/taiko-client/prover/prover_test.go @@ -182,7 +182,7 @@ func (s *ProverTestSuite) TestSubmitProofOp() { s.p.withRetry(func() error { return s.p.submitProofOp(&producer.ProofWithHeader{ BlockID: common.Big1, - Meta: &metadata.TaikoDataBlockMetadataLegacy{}, + Meta: &metadata.TaikoDataBlockMetadataOntake{}, Header: &types.Header{}, Proof: []byte{}, Tier: encoding.TierOptimisticID, @@ -194,7 +194,7 @@ func (s *ProverTestSuite) TestSubmitProofOp() { s.p.withRetry(func() error { return s.p.submitProofOp(&producer.ProofWithHeader{ BlockID: common.Big1, - Meta: &metadata.TaikoDataBlockMetadataLegacy{}, + Meta: &metadata.TaikoDataBlockMetadataOntake{}, Header: &types.Header{}, Proof: []byte{}, Tier: encoding.TierOptimisticID, @@ -229,24 +229,15 @@ func (s *ProverTestSuite) TestContestWrongBlocks() { s.Nil(s.p.initEventHandlers()) // Submit a wrong proof at first. - sink := make(chan *bindings.TaikoL1ClientTransitionProved) header, err := s.p.rpc.L2.HeaderByNumber(context.Background(), m.GetBlockID()) s.Nil(err) - - sub, err := s.p.rpc.TaikoL1.WatchTransitionProved(nil, sink, nil) + sink := make(chan *bindings.TaikoL1ClientTransitionProvedV2) + sub, err := s.p.rpc.TaikoL1.WatchTransitionProvedV2(nil, sink, nil) s.Nil(err) defer func() { sub.Unsubscribe() close(sink) }() - - sink2 := make(chan *bindings.TaikoL1ClientTransitionProvedV2) - sub2, err := s.p.rpc.TaikoL1.WatchTransitionProvedV2(nil, sink2, nil) - s.Nil(err) - defer func() { - sub2.Unsubscribe() - close(sink2) - }() s.Nil(s.p.proveOp()) req := <-s.p.proofSubmissionCh s.Nil(s.p.requestProofOp(req.Meta, req.Tier)) @@ -254,34 +245,20 @@ func (s *ProverTestSuite) TestContestWrongBlocks() { proofWithHeader.Opts.BlockHash = testutils.RandomHash() s.Nil(s.p.selectSubmitter(m.GetMinTier()).SubmitProof(context.Background(), proofWithHeader)) - var event *bindings.TaikoL1ClientTransitionProvedV2 - select { - case e := <-sink: - blockInfo, err := s.p.rpc.TaikoL1.GetBlock(nil, e.BlockId.Uint64()) - s.Nil(err) - event = encoding.TransitionProvedEventToV2(e, blockInfo.ProposedIn) - case e := <-sink2: - event = e - } + event := <-sink s.Equal(header.Number.Uint64(), event.BlockId.Uint64()) s.Equal(common.BytesToHash(proofWithHeader.Opts.BlockHash[:]), common.BytesToHash(event.Tran.BlockHash[:])) s.NotEqual(header.Hash(), common.BytesToHash(event.Tran.BlockHash[:])) s.Equal(header.ParentHash, common.BytesToHash(event.Tran.ParentHash[:])) // Contest the transition. - contestedSink := make(chan *bindings.TaikoL1ClientTransitionContested) - contestedSink2 := make(chan *bindings.TaikoL1ClientTransitionContestedV2) - - contestedSub, err := s.p.rpc.TaikoL1.WatchTransitionContested(nil, contestedSink, nil) - s.Nil(err) - contestedSub2, err := s.p.rpc.TaikoL1.WatchTransitionContestedV2(nil, contestedSink2, nil) + contestedSink := make(chan *bindings.TaikoL1ClientTransitionContestedV2) + contestedSub, err := s.p.rpc.TaikoL1.WatchTransitionContestedV2(nil, contestedSink, nil) s.Nil(err) defer func() { contestedSub.Unsubscribe() close(contestedSink) - contestedSub2.Unsubscribe() - close(contestedSink2) }() contesterKey, err := crypto.ToECDSA(common.FromHex(os.Getenv("L1_CONTRACT_OWNER_PRIVATE_KEY"))) @@ -295,15 +272,7 @@ func (s *ProverTestSuite) TestContestWrongBlocks() { contestReq := <-s.p.proofContestCh s.Nil(s.p.contestProofOp(contestReq)) - var contestedEvent *bindings.TaikoL1ClientTransitionContestedV2 - select { - case e := <-contestedSink: - blockInfo, err := s.p.rpc.TaikoL1.GetBlock(nil, e.BlockId.Uint64()) - s.Nil(err) - contestedEvent = encoding.TransitionContestedEventToV2(e, blockInfo.ProposedIn) - case e := <-contestedSink2: - contestedEvent = e - } + contestedEvent := <-contestedSink s.Equal(header.Number.Uint64(), contestedEvent.BlockId.Uint64()) s.Equal(header.Hash(), common.BytesToHash(contestedEvent.Tran.BlockHash[:])) s.Equal(header.ParentHash, common.BytesToHash(contestedEvent.Tran.ParentHash[:])) @@ -376,18 +345,12 @@ func (s *ProverTestSuite) TestProveOp() { header, err := s.p.rpc.L2.HeaderByNumber(context.Background(), m.GetBlockID()) s.Nil(err) - sink := make(chan *bindings.TaikoL1ClientTransitionProved) - sink2 := make(chan *bindings.TaikoL1ClientTransitionProvedV2) - - sub, err := s.p.rpc.TaikoL1.WatchTransitionProved(nil, sink, nil) - s.Nil(err) - sub2, err := s.p.rpc.TaikoL1.WatchTransitionProvedV2(nil, sink2, nil) + sink := make(chan *bindings.TaikoL1ClientTransitionProvedV2) + sub, err := s.p.rpc.TaikoL1.WatchTransitionProvedV2(nil, sink, nil) s.Nil(err) defer func() { sub.Unsubscribe() - sub2.Unsubscribe() close(sink) - close(sink2) }() s.Nil(s.p.proveOp()) @@ -395,13 +358,8 @@ func (s *ProverTestSuite) TestProveOp() { s.Nil(s.p.requestProofOp(req.Meta, req.Tier)) s.Nil(s.p.selectSubmitter(m.GetMinTier()).SubmitProof(context.Background(), <-s.p.proofGenerationCh)) - var tran bindings.TaikoDataTransition - select { - case event := <-sink: - tran = event.Tran - case event := <-sink2: - tran = event.Tran - } + event := <-sink + tran := event.Tran s.Equal(header.Hash(), common.BytesToHash(tran.BlockHash[:])) s.Equal(header.ParentHash, common.BytesToHash(tran.ParentHash[:])) } @@ -521,12 +479,12 @@ func (s *ProverTestSuite) TestAggregateProofsAlreadyProved() { _ = s.ProposeAndInsertValidBlock(s.proposer, s.d.ChainSyncer().BlobSyncer()) } - sink2 := make(chan *bindings.TaikoL1ClientTransitionProvedV2, batchSize) - sub2, err := s.p.rpc.TaikoL1.WatchTransitionProvedV2(nil, sink2, nil) + sink := make(chan *bindings.TaikoL1ClientTransitionProvedV2, batchSize) + sub, err := s.p.rpc.TaikoL1.WatchTransitionProvedV2(nil, sink, nil) s.Nil(err) defer func() { - sub2.Unsubscribe() - close(sink2) + sub.Unsubscribe() + close(sink) }() s.Nil(s.p.proveOp()) @@ -545,7 +503,7 @@ func (s *ProverTestSuite) TestAggregateProofsAlreadyProved() { proofSubmitter.ErrInvalidProof, ) for i := 0; i < batchSize; i++ { - <-sink2 + <-sink } } @@ -581,12 +539,12 @@ func (s *ProverTestSuite) TestAggregateProofs() { _ = s.ProposeAndInsertValidBlock(s.proposer, s.d.ChainSyncer().BlobSyncer()) } - sink2 := make(chan *bindings.TaikoL1ClientTransitionProvedV2, batchSize) - sub2, err := s.p.rpc.TaikoL1.WatchTransitionProvedV2(nil, sink2, nil) + sink := make(chan *bindings.TaikoL1ClientTransitionProvedV2, batchSize) + sub, err := s.p.rpc.TaikoL1.WatchTransitionProvedV2(nil, sink, nil) s.Nil(err) defer func() { - sub2.Unsubscribe() - close(sink2) + sub.Unsubscribe() + close(sink) }() s.Nil(batchProver.proveOp()) @@ -598,7 +556,7 @@ func (s *ProverTestSuite) TestAggregateProofs() { s.Nil(batchProver.aggregateOp(tier)) s.Nil(batchProver.selectSubmitter(tier).BatchSubmitProofs(context.Background(), <-batchProver.batchProofGenerationCh)) for i := 0; i < batchSize; i++ { - <-sink2 + <-sink } } diff --git a/release-please-config.json b/release-please-config.json index 2d69ef058de..fff43beb15e 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -22,9 +22,13 @@ "packages/fork-diff": {}, "packages/guardian-prover-health-check": {}, "packages/guardian-prover-health-check-ui": {}, - "packages/protocol": {}, + "packages/protocol": { + "package-name": "taiko-alethia-protocol" + }, "packages/relayer": {}, - "packages/taiko-client": {}, + "packages/taiko-client": { + "package-name": "taiko-alethia-client" + }, "packages/ui-lib": {} } }